X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fr300%2Fr300_flush.c;h=2266b48c948511536dd34afb2a1e1989ac08b73e;hb=f903da7335433ae243cf7ff59662be1a03ee9a14;hp=34f5419a8648a871256a573f2a5a829835d9adfd;hpb=10370b752cd793665feec9494e6545a3f04c69f9;p=mesa.git diff --git a/src/gallium/drivers/r300/r300_flush.c b/src/gallium/drivers/r300/r300_flush.c index 34f5419a864..2266b48c948 100644 --- a/src/gallium/drivers/r300/r300_flush.c +++ b/src/gallium/drivers/r300/r300_flush.c @@ -59,6 +59,7 @@ static void r300_flush_and_cleanup(struct r300_context *r300, unsigned flags) if (!r300->screen->caps.has_tcl) { r300->vs_state.dirty = FALSE; r300->vs_constants.dirty = FALSE; + r300->clip_state.dirty = FALSE; } } @@ -72,16 +73,19 @@ void r300_flush(struct pipe_context *pipe, if (r300->draw && !r300->draw_vbo_locked) r300_draw_flush_vbuf(r300); + if (r300->screen->info.drm_minor >= 12) { + flags |= RADEON_FLUSH_KEEP_TILING_FLAGS; + } + if (rfence) { /* Create a fence, which is a dummy BO. */ *rfence = r300->rws->buffer_create(r300->rws, 1, 1, - PIPE_BIND_VERTEX_BUFFER, - PIPE_USAGE_STATIC, + PIPE_BIND_CUSTOM, RADEON_DOMAIN_GTT); /* Add the fence as a dummy relocation. */ r300->rws->cs_add_reloc(r300->cs, r300->rws->buffer_get_cs_handle(*rfence), - RADEON_DOMAIN_GTT, RADEON_DOMAIN_GTT); + RADEON_USAGE_READWRITE, RADEON_DOMAIN_GTT); } if (r300->dirty_hw) { @@ -121,7 +125,7 @@ void r300_flush(struct pipe_context *pipe, } /* Release HyperZ. */ - r300->rws->cs_request_feature(r300->cs, RADEON_FID_HYPERZ_RAM_ACCESS, + r300->rws->cs_request_feature(r300->cs, RADEON_FID_R300_HYPERZ_ACCESS, FALSE); } r300->num_z_clears = 0;