[Mesa-dev] [PATCH v3 3/6] gallium: add API for setting window rectangles

Brian Paul brianp at vmware.com
Mon Jun 13 14:54:08 UTC 2016


On 06/13/2016 08:50 AM, Ilia Mirkin wrote:
> On Mon, Jun 13, 2016 at 10:45 AM, Brian Paul <brianp at vmware.com> wrote:
>> On 06/12/2016 12:36 AM, Ilia Mirkin wrote:
>>>
>>> Window rectangles apply to all framebuffer operations, either in
>>> inclusive or exclusive mode. They may also be specified as part of a
>>> blit operation.
>>>
>>> In exclusive mode, any fragment inside any of the specified rectangles
>>> will be discarded.
>>>
>>> In inclusive mode, any fragment outside every rectangle will be
>>> discarded.
>>>
>>> The no-op state is to have 0 rectangles in exclusive mode.
>>>
>>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>>> ---
>>>    src/gallium/docs/source/context.rst  | 15 ++++++++++++---
>>>    src/gallium/include/pipe/p_context.h |  5 +++++
>>>    src/gallium/include/pipe/p_state.h   |  6 ++++++
>>>    3 files changed, 23 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/src/gallium/docs/source/context.rst
>>> b/src/gallium/docs/source/context.rst
>>> index 3a45f40..667d9a2 100644
>>> --- a/src/gallium/docs/source/context.rst
>>> +++ b/src/gallium/docs/source/context.rst
>>> @@ -79,6 +79,15 @@ objects. They all follow simple, one-method binding
>>> calls, e.g.
>>>      should be the same as the number of set viewports and can be up to
>>>      PIPE_MAX_VIEWPORTS.
>>>    * ``set_viewport_states``
>>> +* ``set_window_rectangle_states`` sets the window rectangles to be
>>> +  used for rendering, as defined by GL_EXT_window_rectangles. There
>>
>>
>> What about clearing?
>>
>> As-is, our pipe_context::clear() function doesn't support scissors or color
>> channel masking.  Is it now supposed to support window rects? That could put
>> a new burden on drivers.  Some drivers might have to fallback to drawing a
>> list of rects.  The 'exclusive' mode seems tricky.  That's the kind of thing
>> the state tracker has done for us so far.  Or maybe we need a new util
>> helper for converting window rect clears into quad drawing.
>>
>> Similar question for clear_render_target() and clear_depth_stencil().
>
> Nope. Clears ignore the window rects, like they ignore scissors and
> everything else. The state tracker falls back to the clear_with_quads
> path if any window rectangles are set.

OK, can you say that in the documentation here?

-Brian



More information about the mesa-dev mailing list