diff options
author | Marek Olšák <[email protected]> | 2012-02-24 00:38:33 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-02-27 02:03:24 +0100 |
commit | 622b65d33bcc46a6b2cede6081b32a26a4ec7c7f (patch) | |
tree | 5f978e9c2afb414fabd1f964a042835db52b561e /src | |
parent | b85fc0ac7e9795b773edad22e20eb3270f4909bd (diff) |
r600g: check for R600_STREAMOUT env var in winsys
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 4 | ||||
-rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 4 | ||||
-rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_winsys.h | 1 |
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 { |