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:
parent
4a20ed6b45
commit
388c99b029
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 },
|
||||
|
|
Loading…
Reference in New Issue