[Mesa-dev] [PATCH 00/12] RadeonSI: 3D clears and blits w/out VBOs and viewport state
maraeo at gmail.com
Fri Oct 6 14:10:03 UTC 2017
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.
More information about the mesa-dev