r600g: fix relative addressing on RS780 and RS880
authorMarek Olšák <maraeo@gmail.com>
Mon, 27 Aug 2012 00:08:37 +0000 (02:08 +0200)
committerMarek Olšák <maraeo@gmail.com>
Tue, 28 Aug 2012 16:27:03 +0000 (18:27 +0200)
They should be treated like RV670.

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/r600/r600_asm.c

index f01de41e129360807f457f13cbca44a6898d4ccf..03ded6c5877af40eebe0b15d068124e09f528574 100644 (file)
@@ -256,16 +256,15 @@ static struct r600_bytecode_tex *r600_bytecode_tex(void)
 
 void r600_bytecode_init(struct r600_bytecode *bc, enum chip_class chip_class, enum radeon_family family)
 {
-       if ((chip_class == R600) && (family != CHIP_RV670))
+       if ((chip_class == R600) &&
+           (family != CHIP_RV670 && family != CHIP_RS780 && family != CHIP_RS880)) {
                bc->ar_handling = AR_HANDLE_RV6XX;
-       else
-               bc->ar_handling = AR_HANDLE_NORMAL;
-
-       if ((chip_class == R600) && (family != CHIP_RV670 && family != CHIP_RS780 &&
-                                          family != CHIP_RS880))
                bc->r6xx_nop_after_rel_dst = 1;
-       else
+       } else {
+               bc->ar_handling = AR_HANDLE_NORMAL;
                bc->r6xx_nop_after_rel_dst = 0;
+       }
+
        LIST_INITHEAD(&bc->cf);
        bc->chip_class = chip_class;
 }