[Mesa-dev] [PATCH 1/2] gallium/u_blitter: enable MSAA when blitting to MSAA surfaces

Brian Paul brianp at vmware.com
Mon Dec 11 20:05:38 UTC 2017


On 12/11/2017 11:06 AM, Marek Olšák wrote:
> On Thu, Dec 7, 2017 at 5:09 PM, Brian Paul <brianp at vmware.com> wrote:
>> If we're doing a Z -> Z MSAA blit (for example) we need to enable
>> msaa rasterization when drawing the quads so that we can properly
>> write the per-sample values.
>>
>> This fixes a number of Piglit ext_framebuffer_multisample blit tests
>> such as ext_framebuffer_multisample/no-color 2 depth combined with
>> the VMware driver.
>>
>> ---
>>
>> Marek, I'm not sure how this could have worked without MSAA enabled.
>> Perhaps you can comment.
>
> Enabling MSAA rasterization should have no effect, because the blitter
> draws an axis-aligned quad, so each pixel will generate only one
> sample.
>
> radeon drivers still obey the sample mask even if MSAA is disabled. I
> guess svga doesn't.

If we'd set the sample mask in the fs (with a TGSI_SEMANTIC_SAMPLEMASK 
output register) we'd get automatic MSAA, but we don't do that with the 
pipe_context::set_sample_mask() state.


>
> I guess enabling MSAA is OK, but now we also have to save and restore
> the "min_samples" value if it's not 1, because we don't want to use
> sample shading because u_blitter doesn't need it.

OK, I can add a predecessor patch to take care of that.  I'll send a v2...

-Brian



More information about the mesa-dev mailing list