aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp')
-rw-r--r--src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp
index bc0b2f20b62..24c3fbe2ae3 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp
@@ -494,13 +494,8 @@ void temp_access::record_write(int line, prog_scope *scope, int writemask)
comp[3].record_write(line, scope);
}
-void temp_access::record_read(int line, prog_scope *scope, int swizzle)
+void temp_access::record_read(int line, prog_scope *scope, int readmask)
{
- int readmask = 0;
- for (int idx = 0; idx < 4; ++idx) {
- int swz = GET_SWZ(swizzle, idx);
- readmask |= (1 << swz) & 0xF;
- }
update_access_mask(readmask);
if (readmask & WRITEMASK_X)
@@ -940,8 +935,14 @@ access_recorder::~access_recorder()
void access_recorder::record_read(const st_src_reg& src, int line,
prog_scope *scope)
{
+ int readmask = 0;
+ for (int idx = 0; idx < 4; ++idx) {
+ int swz = GET_SWZ(src.swizzle, idx);
+ readmask |= (1 << swz) & 0xF;
+ }
+
if (src.file == PROGRAM_TEMPORARY)
- temp_acc[src.index].record_read(line, scope, src.swizzle);
+ temp_acc[src.index].record_read(line, scope, readmask);
if (src.reladdr)
record_read(*src.reladdr, line, scope);