[Mesa-dev] [PATCH] gallium: add st_api feature mask to prevent advertising MS visuals
Brian Paul
brianp at vmware.com
Tue May 22 08:58:55 PDT 2012
On 05/22/2012 08:37 AM, Christoph Bumiller wrote:
> On 05/22/2012 04:23 PM, Brian Paul wrote:
>> On 05/21/2012 03:46 PM, Christoph Bumiller wrote:
>>> ---
>>> src/gallium/include/state_tracker/st_api.h | 16 +++++++++++++
>>> src/gallium/state_trackers/dri/common/dri_screen.c | 23
>>> +++++++++++--------
>>> src/gallium/state_trackers/vega/vg_manager.c | 1 +
>>> src/mesa/state_tracker/st_manager.c | 1 +
>>> 4 files changed, 31 insertions(+), 10 deletions(-)
>>
>> Hi Christopher, could you give a bit more background on this? I'm not
>> sure I understand the problem you're trying to solve here.
>>
>
> If gallium drivers advertise support for multisampled surfaces via
> is_format_supported (so EXT_framebuffer_multisample works properly), the
> dri state tracker sees that and advertises multisample visuals. But
> since they aren't actually implemented, applications that try to use
> them will crash or worse.
So the driver supports MS user FBOs/Renderbuffer but not MS
windows/pbuffers? What would it take to fully support MS visuals? Is
it just a driver issue or is there some DRI/infrastructure that's missing?
>> Where does 8 come from? The old value, below, was 4. I don't know
>> > where that came from either.
>> >
> The old value was 8 as well (i * 2 -> i), it's the maximum number of
> samples any current hardware supports.
There should be a comment for that then. And, we should probably use
a #define MAX_SAMPLES instead of '8'. There's also a few arrays in
that function which should be fixed:
uint8_t depth_bits_array[5];
uint8_t stencil_bits_array[5];
uint8_t msaa_samples_array[5];
to be:
uint8_t depth_bits_array[MAX_SAMPLES];
uint8_t stencil_bits_array[MAX_SAMPLES];
uint8_t msaa_samples_array[MAX_SAMPLES];
BTW, doesn't NVIDIA have a 5-sample MS mode? Maybe the loop should
also just try odd numbers of samples.
-Brian
More information about the mesa-dev
mailing list