i965: Assert that we don't use CPU write maps to non-coherent buffers.
Using CPU maps of non-coherent buffers can get us in a lot of trouble, and WC maps are a reasonable alternative anyway. Guard against shooting ourselves in the foot by adding an assert, and comment. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -669,6 +669,12 @@ brw_bo_map_cpu(struct brw_context *brw, struct brw_bo *bo, unsigned flags)
|
|||||||
{
|
{
|
||||||
struct brw_bufmgr *bufmgr = bo->bufmgr;
|
struct brw_bufmgr *bufmgr = bo->bufmgr;
|
||||||
|
|
||||||
|
/* We disallow CPU maps for writing to non-coherent buffers, as the
|
||||||
|
* CPU map can become invalidated when a batch is flushed out, which
|
||||||
|
* can happen at unpredictable times. You should use WC maps instead.
|
||||||
|
*/
|
||||||
|
assert(bo->cache_coherent || !(flags & MAP_WRITE));
|
||||||
|
|
||||||
if (!bo->map_cpu) {
|
if (!bo->map_cpu) {
|
||||||
struct drm_i915_gem_mmap mmap_arg;
|
struct drm_i915_gem_mmap mmap_arg;
|
||||||
void *map;
|
void *map;
|
||||||
|
Reference in New Issue
Block a user