freedreno/a5xx: fix negative branches
Looks like immed branch offset size increased again.. making what we think is a small negative number look to hw like a huge positive number. And things go badly when shader tries to jump to hyperspace. Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
ef30e91fe6
commit
45eef9af03
|
@ -296,6 +296,9 @@ typedef struct PACKED {
|
||||||
int32_t immed : 20;
|
int32_t immed : 20;
|
||||||
uint32_t dummy1 : 12;
|
uint32_t dummy1 : 12;
|
||||||
} a4xx;
|
} a4xx;
|
||||||
|
struct PACKED {
|
||||||
|
uint32_t immed : 32;
|
||||||
|
} a5xx;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* dword1: */
|
/* dword1: */
|
||||||
|
|
|
@ -129,7 +129,9 @@ static int emit_cat0(struct ir3_instruction *instr, void *ptr,
|
||||||
{
|
{
|
||||||
instr_cat0_t *cat0 = 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;
|
cat0->a4xx.immed = instr->cat0.immed;
|
||||||
} else {
|
} else {
|
||||||
cat0->a3xx.immed = instr->cat0.immed;
|
cat0->a3xx.immed = instr->cat0.immed;
|
||||||
|
|
Loading…
Reference in New Issue