broadcom/vc5: Fix reloads of separate stencil buffers.

Like for stores, we need to emit a separate load_general packet.
This commit is contained in:
Eric Anholt 2018-04-24 17:50:50 -07:00
parent 9f3f4284c0
commit 0d4ce00d70
1 changed files with 16 additions and 4 deletions

View File

@ -226,10 +226,22 @@ vc5_rcl_emit_loads(struct vc5_job *job, struct vc5_cl *cl)
if ((loads_pending & PIPE_CLEAR_DEPTHSTENCIL) &&
(V3D_VERSION >= 40 ||
(job->zsbuf && job->zsbuf->texture->nr_samples > 1))) {
load_general(cl, job->zsbuf,
zs_buffer_from_pipe_bits(loads_pending),
PIPE_CLEAR_DEPTHSTENCIL,
&loads_pending);
struct vc5_resource *rsc = vc5_resource(job->zsbuf->texture);
if (rsc->separate_stencil &&
(loads_pending & PIPE_CLEAR_STENCIL)) {
load_general(cl, job->zsbuf,
STENCIL,
PIPE_CLEAR_STENCIL,
&loads_pending);
}
if (loads_pending & PIPE_CLEAR_DEPTHSTENCIL) {
load_general(cl, job->zsbuf,
zs_buffer_from_pipe_bits(loads_pending),
loads_pending & PIPE_CLEAR_DEPTHSTENCIL,
&loads_pending);
}
}
#if V3D_VERSION < 40