panfrost: Z16 depth buffer support

Only for MFBD GPUs as on t720 it causes some dEQP tests to fail.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7201>
This commit is contained in:
Icecream95 2020-10-17 01:49:31 +13:00 committed by Marge Bot
parent 4a20ed6b45
commit 388c99b029
5 changed files with 13 additions and 2 deletions

View File

@ -57,7 +57,7 @@ traces:
- path: 0ad/0ad.trace
expectations:
- device: gl-panfrost-t860
checksum: b906fb7b106ff287a1d49614015b6653
checksum: e159a06f423998ea7fcc0107f0e62f15
- path: glmark2/buffer-columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map.rdc
expectations:
- device: gl-panfrost-t860
@ -169,7 +169,7 @@ traces:
- path: glmark2/terrain.rdc
expectations:
- device: gl-panfrost-t860
checksum: 2e625ceb1a7fdc3cdefae57297999492
checksum: 3ad257e1db7ad3e5dfd88fb1091ddeae
- path: glmark2/texture-texture-filter=linear.rdc
expectations:
- device: gl-panfrost-t860

View File

@ -401,6 +401,9 @@ panfrost_mfbd_zs_crc_ext_set_bufs(struct panfrost_batch *batch,
}
switch (zs_surf->format) {
case PIPE_FORMAT_Z16_UNORM:
ext->zs_write_format = MALI_ZS_FORMAT_D16;
break;
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
ext->zs_write_format = MALI_ZS_FORMAT_D24S8;
break;

View File

@ -468,6 +468,10 @@ panfrost_is_format_supported( struct pipe_screen *screen,
if (is_bifrost && sample_count > 1)
return false;
/* Z16 causes dEQP failures on t720 */
if (format == PIPE_FORMAT_Z16_UNORM && dev->quirks & MIDGARD_SFBD)
return false;
/* Don't confuse poorly written apps (workaround dEQP bug) that expect
* more alpha than they ask for */

View File

@ -158,6 +158,9 @@ panfrost_sfbd_set_zsbuf(
fb->zs_writeback.base = rsrc->bo->ptr.gpu + rsrc->slices[level].offset;
fb->zs_writeback.row_stride = rsrc->slices[level].stride * 16;
switch (surf->format) {
case PIPE_FORMAT_Z16_UNORM:
fb->zs_format = MALI_ZS_FORMAT_D16;
break;
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
fb->zs_format = MALI_ZS_FORMAT_D24S8;
break;

View File

@ -155,6 +155,7 @@ struct panfrost_format panfrost_pipe_format_table[PIPE_FORMAT_COUNT] = {
[PIPE_FORMAT_R3G3B2_UNORM] = { MALI_RGB332_UNORM, _VT },
[PIPE_FORMAT_Z16_UNORM] = { MALI_R16_UNORM, _TZ },
[PIPE_FORMAT_Z24_UNORM_S8_UINT] = { MALI_Z24X8_UNORM, _TZ },
[PIPE_FORMAT_Z24X8_UNORM] = { MALI_Z24X8_UNORM, _TZ },
[PIPE_FORMAT_Z32_FLOAT] = { MALI_R32F, _TZ },