| 123456789101112131415161718192021222324252627282930 |
- // SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
- // SPDX-License-Identifier: GPL-2.0-or-later
- #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[];
- };
- uint AssembleIndex(uint id) {
- // Most primitive restart indices are 0xFF
- // Hardcode this to 0xFF for now
- uint index = uint(input_indexes[id]);
- return index == 0xFF ? 0xFFFF : index;
- }
- void main() {
- uint id = gl_GlobalInvocationID.x;
- if (id < input_indexes.length()) {
- output_indexes[id] = uint16_t(AssembleIndex(id));
- }
- }
|