diff options
author | Hans de Goede <[email protected]> | 2016-04-21 13:31:01 +0200 |
---|---|---|
committer | Hans de Goede <[email protected]> | 2016-04-27 16:11:48 +0200 |
commit | 1958397a587919e4a3ec83441c3717813ba2f18b (patch) | |
tree | 4a2aba267fbcc29b1583457313f164b0c93783b2 | |
parent | 7d25ed70362ee9362aeeadb00f5a4e2bea690827 (diff) |
nouveau: codegen: LOAD: Always use component 0 when getting the address
LOAD loads upto 4 components from the specified resource starting at
the passed in x value of the 2nd source operand, the y, z and w
components of the address should not be used.
Signed-off-by: Hans de Goede <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Ilia Mirkin <[email protected]>
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp index 1376a1a0f09..cdf9d9413e6 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -2383,7 +2383,8 @@ Converter::handleLOAD(Value *dst0[4]) if (!dst0[c]) continue; - Value *off = fetchSrc(1, c); + // yzw are ignored for buffers + Value *off = fetchSrc(1, 0); Symbol *sym; if (tgsi.getSrc(1).getFile() == TGSI_FILE_IMMEDIATE) { off = NULL; @@ -2522,6 +2523,7 @@ Converter::handleSTORE() sym = makeSym(tgsi.getDst(0).getFile(), r, -1, c, tgsi.getSrc(0).getValueU32(0, info) + 4 * c); } else { + // yzw are ignored for buffers off = fetchSrc(0, 0); sym = makeSym(tgsi.getDst(0).getFile(), r, -1, c, 4 * c); } |