summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/tgsi/tgsi_scan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/tgsi/tgsi_scan.c')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index 65bdab5b1cd..d32c3a14344 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
@@ -196,10 +196,13 @@ scan_instruction(struct tgsi_shader_info *info,
if (is_memory_file(src->Register.File)) {
is_mem_inst = true;
- if (src->Register.File == TGSI_FILE_IMAGE &&
- !src->Register.Indirect &&
- tgsi_get_opcode_info(fullinst->Instruction.Opcode)->is_store)
- info->images_writemask |= 1 << src->Register.Index;
+ if (tgsi_get_opcode_info(fullinst->Instruction.Opcode)->is_store) {
+ info->writes_memory = TRUE;
+
+ if (src->Register.File == TGSI_FILE_IMAGE &&
+ !src->Register.Indirect)
+ info->images_writemask |= 1 << src->Register.Index;
+ }
}
}
@@ -215,6 +218,7 @@ scan_instruction(struct tgsi_shader_info *info,
assert(fullinst->Instruction.Opcode == TGSI_OPCODE_STORE);
is_mem_inst = true;
+ info->writes_memory = TRUE;
if (dst->Register.File == TGSI_FILE_IMAGE &&
!dst->Register.Indirect)