summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-02-24 00:38:33 +0100
committerMarek Olšák <[email protected]>2012-02-27 02:03:24 +0100
commit622b65d33bcc46a6b2cede6081b32a26a4ec7c7f (patch)
tree5f978e9c2afb414fabd1f964a042835db52b561e /src
parentb85fc0ac7e9795b773edad22e20eb3270f4909bd (diff)
r600g: check for R600_STREAMOUT env var in winsys
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/r600/r600_pipe.c4
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_winsys.c4
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_winsys.h1
3 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 3a68d479cf0..9929baa226b 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -421,9 +421,9 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
/* Stream output. */
case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
- return debug_get_bool_option("R600_STREAMOUT", FALSE) ? 4 : 0;
+ return rscreen->info.r600_has_streamout ? 4 : 0;
case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
- return debug_get_bool_option("R600_STREAMOUT", FALSE) ? 1 : 0;
+ return rscreen->info.r600_has_streamout ? 1 : 0;
case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS:
return 16*4;
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index 0c83c68afa9..956fe854b8c 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -278,6 +278,7 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
&ws->info.r600_backend_map))
ws->info.r600_backend_map_valid = TRUE;
}
+
ws->info.r600_virtual_address = FALSE;
if (ws->info.drm_minor >= 13) {
ws->info.r600_virtual_address = TRUE;
@@ -288,6 +289,9 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
&ws->info.r600_ib_vm_max_size))
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);
}
return TRUE;
diff --git a/src/gallium/winsys/radeon/drm/radeon_winsys.h b/src/gallium/winsys/radeon/drm/radeon_winsys.h
index 6fbe765d6b1..ef07d37bc9a 100644
--- a/src/gallium/winsys/radeon/drm/radeon_winsys.h
+++ b/src/gallium/winsys/radeon/drm/radeon_winsys.h
@@ -99,6 +99,7 @@ struct radeon_info {
boolean r600_virtual_address;
uint32_t r600_va_start;
uint32_t r600_ib_vm_max_size;
+ boolean r600_has_streamout;
};
enum radeon_feature_id {