r300: Fix a regression on non-KMS
authorNicolai Hähnle <nhaehnle@gmail.com>
Sun, 2 Aug 2009 12:38:44 +0000 (14:38 +0200)
committerNicolai Hähnle <nhaehnle@gmail.com>
Sun, 2 Aug 2009 14:24:52 +0000 (16:24 +0200)
The regression was introduced by 9a1c336253579d8b58b31910325227b22b4af395

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
src/mesa/drivers/dri/r300/r300_cmdbuf.c

index 7eb11aaf271fefd9e82e4f77304adba2841baa15..bd46f9acf2e64dd69cd5c9485695cd9243eaac74 100644 (file)
@@ -177,14 +177,17 @@ static void emit_tex_offsets(GLcontext *ctx, struct radeon_state_atom * atom)
                } else if (!t) {
                        /* Texture unit hasn't a texture bound.
                         * We assign the current color buffer as a fakery to make
-                        * KIL work. */
-                       struct radeon_renderbuffer *rrb = radeon_get_colorbuffer(&r300->radeon);
-                       if (rrb && rrb->bo) {
-                               BEGIN_BATCH_NO_AUTOSTATE(4);
-                               OUT_BATCH_REGSEQ(R300_TX_OFFSET_0 + (i * 4), 1);
-                               OUT_BATCH_RELOC(0, rrb->bo, 0,
-                                               RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0);
-                               END_BATCH();
+                        * KIL work on KMS (without it, the CS checker will complain).
+                        */
+                       if (r300->radeon.radeonScreen->kernel_mm) {
+                               struct radeon_renderbuffer *rrb = radeon_get_colorbuffer(&r300->radeon);
+                               if (rrb && rrb->bo) {
+                                       BEGIN_BATCH_NO_AUTOSTATE(4);
+                                       OUT_BATCH_REGSEQ(R300_TX_OFFSET_0 + (i * 4), 1);
+                                       OUT_BATCH_RELOC(0, rrb->bo, 0,
+                                                       RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0);
+                                       END_BATCH();
+                               }
                        }
                } else { /* override cases */
                        if (t->bo) {