mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
v3d: Fix stencil sampling from a separate-stencil buffer.
When the sampler view is in sample-stencil mode, we need to return uint stencil values. To do that, fill in the format table to return R8I, and have the sampler view point at the separate stencil buffer. Fixes dEQP-GLES31.functional.stencil_texturing.format.depth32f_stencil8_2d
This commit is contained in:
parent
8a0b0a8f37
commit
c51d125d18
2 changed files with 7 additions and 0 deletions
|
|
@ -153,6 +153,7 @@ static const struct v3d_format format_table[] = {
|
|||
|
||||
/* Pretend we support this, but it'll be separate Z32F depth and S8. */
|
||||
FORMAT(Z32_FLOAT_S8X24_UINT, D32F, DEPTH_COMP32F, SWIZ_XXXX, 32, 1),
|
||||
FORMAT(X32_S8X24_UINT, S8, R8UI, SWIZ_XXXX, 16, 1),
|
||||
#else
|
||||
FORMAT(S8_UINT_Z24_UNORM, ZS_DEPTH24_STENCIL8, DEPTH24_X8, SWIZ_XXXX, 32, 1),
|
||||
FORMAT(X8Z24_UNORM, ZS_DEPTH24_STENCIL8, DEPTH24_X8, SWIZ_XXXX, 32, 1),
|
||||
|
|
|
|||
|
|
@ -774,6 +774,12 @@ v3d_create_sampler_view(struct pipe_context *pctx, struct pipe_resource *prsc,
|
|||
so->base.reference.count = 1;
|
||||
so->base.context = pctx;
|
||||
|
||||
if (rsc->separate_stencil &&
|
||||
cso->format == PIPE_FORMAT_X32_S8X24_UINT) {
|
||||
rsc = rsc->separate_stencil;
|
||||
prsc = &rsc->base;
|
||||
}
|
||||
|
||||
/* V3D still doesn't support sampling from raster textures, so we will
|
||||
* have to copy to a temporary tiled texture.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue