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:
Rob Clark 2016-11-30 16:43:42 -05:00
parent ef30e91fe6
commit 45eef9af03
2 changed files with 6 additions and 1 deletions

View File

@ -296,6 +296,9 @@ typedef struct PACKED {
int32_t immed : 20;
uint32_t dummy1 : 12;
} a4xx;
struct PACKED {
uint32_t immed : 32;
} a5xx;
};
/* dword1: */

View File

@ -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;