summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2016-03-10 16:30:07 -0500
committerNicolai Hähnle <[email protected]>2016-03-14 17:24:02 -0500
commit3243b6fc97dc73555f72ce8c01f643d707b26610 (patch)
tree9959afd93846f7d666cf466ff0f8a3be603c383e
parent9b68bdf6f8a06986340efa0c94afeeeb5580f9fd (diff)
tgsi: add Texture and Format to tgsi_instruction_memory
Frontends should have this information readily available, and it simplifies image LOAD/STORE/ATOM* handling especially with indirect image access. Reviewed-by: Ilia Mirkin <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_dump.c8
-rw-r--r--src/gallium/include/pipe/p_shader_tokens.h4
2 files changed, 11 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c
index f232f3870d1..c8b91bba534 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_dump.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_dump.c
@@ -637,6 +637,14 @@ iter_instruction(
TXT(", ");
ENM(bit, tgsi_memory_names);
}
+ if (inst->Memory.Texture) {
+ TXT( ", " );
+ ENM( inst->Memory.Texture, tgsi_texture_names );
+ }
+ if (inst->Memory.Format) {
+ TXT( ", " );
+ TXT( util_format_name(inst->Memory.Format) );
+ }
}
switch (inst->Instruction.Opcode) {
diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h
index 9d4a96a5a7e..34e491e4b93 100644
--- a/src/gallium/include/pipe/p_shader_tokens.h
+++ b/src/gallium/include/pipe/p_shader_tokens.h
@@ -743,7 +743,9 @@ struct tgsi_dst_register
struct tgsi_instruction_memory
{
unsigned Qualifier : 3; /* TGSI_MEMORY_ */
- unsigned Padding : 29;
+ unsigned Texture : 8; /* only for images: TGSI_TEXTURE_ */
+ unsigned Format : 10; /* only for images: PIPE_FORMAT_ */
+ unsigned Padding : 11;
};
#define TGSI_MEMBAR_SHADER_BUFFER (1 << 0)