mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
freedreno/a6xx: Copy stencil as R8_UINT
Blitter does support it after all. Previous attempt to use R8_UINT failed because we overwrote the a6xx format in emit_blit_texture(), but some of the later setup still looked at the gallium format. If we overwrite it in the pipe_blit_info before we even call into emit_blit_texture() it works properly. Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org>
This commit is contained in:
parent
e827ea8c83
commit
686211f4c9
1 changed files with 14 additions and 4 deletions
|
|
@ -521,12 +521,22 @@ rewrite_zs_blit(struct fd_ringbuffer *ring, const struct pipe_blit_info *info)
|
|||
{
|
||||
struct pipe_blit_info separate = *info;
|
||||
|
||||
if (DEBUG_BLIT_FALLBACK) {
|
||||
fprintf(stderr, "---- rewrite_separate_zs_blit: ");
|
||||
util_dump_blit_info(stderr, info);
|
||||
fprintf(stderr, "\ndst resource: ");
|
||||
util_dump_resource(stderr, info->dst.resource);
|
||||
fprintf(stderr, "\nsrc resource: ");
|
||||
util_dump_resource(stderr, info->src.resource);
|
||||
fprintf(stderr, "\n\n");
|
||||
}
|
||||
|
||||
switch (info->src.format) {
|
||||
case PIPE_FORMAT_S8_UINT:
|
||||
debug_assert(info->mask == PIPE_MASK_S);
|
||||
separate.mask = PIPE_MASK_R;
|
||||
separate.src.format = PIPE_FORMAT_R8_UNORM;
|
||||
separate.dst.format = PIPE_FORMAT_R8_UNORM;
|
||||
separate.src.format = PIPE_FORMAT_R8_UINT;
|
||||
separate.dst.format = PIPE_FORMAT_R8_UINT;
|
||||
emit_blit_texture(ring, &separate);
|
||||
break;
|
||||
|
||||
|
|
@ -539,8 +549,8 @@ rewrite_zs_blit(struct fd_ringbuffer *ring, const struct pipe_blit_info *info)
|
|||
}
|
||||
if (info->mask & PIPE_MASK_S) {
|
||||
separate.mask = PIPE_MASK_R;
|
||||
separate.src.format = PIPE_FORMAT_R8_UNORM;
|
||||
separate.dst.format = PIPE_FORMAT_R8_UNORM;
|
||||
separate.src.format = PIPE_FORMAT_R8_UINT;
|
||||
separate.dst.format = PIPE_FORMAT_R8_UINT;
|
||||
separate.src.resource = &fd_resource(info->src.resource)->stencil->base;
|
||||
separate.dst.resource = &fd_resource(info->dst.resource)->stencil->base;
|
||||
emit_blit_texture(ring, &separate);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue