r300/compiler: disable the rename_regs pass for loops
authorMarek Olšák <maraeo@gmail.com>
Tue, 4 Jan 2011 20:54:23 +0000 (21:54 +0100)
committerMarek Olšák <maraeo@gmail.com>
Tue, 4 Jan 2011 20:58:51 +0000 (21:58 +0100)
This workaround fixes rendering of kwin thumbnails.

NOTE: This is a candidate for the 7.9 and 7.10 branches.

src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c

index 88165f78953e456c80ed2672cf289c0967a1391c..5bd19c0b9c615c9d57d77a2bee0eff665923b042 100644 (file)
@@ -51,6 +51,14 @@ void rc_rename_regs(struct radeon_compiler *c, void *user)
        struct rc_reader_data reader_data;
        unsigned char * used;
 
+       /* XXX Remove this once the register allocation works with flow control. */
+       for(inst = c->Program.Instructions.Next;
+                                       inst != &c->Program.Instructions;
+                                       inst = inst->Next) {
+               if (inst->U.I.Opcode == RC_OPCODE_BGNLOOP)
+                       return;
+       }
+
        used_length = 2 * rc_recompute_ips(c);
        used = memory_pool_malloc(&c->Pool, sizeof(unsigned char) * used_length);
        memset(used, 0, sizeof(unsigned char) * used_length);