// 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]);
    }
}
