From 18cb2ce9610889127037f7733f7f73ac520a8175 Mon Sep 17 00:00:00 2001 From: penghaiyi Date: Fri, 23 Feb 2024 09:33:08 +0800 Subject: [PATCH] GLSL: Fix atomic_uint being incorrectly generated as uint --- spirv_cross.cpp | 2 +- spirv_glsl.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spirv_cross.cpp b/spirv_cross.cpp index 3f0fec334..93ed3bad5 100644 --- a/spirv_cross.cpp +++ b/spirv_cross.cpp @@ -1227,7 +1227,7 @@ const SPIRType &Compiler::get_pointee_type(uint32_t type_id) const uint32_t Compiler::get_variable_data_type_id(const SPIRVariable &var) const { - if (var.phi_variable) + if (var.phi_variable || var.storage == spv::StorageClass::StorageClassAtomicCounter) return var.basetype; return get_pointee_type_id(var.basetype); } diff --git a/spirv_glsl.cpp b/spirv_glsl.cpp index 0d37ba2e8..45cfce1d0 100644 --- a/spirv_glsl.cpp +++ b/spirv_glsl.cpp @@ -2568,7 +2568,7 @@ const char *CompilerGLSL::to_storage_qualifiers_glsl(const SPIRVariable &var) return var.storage == StorageClassInput ? "in " : "out "; } else if (var.storage == StorageClassUniformConstant || var.storage == StorageClassUniform || - var.storage == StorageClassPushConstant) + var.storage == StorageClassPushConstant || var.storage == StorageClassAtomicCounter) { return "uniform "; }