// 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/ConvertIndexIndirectLineLoop.comp.00000001.inc: // Pre-generated shader for the ANGLE Vulkan back-end. #pragma once constexpr uint8_t kConvertIndexIndirectLineLoop_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 dstData[]; // }; // // layout(set = 0, binding = 1)readonly buffer src // { // // uint srcData[]; // }; // // layout(set = 0, binding = 2)readonly buffer cmd // { // // uint cmdData[]; // }; // // layout(set = 0, binding = 3)buffer dstCmd // { // // uint dstCmdData[]; // }; // // layout(push_constant)uniform PushConstants // { // // uint cmdOffsetDiv4; // // uint dstCmdOffsetDiv4; // // uint srcOffset; // // uint dstOffsetDiv4; // // uint isRestartEnabled; // }; // // uint GetIndexValue(uint index) // { // // index += srcOffset >>(2 - 1); // // uint srcBlock = srcData[index >> 1]; // // uint srcShift =((index & 0x1)<< 4); // // uint value =(srcBlock >> srcShift)& 0xffff; // return value; // // } // // void PutIndexValue(uint index, uint value) // { // // uint dstIndex = dstOffsetDiv4 +(index >> 1); // // uint srcBlock = dstData[dstIndex]; // // uint srcShift =((index & 0x1)<< 4); // // srcBlock &= ~(0xffff << srcShift); // // srcBlock |= value << srcShift; // // dstData[dstIndex]= srcBlock; // // } // // void main() // { // // uint indexCount = cmdData[cmdOffsetDiv4]; // uint firstIndex = cmdData[cmdOffsetDiv4 + 2]; // uint endIndex = firstIndex + indexCount; // // if(gl_GlobalInvocationID . x >= 1) // return; // // uint workingCount = 0; // uint srcIdx = firstIndex; // uint indicesRemaining = indexCount; // uint lineSize = 0; // uint firstIndexValue = 0; // while(indicesRemaining > 0) // { // uint indexValue; // uint restartValue = 0xffff; // indexValue = GetIndexValue(srcIdx ++); // if(lineSize == 0) // { // firstIndexValue = indexValue; // } // indicesRemaining --; // if((isRestartEnabled == 1)&&(indexValue == restartValue)) // { // // if(lineSize > 1) // { // PutIndexValue(workingCount ++, firstIndexValue); // } // if(lineSize > 0) // { // PutIndexValue(workingCount ++, restartValue); // } // lineSize = 0; // } else { // PutIndexValue(workingCount, indexValue); // workingCount ++; // lineSize ++; // } // } // if(lineSize > 1) // { // PutIndexValue(workingCount, firstIndexValue); // workingCount ++; // } // // dstCmdData[dstCmdOffsetDiv4]= workingCount; // dstCmdData[dstCmdOffsetDiv4 + 1]= cmdData[cmdOffsetDiv4 + 1]; // dstCmdData[dstCmdOffsetDiv4 + 2]= 0; // dstCmdData[dstCmdOffsetDiv4 + 3]= cmdData[cmdOffsetDiv4 + 3]; // dstCmdData[dstCmdOffsetDiv4 + 4]= cmdData[cmdOffsetDiv4 + 4]; // }