[Mesa-dev] [PATCH 00/18] Gallium blitter optimizations

Marek Olšák maraeo at gmail.com
Thu Aug 17 18:31:21 UTC 2017


Hi,

Major u_blitter changes:

- All draw calls except cubemap blits will now use the draw_rectangle
  callback. (cubemap blits are not used if the driver supports texture
  views)

- The VS POSITION output always covers the whole 2D clip space,
  (-1,-1) -> (1,1). The final vertex positions and Z are determined by
  the viewport transformation.

- If VertexID is supported, the VS POSITION output is derived from
  VertexID, and the vertex input with POSITION data is not present.

- If the VS GENERIC output is not needed, it's not present.
  (previously it was always there)

- If there are no VS inputs, the blitter doesn't change vertex buffer
  and vertex element states, leading to lower CPU overhead.
  (measurable with trivial apps like glxgears)


RadeonSI changes:

- We only used the draw_rectangle callback for decompress and resolve
  passes, and depth and color clears. Now we will always use it when
  the blitter invokes it.

The overall impact on RadeonSI is that only slow color clears and
texture blits use a vertex shader that has 1 vertex input. Moving that
input into user SGPRs would be possible, but that's not done here.

Please review.

Marek


More information about the mesa-dev mailing list