From e0b912575c1db3c6f8273b154f8dcb2462a03d2e Mon Sep 17 00:00:00 2001 From: Jay Kwak <82421531+jkwak-work@users.noreply.github.com> Date: Wed, 6 Aug 2025 14:54:37 -0700 Subject: Fix GetDimensions to use mipLevel for SPIRV (#8065) * Fix GetDimensions to use mipLevel for SPIRV * format code (#84) --------- Co-authored-by: slangbot --- source/slang/slang-core-module-textures.cpp | 3 ++- tests/cross-compile/vk-sampler-getdimension.slang | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/source/slang/slang-core-module-textures.cpp b/source/slang/slang-core-module-textures.cpp index ed34ed388..f9573a15a 100644 --- a/source/slang/slang-core-module-textures.cpp +++ b/source/slang/slang-core-module-textures.cpp @@ -499,7 +499,8 @@ void TextureTypeInfo::writeGetDimensionFunctions() if (isMultisample || isRW) spirv << "OpImageQuerySize " << imageVar << ";"; else - spirv << "OpImageQuerySizeLod " << imageVar << " $0;"; + spirv << "OpImageQuerySizeLod " << imageVar + << (includeMipInfo ? " $mipLevel;" : " $0;"); auto convertAndStore = [&](UnownedStringSlice uintSourceVal, const char* destParam) { diff --git a/tests/cross-compile/vk-sampler-getdimension.slang b/tests/cross-compile/vk-sampler-getdimension.slang index ca0a5ce11..04bbaccf0 100644 --- a/tests/cross-compile/vk-sampler-getdimension.slang +++ b/tests/cross-compile/vk-sampler-getdimension.slang @@ -21,13 +21,13 @@ struct PSout PSout main(PSin stage, bool isFrontFacing : SV_IsFrontFace) { // CHECK: %image{{.*}} = OpImage - // CHECK: OpImageQuerySizeLod %{{.*}} %image{{.*}} + // CHECK: OpImageQuerySizeLod %{{.*}} %image{{.*}} %uint_1 PSout output; // Find normal at position uint3 dim; uint levels; - g_Volume.GetDimensions(0, dim.x, dim.y, dim.z, levels); + g_Volume.GetDimensions(1, dim.x, dim.y, dim.z, levels); output.color = g_Volume.Sample(float3(dim)); - + return output; } -- cgit v1.2.3