[Mesa-dev] [PATCH 1/6] gallium/u_blitter: document custom meta helpers

Marek Olšák maraeo at gmail.com
Mon Aug 13 18:50:54 PDT 2012


---
 src/gallium/auxiliary/util/u_blitter.c |    4 ++--
 src/gallium/auxiliary/util/u_blitter.h |   19 ++++++++++++++-----
 src/gallium/drivers/r300/r300_blit.c   |    2 +-
 src/gallium/drivers/r600/r600_blit.c   |    4 ++--
 4 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c
index a5510d5..a95e1b5 100644
--- a/src/gallium/auxiliary/util/u_blitter.c
+++ b/src/gallium/auxiliary/util/u_blitter.c
@@ -962,7 +962,7 @@ void util_blitter_clear(struct blitter_context *blitter,
                              NULL, NULL);
 }
 
-void util_blitter_clear_depth_custom(struct blitter_context *blitter,
+void util_blitter_custom_clear_depth(struct blitter_context *blitter,
                                      unsigned width, unsigned height,
                                      double depth, void *custom_dsa)
 {
@@ -1493,7 +1493,7 @@ void util_blitter_copy_buffer(struct blitter_context *blitter,
 }
 
 /* probably radeon specific */
-void util_blitter_resolve_color_custom(struct blitter_context *blitter,
+void util_blitter_custom_resolve_color(struct blitter_context *blitter,
 				       struct pipe_resource *dst,
 				       unsigned dst_level,
 				       unsigned dst_layer,
diff --git a/src/gallium/auxiliary/util/u_blitter.h b/src/gallium/auxiliary/util/u_blitter.h
index 1207a9ae..f227902 100644
--- a/src/gallium/auxiliary/util/u_blitter.h
+++ b/src/gallium/auxiliary/util/u_blitter.h
@@ -156,10 +156,6 @@ void util_blitter_clear(struct blitter_context *blitter,
                         const union pipe_color_union *color,
                         double depth, unsigned stencil);
 
-void util_blitter_clear_depth_custom(struct blitter_context *blitter,
-                                     unsigned width, unsigned height,
-                                     double depth, void *custom_dsa);
-
 /**
  * Check if the blitter (with the help of the driver) can blit between
  * the two resources.
@@ -294,13 +290,26 @@ void util_blitter_clear_depth_stencil(struct blitter_context *blitter,
                                       unsigned dstx, unsigned dsty,
                                       unsigned width, unsigned height);
 
+/* The following functions are customized variants of the clear functions.
+ * Some drivers use them internally to do things like MSAA resolve
+ * and resource decompression. It usually consists of rendering a full-screen
+ * quad with a special blend or DSA state.
+ */
+
+/* Used by r300g for depth decompression. */
+void util_blitter_custom_clear_depth(struct blitter_context *blitter,
+                                     unsigned width, unsigned height,
+                                     double depth, void *custom_dsa);
+
+/* Used by r600g for depth decompression. */
 void util_blitter_custom_depth_stencil(struct blitter_context *blitter,
 				       struct pipe_surface *zsurf,
 				       struct pipe_surface *cbsurf,
 				       unsigned sample_mask,
 				       void *dsa_stage, float depth);
 
-void util_blitter_resolve_color_custom(struct blitter_context *blitter,
+/* Used by r600g for MSAA color resolve. */
+void util_blitter_custom_resolve_color(struct blitter_context *blitter,
                                        struct pipe_resource *dst,
                                        unsigned dst_level,
                                        unsigned dst_layer,
diff --git a/src/gallium/drivers/r300/r300_blit.c b/src/gallium/drivers/r300/r300_blit.c
index 1053706..f2c67c0 100644
--- a/src/gallium/drivers/r300/r300_blit.c
+++ b/src/gallium/drivers/r300/r300_blit.c
@@ -398,7 +398,7 @@ void r300_decompress_zmask(struct r300_context *r300)
     r300_mark_atom_dirty(r300, &r300->hyperz_state);
 
     r300_blitter_begin(r300, R300_DECOMPRESS);
-    util_blitter_clear_depth_custom(r300->blitter, fb->width, fb->height, 0,
+    util_blitter_custom_clear_depth(r300->blitter, fb->width, fb->height, 0,
                                     r300->dsa_decompress_zmask);
     r300_blitter_end(r300);
 
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index f3a3b8f..0ddc712 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -320,7 +320,7 @@ static void r600_color_resolve(struct pipe_context *ctx,
 
 	if (is_simple_resolve(info)) {
 		r600_blitter_begin(ctx, R600_COLOR_RESOLVE);
-		util_blitter_resolve_color_custom(rctx->blitter,
+		util_blitter_custom_resolve_color(rctx->blitter,
 						  info->dst.res, info->dst.level, info->dst.layer,
 						  info->src.res, info->src.layer,
 						  rctx->custom_blend_resolve);
@@ -345,7 +345,7 @@ static void r600_color_resolve(struct pipe_context *ctx,
 
 	/* XXX use scissor, so that only the needed part of the resource is resolved */
 	r600_blitter_begin(ctx, R600_COLOR_RESOLVE);
-	util_blitter_resolve_color_custom(rctx->blitter,
+	util_blitter_custom_resolve_color(rctx->blitter,
 					  tmp, 0, 0,
 					  info->src.res, info->src.layer,
 					  rctx->custom_blend_resolve);
-- 
1.7.9.5



More information about the mesa-dev mailing list