// 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 #extension GL_EXT_shader_16bit_storage : require #extension GL_EXT_shader_8bit_storage : require layout (local_size_x = 1024) in; layout (std430, set = 0, binding = 0) readonly buffer InputBuffer { uint8_t input_indexes[]; }; layout (std430, set = 0, binding = 1) writeonly buffer OutputBuffer { uint16_t output_indexes[]; }; void main() { uint id = gl_GlobalInvocationID.x; if (id < input_indexes.length()) { output_indexes[id] = uint16_t(input_indexes[id]); } }