diff options
| -rw-r--r-- | source/slang/core.meta.slang | 2 | ||||
| -rw-r--r-- | tests/cross-compile/glsl-calculatelevelofdetail.slang | 11 |
2 files changed, 13 insertions, 0 deletions
diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index ddb81fd87..77b9405ba 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -1358,9 +1358,11 @@ struct TextureTypeInfo if( !isMultisample ) { + sb << "__target_intrinsic(glsl, \"textureQueryLod($p, $2).x\")"; sb << "float CalculateLevelOfDetail(" << samplerStateParam; sb << "float" << base.coordCount << " location);\n"; + sb << "__target_intrinsic(glsl, \"textureQueryLod($p, $2).y\")"; sb << "float CalculateLevelOfDetailUnclamped(" << samplerStateParam; sb << "float" << base.coordCount << " location);\n"; } diff --git a/tests/cross-compile/glsl-calculatelevelofdetail.slang b/tests/cross-compile/glsl-calculatelevelofdetail.slang new file mode 100644 index 000000000..eb8c44a8b --- /dev/null +++ b/tests/cross-compile/glsl-calculatelevelofdetail.slang @@ -0,0 +1,11 @@ +//TEST:CROSS_COMPILE(filecheck=CHECK): -profile ps_5_0 -entry main -target glsl + +// CHECK: textureQueryLod(sampler2D(t_0,s_0), ({{.*}})).x +// CHECK: textureQueryLod(sampler2D(t_0,s_0), ({{.*}})).y + +Texture2D t; +SamplerState s; +float main() +{ + return t.CalculateLevelOfDetail(s, float2(0,0)) + t.CalculateLevelOfDetailUnclamped(s, float2(0,0)); +} |
