mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
r600g: move r6xx-specific streamout flush flagging into r600g
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
0543630d0b
commit
d14f2ab4ad
2 changed files with 7 additions and 9 deletions
|
|
@ -147,7 +147,8 @@ void r600_flush_emit(struct r600_context *rctx)
|
|||
cp_coher_cntl |= S_0085F0_FULL_CACHE_ENA(1);
|
||||
}
|
||||
|
||||
if (rctx->b.flags & R600_CONTEXT_FLUSH_AND_INV) {
|
||||
if (rctx->b.flags & R600_CONTEXT_FLUSH_AND_INV ||
|
||||
(rctx->b.chip_class == R600 && rctx->b.flags & R600_CONTEXT_STREAMOUT_FLUSH)) {
|
||||
cs->buf[cs->cdw++] = PKT3(PKT3_EVENT_WRITE, 0, 0);
|
||||
cs->buf[cs->cdw++] = EVENT_TYPE(EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT) | EVENT_INDEX(0);
|
||||
}
|
||||
|
|
@ -202,7 +203,8 @@ void r600_flush_emit(struct r600_context *rctx)
|
|||
S_0085F0_CB11_DEST_BASE_ENA(1);
|
||||
}
|
||||
|
||||
if (rctx->b.flags & R600_CONTEXT_STREAMOUT_FLUSH) {
|
||||
if (rctx->b.chip_class >= R700 &&
|
||||
rctx->b.flags & R600_CONTEXT_STREAMOUT_FLUSH) {
|
||||
cp_coher_cntl |= S_0085F0_SO0_DEST_BASE_ENA(1) |
|
||||
S_0085F0_SO1_DEST_BASE_ENA(1) |
|
||||
S_0085F0_SO2_DEST_BASE_ENA(1) |
|
||||
|
|
@ -211,7 +213,8 @@ void r600_flush_emit(struct r600_context *rctx)
|
|||
}
|
||||
|
||||
/* Workaround for buggy flushing on some R6xx chipsets. */
|
||||
if (rctx->b.flags & R600_CONTEXT_FLUSH_AND_INV &&
|
||||
if ((rctx->b.flags & (R600_CONTEXT_FLUSH_AND_INV |
|
||||
R600_CONTEXT_STREAMOUT_FLUSH)) &&
|
||||
(rctx->b.family == CHIP_RV670 ||
|
||||
rctx->b.family == CHIP_RS780 ||
|
||||
rctx->b.family == CHIP_RS880)) {
|
||||
|
|
|
|||
|
|
@ -305,12 +305,7 @@ void r600_emit_streamout_end(struct r600_common_context *rctx)
|
|||
}
|
||||
|
||||
rctx->streamout.begin_emitted = false;
|
||||
|
||||
if (rctx->chip_class >= R700) {
|
||||
rctx->flags |= R600_CONTEXT_STREAMOUT_FLUSH;
|
||||
} else {
|
||||
rctx->flags |= R600_CONTEXT_FLUSH_AND_INV;
|
||||
}
|
||||
rctx->flags |= R600_CONTEXT_STREAMOUT_FLUSH;
|
||||
}
|
||||
|
||||
/* STREAMOUT CONFIG DERIVED STATE
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue