On 10/07/2013 04:31 PM, Kenneth Graunke wrote:
BLORP performs blits by drawing a rectangle with a shader that samples
from the source texture, and writes color data to the destination.

The sampler always returns 32-bit RGBA float data, regardless of the
source format's component ordering or data type.  Likewise, the render
target write message takes 32-bit RGBA float data, and converts it
appropriately.  So the bulk of the work is already taken care of for us.

This greatly accelerates a lot of blits and CopyTexSubImage calls, and
makes Legends of Aethereus playable on Ivybridge.  At the default
settings, LOA continually blits between SRGBA8888 (the window format)
and RGBA16_FLOAT.  Since neither BLORP nor our BLT paths supported this,
it fell back to meta, spending 33% of the CPU in floorf() converting
between floats and half-floats.

Signed-off-by: Kenneth Graunke <kenn...@whitecape.org>
---
  src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 15 ++++++++++++++-
  1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp 
b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
index 2427085..c44f7c4 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp



+   /* We can't handle format conversions between Z24 and other formats since
Please clarify the comment by inserting "depth" here-------------|
+    * we have to lie about the surface format.  See the comments in
+    * brw_blorp_surface_info::set().
+    */
+   if ((src_mt->format == MESA_FORMAT_X8_Z24) ^
+       (dst_mt->format == MESA_FORMAT_X8_Z24)) {
+      return false;
+   }

With Daniel's little fix, this series is
Reviewed-by: Chad Versace <chad.vers...@linux.intel.com>







_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to