[Mesa-dev] [PATCH 00/12] RadeonSI: 3D clears and blits w/out VBOs and viewport state

Marek Olšák maraeo at gmail.com
Fri Oct 6 14:23:40 UTC 2017


BTW, I abandoned the previous patches that generated the VS position
from VertexID. The reason was that I saw a decrease in performance on
Raven when I changed to viewport transformation to non-identity. This
series is much better anyway.

Marek

On Fri, Oct 6, 2017 at 4:10 PM, Marek Olšák <maraeo at gmail.com> wrote:
> Hi,
>
> There are 3 states that blits don't have to use or touch:
> - vertex buffers (also no buffer upload is needed)
> - vertex element state
> - viewport state
>
> The blit implementation is reworked as follows.
>
> VS blit shaders read inputs from user SGPRs and return positions in
> window space. (clipping and viewport transformation are disabled)
>
> User SGPRs occupy existing SGPR slots starting with the first
> per-stage pointer (const buffers). Depending on the type of blit,
> there can be 3, 7, or 9 SGPRs per blit.
>
> The x1,y1,x2,y2 position coordinates are passed as sint16 in 2 SGPRs.
> The 3rd one is Z as float. Followed by clear color (4 SGPRs) or
> texcoords (6 SGPRs - x1,y1,x2,y2,z,w).
>
> Original shader pointers and draw constants are restored by the first
> non-blit draw call.
>
> Please review.
>
> Marek


More information about the mesa-dev mailing list