r600g: enable transform feedback on everything that isn't r700
authorMarek Olšák <maraeo@gmail.com>
Tue, 27 Mar 2012 19:00:49 +0000 (21:00 +0200)
committerMarek Olšák <maraeo@gmail.com>
Tue, 27 Mar 2012 19:06:59 +0000 (21:06 +0200)
Use R700_STREAMOUT=1 if you wanna hack transform feedback on r700.

src/gallium/drivers/r600/r600_pipe.c
src/gallium/winsys/radeon/drm/radeon_drm_winsys.c

index 8daa67a9952c4a87fde7f07e06c66d5b500bd139..580b9c1595550e9c7950e2918aa2b5476f88a86e 100644 (file)
@@ -814,6 +814,12 @@ struct pipe_screen *r600_screen_create(struct radeon_winsys *ws)
                rscreen->chip_class = R600;
        }
 
+       /* XXX streamout is broken on r700 */
+       if (rscreen->chip_class == R700 &&
+           !debug_get_bool_option("R700_STREAMOUT", FALSE)) {
+               rscreen->info.r600_has_streamout = false;
+       }
+
        if (r600_init_tiling(rscreen)) {
                FREE(rscreen);
                return NULL;
index 956fe854b8cd7db0076981efba6325481302825a..c29dca394f06db21780f42e190dbe3e816d272ce 100644 (file)
@@ -290,8 +290,7 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
                 ws->info.r600_virtual_address = FALSE;
         }
 
-       /* XXX don't enable this for R700 yet, it's broken on those asics */
-       ws->info.r600_has_streamout = debug_get_bool_option("R600_STREAMOUT", FALSE);
+       ws->info.r600_has_streamout = ws->info.drm_minor >= 13;
     }
 
     return TRUE;