// 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.00000000.inc: // Pre-generated shader for the ANGLE Vulkan back-end. #pragma once constexpr uint8_t kConvertVertex_comp_00000000[] = …; // 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; // } // // int 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; // } // // if(valueBits < 32) // { // bool isNegative =(valueAsUint &(1 <<(valueBits - 1)))!= 0; // // uint signExtension = isNegative ? 0xFFFFFFFF << valueBits : 0; // valueAsUint |= signExtension; // } // int value = int(valueAsUint); // // return value; // } // // int convertComponent(int srcValue) // { // // return srcValue; // } // // uint makeDestinationComponent(uint cd, int value) // { // // uint vertex = cd / params . Nd; // uint component = cd % params . Nd; // // uint offset = getDestinationComponentOffset(vertex, component); // uint shiftBits = getShiftBits(offset, params . Bd); // // uint valueBits = params . Bd * 8; // uint valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1; // uint valueAsUint =(uint(value)& valueMask)<< shiftBits; // // 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; // } // // int srcValue = loadSourceComponent(cd); // int destValue = convertComponent(srcValue); // valueOut |= makeDestinationComponent(cd, destValue); // } // // storeDestinationComponents(valueOut); // }