From: Jason Ekstrand Date: Thu, 18 Jun 2015 01:02:11 +0000 (-0700) Subject: i965/fs: Fix fs_inst::regs_read() for uniform pull constant loads X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=aca5228011e7b9e96f3bd3a621c88e63ba47a4f3;p=mesa.git i965/fs: Fix fs_inst::regs_read() for uniform pull constant loads Previously, fs_inst::regs_read() fell back to depending on the register width for the second source. This isn't really correct since it isn't a SIMD8 value at all, but a SIMD4x2 value. This commit changes it to explicitly be always one register. v2: Use mlen for determining the number of registers read Reviewed-by: Iago Toral Quiroga Acked-by: Francisco Jerez --- diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 94f42949ce2..e83a0923e80 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -715,6 +715,12 @@ fs_inst::regs_read(int arg) const return mlen; break; + case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD_GEN7: + /* The payload is actually stored in src1 */ + if (arg == 1) + return mlen; + break; + case FS_OPCODE_LINTERP: if (arg == 0) return exec_size / 4;