mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-28 16:10:23 +01:00
freedreno/a3xx: add back a few stalls
Technically we should not need these. CP_LOAD_STATE can be pipelined.
But removing them broke a few piglit tests, like fbo-depth-
GL_DEPTH_COMPONENT24-readpixels. I expect these are just masking a
problem elsewhere, or perhaps they are only needed under some more
specific circumstances. But until that is understood properly, give
back a bit of the perf boost we got from c63450e8.
Signed-off-by: Rob Clark <robclark@freedesktop.org>
This commit is contained in:
parent
9f6dfd16e3
commit
3a7da7f5ec
1 changed files with 8 additions and 0 deletions
|
|
@ -486,9 +486,15 @@ fd3_emit_state(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
|||
fd3_program_emit(ring, prog, key);
|
||||
}
|
||||
|
||||
/* TODO we should not need this or fd_wfi() before emit_constants():
|
||||
*/
|
||||
OUT_PKT3(ring, CP_EVENT_WRITE, 1);
|
||||
OUT_RING(ring, HLSQ_FLUSH);
|
||||
|
||||
if ((dirty & (FD_DIRTY_PROG | FD_DIRTY_CONSTBUF)) &&
|
||||
/* evil hack to deal sanely with clear path: */
|
||||
(prog == &ctx->prog)) {
|
||||
fd_wfi(ctx, ring);
|
||||
emit_constants(ring, SB_VERT_SHADER,
|
||||
&ctx->constbuf[PIPE_SHADER_VERTEX],
|
||||
(prog->dirty & FD_SHADER_DIRTY_VP) ? vp : NULL);
|
||||
|
|
@ -525,6 +531,8 @@ fd3_emit_state(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
|||
A3XX_RB_BLEND_ALPHA_FLOAT(bcolor->color[3]));
|
||||
}
|
||||
|
||||
if (dirty & (FD_DIRTY_VERTTEX | FD_DIRTY_FRAGTEX))
|
||||
fd_wfi(ctx, ring);
|
||||
|
||||
if (dirty & FD_DIRTY_VERTTEX) {
|
||||
if (vp->has_samp)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue