From: Marek Olšák Date: Thu, 23 Feb 2012 23:38:33 +0000 (+0100) Subject: r600g: check for R600_STREAMOUT env var in winsys X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=622b65d33bcc46a6b2cede6081b32a26a4ec7c7f;p=mesa.git r600g: check for R600_STREAMOUT env var in winsys --- 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 {