mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
i965: Emit SKL VF cache invalidation W/A from brw_emit_pipe_control_flush.
There were two places in the driver doing a pipe control VF cache
flush, one of them was missing this workaround, move it down into
brw_emit_pipe_control_flush to make sure we don't miss it again.
Cc: "12.0 11.1 11.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
(cherry picked from commit a10879f48c)
This commit is contained in:
parent
3a35da7e8a
commit
72d287e347
1 changed files with 10 additions and 9 deletions
|
|
@ -100,6 +100,16 @@ brw_emit_pipe_control_flush(struct brw_context *brw, uint32_t flags)
|
|||
if (brw->gen == 8)
|
||||
gen8_add_cs_stall_workaround_bits(&flags);
|
||||
|
||||
if (brw->gen == 9 &&
|
||||
(flags & PIPE_CONTROL_VF_CACHE_INVALIDATE)) {
|
||||
/* Hardware workaround: SKL
|
||||
*
|
||||
* Emit Pipe Control with all bits set to zero before emitting
|
||||
* a Pipe Control with VF Cache Invalidate set.
|
||||
*/
|
||||
brw_emit_pipe_control_flush(brw, 0);
|
||||
}
|
||||
|
||||
BEGIN_BATCH(6);
|
||||
OUT_BATCH(_3DSTATE_PIPE_CONTROL | (6 - 2));
|
||||
OUT_BATCH(flags);
|
||||
|
|
@ -311,15 +321,6 @@ brw_emit_mi_flush(struct brw_context *brw)
|
|||
} else {
|
||||
int flags = PIPE_CONTROL_NO_WRITE | PIPE_CONTROL_RENDER_TARGET_FLUSH;
|
||||
if (brw->gen >= 6) {
|
||||
if (brw->gen == 9) {
|
||||
/* Hardware workaround: SKL
|
||||
*
|
||||
* Emit Pipe Control with all bits set to zero before emitting
|
||||
* a Pipe Control with VF Cache Invalidate set.
|
||||
*/
|
||||
brw_emit_pipe_control_flush(brw, 0);
|
||||
}
|
||||
|
||||
flags |= PIPE_CONTROL_INSTRUCTION_INVALIDATE |
|
||||
PIPE_CONTROL_DEPTH_CACHE_FLUSH |
|
||||
PIPE_CONTROL_VF_CACHE_INVALIDATE |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue