diff options
| -rw-r--r-- | source/slang/slang-core-module-textures.cpp | 3 | ||||
| -rw-r--r-- | 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; } |
