// Copyright 2019 yuzu Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. /* * Build instructions: * $ glslangValidator -V $THIS_FILE -o output.spv * $ spirv-opt -O --strip-debug output.spv -o optimized.spv * $ xxd -i optimized.spv * * Then copy that bytecode to the C++ file */ #version 460 core layout (local_size_x = 1024) in; layout (std430, set = 0, binding = 0) buffer OutputBuffer { uint output_indexes[]; }; layout (push_constant) uniform PushConstants { uint first; }; void main() { uint primitive = gl_GlobalInvocationID.x; if (primitive * 6 >= output_indexes.length()) { return; } const uint quad_map[6] = uint[](0, 1, 2, 0, 2, 3); for (uint vertex = 0; vertex < 6; ++vertex) { uint index = first + primitive * 4 + quad_map[vertex]; output_indexes[primitive * 6 + vertex] = index; } }