// 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/ConvertIndex.comp.00000001.inc: // Pre-generated shader for the ANGLE Vulkan back-end. #pragma once constexpr uint8_t kConvertIndex_comp_00000001[] = …; // 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 dstIndexBuf[]; // }; // // layout(set = 0, binding = 1)readonly buffer src // { // // uint srcIndexBuf[]; // }; // // layout(push_constant)uniform PushConstants // { // // uint srcIndexOffset; // // uint dstIndexBufOffsetDiv4; // // uint maxIndex; // // uint _padding; // }; // // uint PullIndex(uint index) // { // uint srcIndex = index + srcIndexOffset; // uint srcBlock = srcIndexBuf[srcIndex >> 2]; // uint srcComponent =(srcIndex & 3); // // uint value =(srcBlock >>(srcComponent << 3))& 0xFF; // // if(value == 0xFF) // value = 0xFFFF; // // return value; // } // // void PackIndexValue(uint srcValue, uint indexIndex, inout uint dstValue) // { // // dstValue |= srcValue <<(indexIndex << 4); // } // // void main() // { // // uint firstIndex = 0; // uint endIndex = firstIndex + maxIndex; // // uint index =((gl_GlobalInvocationID . x +(firstIndex >> 1))<< 1); // // if(index >= endIndex) // return; // // uint dstValue = 0; // // if(index >= firstIndex) // { // uint srcValue = PullIndex(index); // PackIndexValue(srcValue, 0, dstValue); // } // // if(index + 1 < endIndex) // { // uint srcValue = PullIndex(index + 1); // PackIndexValue(srcValue, 1, dstValue); // } // // dstIndexBuf[dstIndexBufOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue; // // }