summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}