From 085e83895910ff32711bf48cc527cca61c792a7d Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Thu, 28 Oct 2021 10:20:01 -0700 Subject: [PATCH] i915g: Improve the explanation for the 1D Y swizzle. Part-of: --- src/gallium/drivers/i915/i915_fpc_translate.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/i915/i915_fpc_translate.c b/src/gallium/drivers/i915/i915_fpc_translate.c index 345f8609805..7e36f2f0736 100644 --- a/src/gallium/drivers/i915/i915_fpc_translate.c +++ b/src/gallium/drivers/i915/i915_fpc_translate.c @@ -364,10 +364,9 @@ emit_tex(struct i915_fp_compile *p, const struct i915_full_instruction *inst, uint32_t sampler = i915_emit_decl(p, REG_TYPE_S, unit, tex); uint32_t coord = src_vector(p, &inst->Src[0], fs); - /* For 1D textures, make sure that the Y coordinate is actually - * initialized. It seems that if the channel is never written during the - * program, texturing returns undefined results (even if the Y wrap is - * REPEAT). + /* For 1D textures, set the Y coord to the same as X. Otherwise, we could + * select the wrong LOD based on the uninitialized Y coord when we sample our + * 1D textures as 2D. */ if (texture == TGSI_TEXTURE_1D || texture == TGSI_TEXTURE_SHADOW1D) coord = swizzle(coord, X, X, Z, W);