// GENERATED FILE - DO NOT EDIT. // Generated by gen_vk_internal_shaders.py. // // Copyright 2018 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // shaders/gen/ConvertVertex.comp.00000003.inc: // Pre-generated shader for the ANGLE Vulkan back-end. #pragma once constexpr uint8_t kConvertVertex_comp_00000003[] = …; // Generated from: // // #version 450 core // // layout(local_size_x = 64, local_size_y = 1, local_size_z = 1)in; // // layout(set = 0, binding = 0)buffer dst // { // uint destData[]; // }; // // layout(set = 0, binding = 1)buffer src // { // uint srcData[]; // }; // // layout(push_constant)uniform PushConstants // { // // uint outputCount; // // uint componentCount; // // uint srcOffset; // uint dstOffset; // // uint Ns; // uint Bs; // uint Ss; // uint Es; // // uint Nd; // uint Bd; // uint Sd; // uint Ed; // // uint srcEmulatedAlpha; // // bool isSrcHDR; // bool isSrcA2BGR10; // } params; // // uint getSourceComponentOffset(uint vertex, uint component) // { // return vertex * params . Ss + component * params . Bs + params . srcOffset; // } // // uint getDestinationComponentOffset(uint vertex, uint component) // { // return vertex * params . Sd + component * params . Bd + params . dstOffset; // } // // uint getShiftBits(uint offset, uint B) // { // // uint shift =(offset % 4)* 8; // // return shift; // } // // uint loadSourceComponent(uint cd) // { // // uint vertex = cd / params . Nd; // uint component = cd % params . Nd; // // if(component >= params . Ns && component < 3) // { // return 0; // } // // uint offset = getSourceComponentOffset(vertex, component); // uint block = srcData[offset / 4]; // // uint shiftBits; // uint valueBits; // uint valueMask; // // if(params . isSrcHDR) // { // valueBits = component == 3 ? 2 : 10; // valueMask = component == 3 ? 0x03 : 0x3FF; // if(params . isSrcA2BGR10) // { // shiftBits = 10 * component; // } // else // { // // shiftBits = component == 3 ? 0 :(valueBits *(2 - component)+ 2); // } // } // else // { // shiftBits = getShiftBits(offset, params . Bs); // valueBits = params . Bs * 8; // valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1; // } // // uint valueAsUint; // // if(component >= params . Ns && component == 3) // { // valueAsUint = params . srcEmulatedAlpha; // } // else // { // valueAsUint =(block >> shiftBits)& valueMask; // } // // uint value = valueAsUint; // // return value; // } // // float convertComponent(uint srcValue) // { // // return srcValue; // } // // uint makeDestinationComponent(uint cd, float value) // { // // uint valueAsUint; // // if(params . Bd == 2) // { // // uint shift =((cd & 1)== 0)? 0 : 16; // valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift; // } // else // { // valueAsUint = floatBitsToInt(value); // } // // return valueAsUint; // } // // void storeDestinationComponents(uint valueAsUint) // { // // destData[gl_GlobalInvocationID . x + params . dstOffset / 4]= valueAsUint; // } // // void main() // { // if(gl_GlobalInvocationID . x >= params . outputCount) // return; // // uint valueOut = 0; // for(uint i = 0;i < params . Ed;++ i) // { // uint cd = gl_GlobalInvocationID . x * params . Ed + i; // if(cd >= params . componentCount) // { // break; // } // // uint srcValue = loadSourceComponent(cd); // float destValue = convertComponent(srcValue); // valueOut |= makeDestinationComponent(cd, destValue); // } // // storeDestinationComponents(valueOut); // }