summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-03-27 21:00:49 +0200
committerMarek Olšák <[email protected]>2012-03-27 21:06:59 +0200
commit393d741788fa82896d4b1c9fd02402a83053afcf (patch)
tree8229a0ebdf017dc1b98bc5e9648e7f69be26f1d0
parentad22e647e07d17ce51d267ac200d8a544a33c834 (diff)
r600g: enable transform feedback on everything that isn't r700
Use R700_STREAMOUT=1 if you wanna hack transform feedback on r700.
-rw-r--r--src/gallium/drivers/r600/r600_pipe.c6
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_winsys.c3
2 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index 8daa67a9952..580b9c15955 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -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;
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index 956fe854b8c..c29dca394f0 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -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;