r300g: fix hardlocks in occlusion queries
authorMarek Olšák <maraeo@gmail.com>
Fri, 18 Jun 2010 00:17:29 +0000 (02:17 +0200)
committerMarek Olšák <maraeo@gmail.com>
Fri, 18 Jun 2010 00:17:29 +0000 (02:17 +0200)
Early Z test (=ZTOP) must be disabled before a query is started,
otherwise the GPU is dead. The order of emitted registers matters more
than you might think.

This fixes hardlocks in sauerbraten.

src/gallium/drivers/r300/r300_context.c

index 1139426..0fae19d 100644 (file)
@@ -111,8 +111,8 @@ static void r300_setup_atoms(struct r300_context* r300)
      * the size of 0 here. */
     make_empty_list(&r300->atom_list);
     R300_INIT_ATOM(invariant_state, 71);
-    R300_INIT_ATOM(query_start, 4);
     R300_INIT_ATOM(ztop_state, 2);
+    R300_INIT_ATOM(query_start, 4);
     R300_INIT_ATOM(blend_state, 8);
     R300_INIT_ATOM(blend_color_state, is_r500 ? 3 : 2);
     R300_INIT_ATOM(clip_state, has_tcl ? 5 + (6 * 4) : 2);