From e180849b89618fde67379735eae3a633a97e293c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=80=D0=B0=D0=BD=D0=B8=D0=BC=D0=B8=D1=80=20=D0=9A?= =?UTF-8?q?=D0=B0=D1=80=D0=B0=D1=9F=D0=B8=D1=9B?= Date: Fri, 1 Oct 2021 20:13:46 -0700 Subject: [PATCH] shaderc: Fixed SPIRV outputting useless uniforms. --- tools/shaderc/shaderc_spirv.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/shaderc/shaderc_spirv.cpp b/tools/shaderc/shaderc_spirv.cpp index 0c40b1fb8..1069e1a3c 100644 --- a/tools/shaderc/shaderc_spirv.cpp +++ b/tools/shaderc/shaderc_spirv.cpp @@ -636,6 +636,11 @@ namespace bgfx { namespace spirv Uniform un; un.name = program->getUniformName(ii); + if (bx::hasSuffix(un.name.c_str(), ".@data") ) + { + continue; + } + un.num = 0; const uint32_t offset = program->getUniformBufferOffset(ii); un.regIndex = uint16_t(offset); @@ -800,6 +805,7 @@ namespace bgfx { namespace spirv for (auto& resource : resourcesrefl.storage_buffers) { std::string name = refl.get_name(resource.id); + uint32_t binding_index = refl.get_decoration(resource.id, spv::Decoration::DecorationBinding); spirv_cross::Bitset flags = refl.get_buffer_block_flags(resource.id);