[Mesa-dev] [PATCH 15/15] intel: Advertise multisample DRI2 configs on gen >= 6

Chad Versace chad.versace at linux.intel.com
Thu Jul 26 17:42:32 PDT 2012


On 07/23/2012 01:45 PM, Ian Romanick wrote:
> On 07/21/2012 05:36 PM, Chad Versace wrote:
>> This turns on window system multisampling.
>>
>> No Piglit regressions on Ivybridge.
>>
>> Tested with `glxgears -samples 1`.
>>
>> Passes 53/70 of oglconform's winsys multisample tests. The failing tests
>> mostly consist of those that call glDrawPixels on the depth and stencil
>> buffer (which fail due to a swrast fallback) or do fancy things with the
>> msaa alpha enums.
>>
>> CC: Eric Anholt <eric at anholt.net>
>> CC: Ian Romanick <idr at freedesktop.org>
>> Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
>> ---
>>   src/mesa/drivers/dri/intel/intel_screen.c | 44 +++++++++++++++++++++++++++++--
>>   1 file changed, 42 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/intel/intel_screen.c
>> b/src/mesa/drivers/dri/intel/intel_screen.c
>> index 61daea7..420901e 100644
>> --- a/src/mesa/drivers/dri/intel/intel_screen.c
>> +++ b/src/mesa/drivers/dri/intel/intel_screen.c
>> @@ -866,14 +866,54 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
>>         GLX_SWAP_UNDEFINED_OML, GLX_NONE, GLX_SWAP_COPY_OML,
>>      };
>>
>> -   static const uint8_t msaa_samples[] = {0};
>> +   static const uint8_t msaa_samples[] = {0, 4};
>> +
>> +   struct intel_screen *screen = dri_screen->driverPrivate;
>> +
>> +   int num_msaa_modes;
>> +   if (screen->gen >= 6)
>> +      num_msaa_modes = 2;
>> +   else
>> +      num_msaa_modes = 1;
>>
>>      /* Starting with DRI2 protocol version 1.1 we can request a depth/stencil
>>       * buffer that has a different number of bits per pixel than the color
>>       * buffer.  This isn't yet supported here.
>>       */
>>      struct config_params params[] = {
>> -      /* Configs without accumulation buffer. */
>> +      /* Multisample configs. */
> 
> The new configs should go at the end.  This is to maintain the numbering that I
> mentioned in the previous patch.

Will do in the final patch.

Interestingly, listing the multisample configs before the singlesample configs
exposes a nasty bug under Gnome Shell. Paul and I are investigating.

> It occurs to me that there is some advantage in advertising 24/0 formats on GPUs
> that require the use of separate stencil.  On these GPUs we allocate a giant
> (32-bits per pixel!) stencil buffer that the application is never going to use.
> 
> Of course, adding these in a sensible way will ruin the config numbering.  Alas.

Good idea. We can do that in a follow-up patch.



More information about the mesa-dev mailing list