GLSL: Don't apply Grad LOD workarounds for fetch.

This commit is contained in:
Hans-Kristian Arntzen 2022-05-13 15:47:22 +02:00
parent bfefb5f511
commit a3c4177324

View File

@ -7101,7 +7101,7 @@ string CompilerGLSL::to_function_name(const TextureFunctionNameArguments &args)
// This happens for HLSL SampleCmpLevelZero on Texture2DArray and TextureCube. // This happens for HLSL SampleCmpLevelZero on Texture2DArray and TextureCube.
bool workaround_lod_array_shadow_as_grad = false; bool workaround_lod_array_shadow_as_grad = false;
if (((imgtype.image.arrayed && imgtype.image.dim == Dim2D) || imgtype.image.dim == DimCube) && if (((imgtype.image.arrayed && imgtype.image.dim == Dim2D) || imgtype.image.dim == DimCube) &&
is_depth_image(imgtype, tex) && args.lod) is_depth_image(imgtype, tex) && args.lod && !args.base.is_fetch)
{ {
if (!expression_is_constant_null(args.lod)) if (!expression_is_constant_null(args.lod))
{ {
@ -7245,7 +7245,7 @@ string CompilerGLSL::to_function_args(const TextureFunctionArguments &args, bool
// This happens for HLSL SampleCmpLevelZero on Texture2DArray and TextureCube. // This happens for HLSL SampleCmpLevelZero on Texture2DArray and TextureCube.
bool workaround_lod_array_shadow_as_grad = bool workaround_lod_array_shadow_as_grad =
((imgtype.image.arrayed && imgtype.image.dim == Dim2D) || imgtype.image.dim == DimCube) && ((imgtype.image.arrayed && imgtype.image.dim == Dim2D) || imgtype.image.dim == DimCube) &&
is_depth_image(imgtype, img) && args.lod != 0; is_depth_image(imgtype, img) && args.lod != 0 && !args.base.is_fetch;
if (args.dref) if (args.dref)
{ {