[Mesa-dev] [PATCH 0/6] Add support for GL_NV_fill_rectangle

Ilia Mirkin imirkin at alum.mit.edu
Thu Mar 23 18:57:54 UTC 2017


On Thu, Mar 23, 2017 at 2:45 PM, Lyude Paul <lyude at redhat.com> wrote:
> On Thu, 2017-03-23 at 14:22 -0400, Alex Deucher wrote:
>> On Thu, Mar 23, 2017 at 2:18 PM, Marek Olšák <maraeo at gmail.com>
>> wrote:
>> > Is there any user of this extension?
>>
>> Based on the spec, it seems like it would be useful for glamor.  No
>> idea is anyone has code to use it yet.
> Actually me, robclark and airlied were talking specifically about using
> this for glamor and trying to implement it on other platforms using
> rectangular primitives. No idea if that'll work (especially since I'm
> new here), but it sounds promising enough to try :).
>
> Once I get this patch series upstream I'll probably look into writing
> an implementation for softpipe and some other drivers

Seems like there are a bunch of ways of achieving the same thing,
namely a rectangle being drawn:
 - new rectangle primitive
 - NV_fill_rectangle
 - EXT_window_rectangles or scissors + overdrawn triangle

The latter only works for a single rectangle, but I doubt it's too
useful to have multiple ones drawn anyways.

I've already implemented EXT_window_rectangles on nouveau, and my
understanding is that it should be easy on SI+. This support goes back
to nv50, and with minor modifications to the ext, could go as far back
as nv30, if not earlier. (As-is it requires something semi-silly which
prevents implementation there.)

NV_fill_rectangle functionality is only available on GM200+, which are
quite recent GPUs (GTX 950+). I'm not aware of a way to do rectangle
primitives on NVIDIA GPUs (i.e. specifying them as 3 points) without
NV_fill_rectangle functionality. All NVIDIA GPUs do support QUADS, but
I'm not sure if they're rasterized in one go or two.

None of this is for or against any particular approach, merely
providing some information.

Cheers,

  -ilia


More information about the mesa-dev mailing list