summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Kwak <82421531+jkwak-work@users.noreply.github.com>2025-08-06 14:54:37 -0700
committerGitHub <noreply@github.com>2025-08-06 21:54:37 +0000
commite0b912575c1db3c6f8273b154f8dcb2462a03d2e (patch)
treeb720b096acd556779f7e2e4de53b996a17e64264
parent352576546bf192b06e425e922d305f0a7d0845fb (diff)
Fix GetDimensions to use mipLevel for SPIRV (#8065)
* Fix GetDimensions to use mipLevel for SPIRV * format code (#84) --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com>
-rw-r--r--source/slang/slang-core-module-textures.cpp3
-rw-r--r--tests/cross-compile/vk-sampler-getdimension.slang6
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;
}