[Mesa-dev] [PATCH 2/4 v4] i965: Implement CopyTexSubImage2D via BLORP (and use it by default).

Paul Berry stereotype441 at gmail.com
Wed Feb 6 05:42:02 PST 2013

On 5 February 2013 22:40, Kenneth Graunke <kenneth at whitecape.org> wrote:

> The BLT engine has many limitations.  Currently, it can only blit
> X-tiled buffers (since we don't have a kernel API to whack the BLT
> tiling mode register), which means all depth/stencil operations get
> punted to meta code, which can be very CPU-intensive.
> Even if we used the BLT engine, it can't blit between buffers with
> different tiling modes, such as an X-tiled non-MSAA ARGB8888 texture
> and a Y-tiled CMS ARGB8888 renderbuffer.  This is a fundamental
> limitation, and the only way around that is to use BLORP.
> Previously, BLORP only handled BlitFramebuffer.  This patch adds an
> additional frontend for doing CopyTexSubImage.  It also makes it the
> default.  This is partly to increase testing and avoid hiding bugs,
> and partly because the BLORP path can already handle more cases.  With
> trivial extensions, it should be able to handle everything the BLT can.
> This helps PlaneShift massively, which tries to CopyTexSubImage2D
> between depth buffers whenever a player casts a spell.  Since these
> are Y-tiled, we hit meta and software ReadPixels paths, eating 99% CPU
> while delivering ~1 FPS.  This is particularly bad in an MMO setting
> because people cast spells all the time.
> It also helps Xonotic in 4X MSAA mode.  At default power management
> settings, I measured a 6.35138% +/- 0.672548% performance boost (n=5).
> (This data is from v1 of the patch.)
> No Piglit regressions on Ivybridge (v3) or Sandybridge (v2).
> v2: Create a fake intel_renderbuffer to wrap the destination texture
>     image and then reuse do_blorp_blit rather than reimplementing most
>     of it.  Remove unnecessary clipping code and conditional rendering
>     check.
> v3: Reuse formats_match() to centralize checks; delete temporary
>     renderbuffers.  Reorganize the code.
> v4: Actually copy stencil when dealing with separate stencil buffers but
>     packed depth/stencil formats.  Tested by a new Piglit test.
> NOTE: This is a candidate for the 9.1 branch.
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> Cc: Paul Berry <stereotype441 at gmail.com>
> Reviewed-and-tested-by: Carl Worth <cworth at cworth.org> [v2]
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com> [v3]
> Tested-by: Martin Steigerwald <martin at lichtvoll.de> [v3]

Reviewed-by: Paul Berry <stereotype441 at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130206/ab34219e/attachment.html>

More information about the mesa-dev mailing list