diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-12-22 11:23:09 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-22 11:23:09 -0400 |
| commit | aea978e03702f0e7568c662755e662e9104590f3 (patch) | |
| tree | e4c7ac0e8c5921eec4c4104301a7f08afb33219a /src/video_core/renderer_vulkan/shaders/uint8.comp | |
| parent | 27efcc15e94cb1b72e0f3ad3450e034d76b49780 (diff) | |
| parent | b52297767e0a7598348299ad38abe2375571251a (diff) | |
Merge pull request #3230 from ReinUsesLisp/vk-emu-shaders
renderer_vulkan/shader: Add helper GLSL shaders
Diffstat (limited to 'src/video_core/renderer_vulkan/shaders/uint8.comp')
| -rw-r--r-- | src/video_core/renderer_vulkan/shaders/uint8.comp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/shaders/uint8.comp b/src/video_core/renderer_vulkan/shaders/uint8.comp new file mode 100644 index 000000000..a320f3ae0 --- /dev/null +++ b/src/video_core/renderer_vulkan/shaders/uint8.comp @@ -0,0 +1,33 @@ +// 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]); + } +} |
