Module: Mesa Branch: main Commit: 1fc7575cc169473ee3edd3028f58818aa57add1b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1fc7575cc169473ee3edd3028f58818aa57add1b
Author: Erico Nunes <[email protected]> Date: Thu May 13 01:40:46 2021 +0200 lima: enable z16 format Other than listing the format as supported, an extra detail is to unset one bit in the render state depth_test when a z16 texture needs to be reloaded before rendering, following the mali blob behavior. Signed-off-by: Erico Nunes <[email protected]> Reviewed-by: Vasily Khoruzhick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10791> --- src/gallium/drivers/lima/lima_format.c | 2 ++ src/gallium/drivers/lima/lima_job.c | 3 ++- src/gallium/drivers/lima/lima_screen.c | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/lima/lima_format.c b/src/gallium/drivers/lima/lima_format.c index 2b0167a425f..3f07ea7419a 100644 --- a/src/gallium/drivers/lima/lima_format.c +++ b/src/gallium/drivers/lima/lima_format.c @@ -108,6 +108,7 @@ static const struct lima_format lima_texel_formats[] = { LIMA_TEXEL_FORMAT(B4G4R4A4_UNORM, BGRA_4444, false, SWIZ(X, Y, Z, W)), LIMA_TEXEL_FORMAT(Z24_UNORM_S8_UINT, Z24X8, false, SWIZ(X, Y, Z, W)), LIMA_TEXEL_FORMAT(Z24X8_UNORM, Z24X8, false, SWIZ(X, Y, Z, W)), + LIMA_TEXEL_FORMAT(Z16_UNORM, L16, false, SWIZ(X, Y, Z, W)), LIMA_TEXEL_FORMAT(L16_UNORM, L16, false, SWIZ(X, Y, Z, W)), LIMA_TEXEL_FORMAT(L8_UNORM, L8, false, SWIZ(X, Y, Z, W)), LIMA_TEXEL_FORMAT(A16_UNORM, A16, false, SWIZ(X, Y, Z, W)), @@ -138,6 +139,7 @@ static const struct lima_format lima_pixel_formats[] = { LIMA_PIXEL_FORMAT(B4G4R4A4_UNORM, B4G4R4A4, false, 0x8444), LIMA_PIXEL_FORMAT(R8_UNORM, B8, true, 0x8888), LIMA_PIXEL_FORMAT(R8G8_UNORM, G8B8, true, 0x8888), + LIMA_PIXEL_FORMAT(Z16_UNORM, Z16, false, 0x0000), LIMA_PIXEL_FORMAT(Z24_UNORM_S8_UINT, Z24S8, false, 0x0000), LIMA_PIXEL_FORMAT(Z24X8_UNORM, Z24S8, false, 0x0000), LIMA_PIXEL_FORMAT(R16G16B16A16_FLOAT, B16G16R16A16_FLOAT, true, 0x0000), diff --git a/src/gallium/drivers/lima/lima_job.c b/src/gallium/drivers/lima/lima_job.c index a74e2bb91e9..0d01d9abb05 100644 --- a/src/gallium/drivers/lima/lima_job.c +++ b/src/gallium/drivers/lima/lima_job.c @@ -375,7 +375,8 @@ lima_pack_reload_plbu_cmd(struct lima_job *job, struct pipe_surface *psurf) if (util_format_is_depth_or_stencil(psurf->format)) { reload_render_state.alpha_blend &= 0x0fffffff; - reload_render_state.depth_test |= 0x400; + if (psurf->format != PIPE_FORMAT_Z16_UNORM) + reload_render_state.depth_test |= 0x400; if (surf->reload & PIPE_CLEAR_DEPTH) reload_render_state.depth_test |= 0x801; if (surf->reload & PIPE_CLEAR_STENCIL) { diff --git a/src/gallium/drivers/lima/lima_screen.c b/src/gallium/drivers/lima/lima_screen.c index 9a9dea043c8..d6265c539ca 100644 --- a/src/gallium/drivers/lima/lima_screen.c +++ b/src/gallium/drivers/lima/lima_screen.c @@ -331,6 +331,7 @@ lima_screen_is_format_supported(struct pipe_screen *pscreen, if (usage & PIPE_BIND_DEPTH_STENCIL) { switch (format) { + case PIPE_FORMAT_Z16_UNORM: case PIPE_FORMAT_Z24_UNORM_S8_UINT: case PIPE_FORMAT_Z24X8_UNORM: break; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
