mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 04:10:09 +01:00
etnaviv: Support PIPE_FORMAT_S8_UINT stencil format
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37014>
This commit is contained in:
parent
fda092729d
commit
2a5d515922
3 changed files with 20 additions and 1 deletions
|
|
@ -502,6 +502,15 @@ gpu_supports_vertex_format(struct etna_screen *screen, enum pipe_format format)
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
gpu_supports_depth_stencil_format(struct etna_screen *screen, enum pipe_format format)
|
||||
{
|
||||
if (format == PIPE_FORMAT_S8_UINT)
|
||||
return VIV_FEATURE(screen, ETNA_FEATURE_S8);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
etna_screen_is_format_supported(struct pipe_screen *pscreen,
|
||||
enum pipe_format format,
|
||||
|
|
@ -529,7 +538,12 @@ etna_screen_is_format_supported(struct pipe_screen *pscreen,
|
|||
}
|
||||
|
||||
if (usage & PIPE_BIND_DEPTH_STENCIL) {
|
||||
if (translate_depth_format(format) != ETNA_NO_MATCH)
|
||||
uint32_t fmt = translate_depth_format(format);
|
||||
|
||||
if (!gpu_supports_depth_stencil_format(screen, format))
|
||||
fmt = ETNA_NO_MATCH;
|
||||
|
||||
if (fmt != ETNA_NO_MATCH)
|
||||
allowed |= PIPE_BIND_DEPTH_STENCIL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -343,6 +343,9 @@ etna_set_framebuffer_state(struct pipe_context *pctx,
|
|||
/* VIVS_PE_DEPTH_CONFIG_ONLY_DEPTH */
|
||||
/* merged with depth_stencil_alpha */
|
||||
|
||||
if (surf->format == PIPE_FORMAT_S8_UINT)
|
||||
pe_logic_op |= VIVS_PE_LOGIC_OP_UNK20(1);
|
||||
|
||||
for (int i = 0; i < screen->specs.pixel_pipes; i++) {
|
||||
cs->PE_PIPE_DEPTH_ADDR[i].bo = res->bo;
|
||||
cs->PE_PIPE_DEPTH_ADDR[i].offset = level->offset + surf->first_layer * level->layer_stride;
|
||||
|
|
|
|||
|
|
@ -233,6 +233,8 @@ translate_depth_format(enum pipe_format fmt)
|
|||
return VIVS_PE_DEPTH_CONFIG_DEPTH_FORMAT_D24S8;
|
||||
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||
return VIVS_PE_DEPTH_CONFIG_DEPTH_FORMAT_D24S8;
|
||||
case PIPE_FORMAT_S8_UINT:
|
||||
return VIVS_PE_DEPTH_CONFIG_DEPTH_FORMAT_D24S8;
|
||||
default:
|
||||
return ETNA_NO_MATCH;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue