diff options
author | Ilia Mirkin <[email protected]> | 2015-04-22 14:35:00 -0400 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2015-04-27 20:17:07 -0400 |
commit | 9fc3f472784b2ba53655b715d602268bef5bf12e (patch) | |
tree | e688bbd65a3c15c3f767ad4e94dad70e54a36ac5 /src/gallium/drivers/freedreno/freedreno_context.c | |
parent | 1571da6ac31ade482f5e4adc82eb66d42a1bb389 (diff) |
freedreno/a3xx: add support for S8 and Z32F_S8
Enables ARB_depth_buffer_float. There is no sampling support for
interleaved Z32F_S8, so we store the two textures separately, one as
Z32F, the other as S8. As a result, we need a lot of additional logic
for restores and transfers.
Signed-off-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_context.c')
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_context.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_context.c b/src/gallium/drivers/freedreno/freedreno_context.c index 5d92da42e56..668ef3629bf 100644 --- a/src/gallium/drivers/freedreno/freedreno_context.c +++ b/src/gallium/drivers/freedreno/freedreno_context.c @@ -121,8 +121,12 @@ fd_context_render(struct pipe_context *pctx) for (i = 0; i < pfb->nr_cbufs; i++) if (pfb->cbufs[i]) fd_resource(pfb->cbufs[i]->texture)->dirty = false; - if (pfb->zsbuf) - fd_resource(pfb->zsbuf->texture)->dirty = false; + if (pfb->zsbuf) { + rsc = fd_resource(pfb->zsbuf->texture); + rsc->dirty = false; + if (rsc->stencil) + rsc->stencil->dirty = false; + } /* go through all the used resources and clear their reading flag */ LIST_FOR_EACH_ENTRY_SAFE(rsc, rsc_tmp, &ctx->used_resources, list) { |