Fix the shader calculation for the level of detail for certain samplers.
We were using an extra sqrt function for some cases.
TRAC #23591
Change-Id: I7d5d2b4b78586085396a281daf7975be316a1386
Signed-off-by: Shannon Woods
Signed-off-by: Geoff Lang
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index 5f77511..c410ba2 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -1091,7 +1091,7 @@
" float2 tSized = float2(t.x * width, t.y * height);\n"
" float dx = length(ddx(tSized));\n"
" float dy = length(ddy(tSized));\n"
- " float lod = log2(max(sqrt(dx), sqrt(dy)));\n";
+ " float lod = log2(max(dx, dy));\n";
if (textureFunction->method == TextureFunction::BIAS)
{
@@ -1121,7 +1121,7 @@
" float2 tSized = float2(t.x * width, t.y * height);\n"
" float dx = length(ddx(tSized));\n"
" float dy = length(ddy(tSized));\n"
- " float lod = log2(max(sqrt(dx), sqrt(dy)));\n";
+ " float lod = log2(max(dx, dy));\n";
if (textureFunction->method == TextureFunction::BIAS)
{
@@ -1152,7 +1152,7 @@
" float3 tSized = float3(t.x * width, t.y * height, t.z * depth);\n"
" float dx = length(ddx(tSized));\n"
" float dy = length(ddy(tSized));\n"
- " float lod = log2(max(sqrt(dx), sqrt(dy)));\n";
+ " float lod = log2(max(dx, dy));\n";
if (textureFunction->method == TextureFunction::BIAS)
{