intel: Remove the old swrast flag for reducing cache flushing.
It hasn't been doing anything effective since
52e5d24fae
, and we pretty much don't bo_map
pinned buffers any more anyway.
main
parent
0a24654129
commit
456a358b9a
|
@ -126,13 +126,6 @@ struct _drm_intel_bo_gem {
|
||||||
*/
|
*/
|
||||||
int validate_index;
|
int validate_index;
|
||||||
|
|
||||||
/**
|
|
||||||
* Boolean whether we've started swrast
|
|
||||||
* Set when the buffer has been mapped
|
|
||||||
* Cleared when the buffer is unmapped
|
|
||||||
*/
|
|
||||||
int swrast;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Current tiling mode
|
* Current tiling mode
|
||||||
*/
|
*/
|
||||||
|
@ -663,30 +656,26 @@ drm_intel_gem_bo_map(drm_intel_bo *bo, int write_enable)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
bo_gem->mem_virtual = (void *)(uintptr_t)mmap_arg.addr_ptr;
|
bo_gem->mem_virtual = (void *)(uintptr_t)mmap_arg.addr_ptr;
|
||||||
bo_gem->swrast = 0;
|
|
||||||
}
|
}
|
||||||
DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name,
|
DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name,
|
||||||
bo_gem->mem_virtual);
|
bo_gem->mem_virtual);
|
||||||
bo->virtual = bo_gem->mem_virtual;
|
bo->virtual = bo_gem->mem_virtual;
|
||||||
|
|
||||||
if (bo_gem->global_name != 0 || !bo_gem->swrast) {
|
set_domain.handle = bo_gem->gem_handle;
|
||||||
set_domain.handle = bo_gem->gem_handle;
|
set_domain.read_domains = I915_GEM_DOMAIN_CPU;
|
||||||
set_domain.read_domains = I915_GEM_DOMAIN_CPU;
|
if (write_enable)
|
||||||
if (write_enable)
|
set_domain.write_domain = I915_GEM_DOMAIN_CPU;
|
||||||
set_domain.write_domain = I915_GEM_DOMAIN_CPU;
|
else
|
||||||
else
|
set_domain.write_domain = 0;
|
||||||
set_domain.write_domain = 0;
|
do {
|
||||||
do {
|
ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN,
|
||||||
ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN,
|
&set_domain);
|
||||||
&set_domain);
|
} while (ret == -1 && errno == EINTR);
|
||||||
} while (ret == -1 && errno == EINTR);
|
if (ret != 0) {
|
||||||
if (ret != 0) {
|
fprintf (stderr, "%s:%d: Error setting to CPU domain %d: %s\n",
|
||||||
fprintf (stderr, "%s:%d: Error setting swrast %d: %s\n",
|
__FILE__, __LINE__, bo_gem->gem_handle, strerror (errno));
|
||||||
__FILE__, __LINE__, bo_gem->gem_handle, strerror (errno));
|
pthread_mutex_unlock(&bufmgr_gem->lock);
|
||||||
pthread_mutex_unlock(&bufmgr_gem->lock);
|
return ret;
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
bo_gem->swrast = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_unlock(&bufmgr_gem->lock);
|
pthread_mutex_unlock(&bufmgr_gem->lock);
|
||||||
|
@ -797,14 +786,16 @@ drm_intel_gem_bo_unmap(drm_intel_bo *bo)
|
||||||
assert(bo_gem->mem_virtual != NULL);
|
assert(bo_gem->mem_virtual != NULL);
|
||||||
|
|
||||||
pthread_mutex_lock(&bufmgr_gem->lock);
|
pthread_mutex_lock(&bufmgr_gem->lock);
|
||||||
if (bo_gem->swrast) {
|
|
||||||
sw_finish.handle = bo_gem->gem_handle;
|
/* Cause a flush to happen if the buffer's pinned for scanout, so the
|
||||||
do {
|
* results show up in a timely manner.
|
||||||
ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SW_FINISH,
|
*/
|
||||||
&sw_finish);
|
sw_finish.handle = bo_gem->gem_handle;
|
||||||
} while (ret == -1 && errno == EINTR);
|
do {
|
||||||
bo_gem->swrast = 0;
|
ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SW_FINISH,
|
||||||
}
|
&sw_finish);
|
||||||
|
} while (ret == -1 && errno == EINTR);
|
||||||
|
|
||||||
bo->virtual = NULL;
|
bo->virtual = NULL;
|
||||||
pthread_mutex_unlock(&bufmgr_gem->lock);
|
pthread_mutex_unlock(&bufmgr_gem->lock);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1100,9 +1091,6 @@ drm_intel_gem_bo_exec(drm_intel_bo *bo, int used,
|
||||||
drm_intel_bo *bo = bufmgr_gem->exec_bos[i];
|
drm_intel_bo *bo = bufmgr_gem->exec_bos[i];
|
||||||
drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo;
|
drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo;
|
||||||
|
|
||||||
/* Need to call swrast on next bo_map */
|
|
||||||
bo_gem->swrast = 0;
|
|
||||||
|
|
||||||
/* Disconnect the buffer from the validate list */
|
/* Disconnect the buffer from the validate list */
|
||||||
bo_gem->validate_index = -1;
|
bo_gem->validate_index = -1;
|
||||||
drm_intel_gem_bo_unreference_locked(bo);
|
drm_intel_gem_bo_unreference_locked(bo);
|
||||||
|
|
Loading…
Reference in New Issue