diff options
author | Francisco Jerez <[email protected]> | 2016-08-12 18:33:58 -0700 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2016-08-16 16:31:59 -0700 |
commit | 61a02fb74c07d574b726a8b27517a02251aa4be4 (patch) | |
tree | a00201e300a586cda23aa78d2537e7acd52b67de | |
parent | 0c754d1c4203d87dbb9d2dd882ef42686e6d01ec (diff) |
i965/fs: Return zero from fs_inst::components_read for non-present sources.
This makes it easier for the caller to find out how many scalar
components are actually read by the instruction. As a bonus we no
longer need to special-case BAD_FILE in the implementation of
fs_inst::regs_read.
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index f23608966a0..1842d56786d 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -715,6 +715,10 @@ fs_inst::is_partial_write() const unsigned fs_inst::components_read(unsigned i) const { + /* Return zero if the source is not present. */ + if (src[i].file == BAD_FILE) + return 0; + switch (opcode) { case FS_OPCODE_LINTERP: if (i == 0) @@ -895,11 +899,10 @@ fs_inst::regs_read(int arg) const } switch (src[arg].file) { - case BAD_FILE: - return 0; case UNIFORM: case IMM: return 1; + case BAD_FILE: case ARF: case FIXED_GRF: case VGRF: |