aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/freedreno/ir3/instr-a3xx.h3
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/instr-a3xx.h b/src/gallium/drivers/freedreno/ir3/instr-a3xx.h
index 87083fd1e81..0d369b605f7 100644
--- a/src/gallium/drivers/freedreno/ir3/instr-a3xx.h
+++ b/src/gallium/drivers/freedreno/ir3/instr-a3xx.h
@@ -296,6 +296,9 @@ typedef struct PACKED {
int32_t immed : 20;
uint32_t dummy1 : 12;
} a4xx;
+ struct PACKED {
+ uint32_t immed : 32;
+ } a5xx;
};
/* dword1: */
diff --git a/src/gallium/drivers/freedreno/ir3/ir3.c b/src/gallium/drivers/freedreno/ir3/ir3.c
index c0a39d70def..7c925ee7cb0 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3.c
@@ -129,7 +129,9 @@ static int emit_cat0(struct ir3_instruction *instr, void *ptr,
{
instr_cat0_t *cat0 = ptr;
- if (info->gpu_id >= 400) {
+ if (info->gpu_id >= 500) {
+ cat0->a5xx.immed = instr->cat0.immed;
+ } else if (info->gpu_id >= 400) {
cat0->a4xx.immed = instr->cat0.immed;
} else {
cat0->a3xx.immed = instr->cat0.immed;