aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-08-13 23:37:30 +0200
committerMarek Olšák <[email protected]>2012-08-15 19:20:58 +0200
commite0cc61bd91f5ef84bacaf5e7c6cda9eeefed478d (patch)
tree40bf40feb4332d2be8ff13eda134d2f349331662 /src/gallium
parentb3b5bb9ddb05989b2dc5fc17f88491bbd0e6ecac (diff)
gallium/u_blitter: document custom meta helpers
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/util/u_blitter.c4
-rw-r--r--src/gallium/auxiliary/util/u_blitter.h19
-rw-r--r--src/gallium/drivers/r300/r300_blit.c2
-rw-r--r--src/gallium/drivers/r600/r600_blit.c4
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 a5510d553e9..a95e1b5356e 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 1207a9ae306..f227902c163 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 1053706ad57..f2c67c0a113 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 f3a3b8f89bf..0ddc7126d49 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);