summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2020-07-01 16:32:37 -0700
committerMarge Bot <eric+marge@anholt.net>2020-07-07 18:19:22 +0000
commita2b74a5d8a199eafdd4697088e16e99947f8a75e (patch)
treed5dd91fb303443e53f9acaa723f36e82d2e33925
parent019a0309073b818b4dedbecf457813586b333332 (diff)
gallium/util: Clean up the Z/S tile write path.
The switch statement is silly, we have a helper to detect all of Z/S. And, take the time explain why all of Z/S tile writing is unimplemented. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
-rw-r--r--src/gallium/auxiliary/util/u_tile.c37
1 files changed, 10 insertions, 27 deletions
diff --git a/src/gallium/auxiliary/util/u_tile.c b/src/gallium/auxiliary/util/u_tile.c
index daea31cfd56..c7cea07c870 100644
--- a/src/gallium/auxiliary/util/u_tile.c
+++ b/src/gallium/auxiliary/util/u_tile.c
@@ -365,6 +365,12 @@ pipe_put_tile_rgba(struct pipe_transfer *pt,
if (u_clip_tile(x, y, &w, &h, &pt->box))
return;
+ /* While we do generate RGBA tiles for z/s for softpipe's texture fetch
+ * path, we never have to store from "RGBA" to Z/S.
+ */
+ if (util_format_is_depth_or_stencil(format))
+ return;
+
if (util_format_is_pure_uint(format)) {
util_format_write_4ui(format,
p, src_stride * sizeof(float),
@@ -376,33 +382,10 @@ pipe_put_tile_rgba(struct pipe_transfer *pt,
dst, pt->stride,
x, y, w, h);
} else {
- switch (format) {
- case PIPE_FORMAT_Z16_UNORM:
- /*z16_put_tile_rgba((ushort *) dst, w, h, p, src_stride);*/
- break;
- case PIPE_FORMAT_Z32_UNORM:
- /*z32_put_tile_rgba((unsigned *) dst, w, h, p, src_stride);*/
- break;
- case PIPE_FORMAT_Z24_UNORM_S8_UINT:
- case PIPE_FORMAT_Z24X8_UNORM:
- /*s8z24_put_tile_rgba((unsigned *) dst, w, h, p, src_stride);*/
- break;
- case PIPE_FORMAT_S8_UINT_Z24_UNORM:
- case PIPE_FORMAT_X8Z24_UNORM:
- /*z24s8_put_tile_rgba((unsigned *) dst, w, h, p, src_stride);*/
- break;
- case PIPE_FORMAT_Z32_FLOAT:
- /*z32f_put_tile_rgba((unsigned *) dst, w, h, p, src_stride);*/
- break;
- case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
- /*z32f_s8x24_put_tile_rgba((unsigned *) dst, w, h, p, src_stride);*/
- break;
- default:
- util_format_write_4f(format,
- p, src_stride * sizeof(float),
- dst, pt->stride,
- x, y, w, h);
- }
+ util_format_write_4f(format,
+ p, src_stride * sizeof(float),
+ dst, pt->stride,
+ x, y, w, h);
}
}