From df5e2c058f73b72909fa99a2a189f5877525e3bf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 8 Sep 2012 15:50:30 +0200 Subject: [PATCH] r600g: do not require MSAA renderbuffer support if not asked for to allow stencil-only sampler-only formats (like X24S8) NOTE: This is a candidate for the stable branches. --- src/gallium/drivers/r600/evergreen_state.c | 7 ------- src/gallium/drivers/r600/r600_state.c | 13 ++++--------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 8235c719f6b..816e7df4145 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -643,13 +643,6 @@ boolean evergreen_is_format_supported(struct pipe_screen *screen, default: return FALSE; } - - /* require render-target support for multisample resources */ - if (util_format_is_depth_or_stencil(format)) { - usage |= PIPE_BIND_DEPTH_STENCIL; - } else { - usage |= PIPE_BIND_RENDER_TARGET; - } } if ((usage & PIPE_BIND_SAMPLER_VIEW) && diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c index e299a8bd208..e092cf49808 100644 --- a/src/gallium/drivers/r600/r600_state.c +++ b/src/gallium/drivers/r600/r600_state.c @@ -592,6 +592,10 @@ boolean r600_is_format_supported(struct pipe_screen *screen, format == PIPE_FORMAT_R11G11B10_FLOAT) return FALSE; + /* MSAA integer colorbuffers hang. */ + if (util_format_is_pure_integer(format)) + return FALSE; + switch (sample_count) { case 2: case 4: @@ -600,15 +604,6 @@ boolean r600_is_format_supported(struct pipe_screen *screen, default: return FALSE; } - - /* require render-target support for multisample resources */ - if (util_format_is_depth_or_stencil(format)) { - usage |= PIPE_BIND_DEPTH_STENCIL; - } else if (util_format_is_pure_integer(format)) { - return FALSE; /* no integer textures */ - } else { - usage |= PIPE_BIND_RENDER_TARGET; - } } if ((usage & PIPE_BIND_SAMPLER_VIEW) && -- 2.30.2