diff options
author | Tom Stellard <[email protected]> | 2013-11-19 22:05:52 -0500 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2013-11-21 15:55:16 -0800 |
commit | 7a30cd7085b6879d3858f5c1a6945fbe30c818a6 (patch) | |
tree | 2d1d76e52dfd83a9cabacf4a404f5034ac4dcbed /src/gallium/drivers/r600/r600_pipe.h | |
parent | 544e3129c5addeb6c9539339782dd54616ef0499 (diff) |
r600g/compute: Add a work-around for flushing issues on Cayman
Reviewed-by: Alex Deucher <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
https://bugs.freedesktop.org/show_bug.cgi?id=69321
CC: "10.0" <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.h')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index d7af6180641..f0d4be48142 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -507,6 +507,16 @@ struct r600_context { void *sb_context; struct r600_isa *isa; + + /* Work-around for flushing problems with compute shaders on Cayman: + * Emitting a SURFACE_SYNC packet with any of the CB*_DEST_BASE_ENA + * or DB_DEST_BASE_ENA bits set after dispatching a compute shader + * hangs the GPU. + * + * Setting this to true will prevent r600_flush_emit() from emitting + * a SURFACE_SYNC packet. This field will be cleared by + * by r600_context_flush() after flushing the command stream. */ + boolean skip_surface_sync_on_next_cs_flush; }; static INLINE void r600_emit_command_buffer(struct radeon_winsys_cs *cs, |