diff options
author | Eric Anholt <[email protected]> | 2018-07-23 13:30:58 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2018-07-26 11:02:20 -0700 |
commit | d29435e7cb3f8a9ef369c90ff890c018463890a7 (patch) | |
tree | e7010353396b97d1a2e448af19dfbd5fcac22cbf /src/gallium/drivers/v3d/v3dx_draw.c | |
parent | 47f5d158aebe69136a844f82c59b6b70336248e6 (diff) |
v3d: Track the buffers being loaded separately.
We were computing this at RCL generation time, but that means you can't
unflag the store for an invalidate_resource, or not flag the store if
writmasking is disabled.
Diffstat (limited to 'src/gallium/drivers/v3d/v3dx_draw.c')
-rw-r--r-- | src/gallium/drivers/v3d/v3dx_draw.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/v3d/v3dx_draw.c b/src/gallium/drivers/v3d/v3dx_draw.c index 5ecb814b81a..e9520387fc5 100644 --- a/src/gallium/drivers/v3d/v3dx_draw.c +++ b/src/gallium/drivers/v3d/v3dx_draw.c @@ -577,6 +577,7 @@ v3d_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info) struct v3d_resource *rsc = v3d_resource(job->zsbuf->texture); v3d_job_add_bo(job, rsc->bo); + job->load |= PIPE_CLEAR_DEPTH & ~job->clear; job->store |= PIPE_CLEAR_DEPTH; rsc->initialized_buffers = PIPE_CLEAR_DEPTH; } @@ -588,6 +589,7 @@ v3d_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info) v3d_job_add_bo(job, rsc->bo); + job->load |= PIPE_CLEAR_STENCIL & ~job->clear; job->store |= PIPE_CLEAR_STENCIL; rsc->initialized_buffers |= PIPE_CLEAR_STENCIL; } @@ -599,6 +601,7 @@ v3d_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info) continue; struct v3d_resource *rsc = v3d_resource(job->cbufs[i]->texture); + job->load |= bit & ~job->clear; job->store |= bit; v3d_job_add_bo(job, rsc->bo); } |