Mesa (master): intel: Count fragments in our blitter-based glBitmap() path.

Eric Anholt anholt at kemper.freedesktop.org
Wed May 22 23:22:47 UTC 2013


Module: Mesa
Branch: master
Commit: cf37e12024911e2b4c972db9472a81e71ca2f086
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cf37e12024911e2b4c972db9472a81e71ca2f086

Author: Eric Anholt <eric at anholt.net>
Date:   Tue May 21 16:20:18 2013 -0700

intel: Count fragments in our blitter-based glBitmap() path.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59440
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/intel/intel_pixel_bitmap.c |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
index 954dfc5..c538a29 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
@@ -259,14 +259,15 @@ do_blit_bitmap( struct gl_context *ctx,
 	  * Have to translate destination coordinates back into source
 	  * coordinates.
 	  */
-	 if (get_bitmap_rect(bitmap_width, bitmap_height, unpack,
-			     bitmap,
-			     -orig_dstx + (dstx + px),
-			     -orig_dsty + y_flip(fb, dsty + py, h),
-			     w, h,
-			     (GLubyte *)stipple,
-			     8,
-			     _mesa_is_winsys_fbo(fb)) == 0)
+         int count = get_bitmap_rect(bitmap_width, bitmap_height, unpack,
+                                     bitmap,
+                                     -orig_dstx + (dstx + px),
+                                     -orig_dsty + y_flip(fb, dsty + py, h),
+                                     w, h,
+                                     (GLubyte *)stipple,
+                                     8,
+                                     _mesa_is_winsys_fbo(fb));
+         if (count == 0)
 	    continue;
 
 	 if (!intelEmitImmediateColorExpandBlit(intel,
@@ -284,6 +285,9 @@ do_blit_bitmap( struct gl_context *ctx,
 						logic_op)) {
 	    return false;
 	 }
+
+         if (ctx->Query.CurrentOcclusionObject)
+            ctx->Query.CurrentOcclusionObject->Result += count;
       }
    }
 out:




More information about the mesa-commit mailing list