summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmma Anholt <emma@anholt.net>2021-10-28 10:20:01 -0700
committerMarge Bot <emma+marge@anholt.net>2021-11-01 20:56:22 +0000
commit085e83895910ff32711bf48cc527cca61c792a7d (patch)
treedf508e36a07d93d0064f5991758921f612bfbc0f
parentfa4fd67f7824727d92e52c816543b0233eacd932 (diff)
i915g: Improve the explanation for the 1D Y swizzle.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13133>
-rw-r--r--src/gallium/drivers/i915/i915_fpc_translate.c7
1 files 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);