Mesa (master): intel: Don't map regions with drm_intel_gem_bo_map_gtt() unless they're tiled.
Eric Anholt
anholt at kemper.freedesktop.org
Sat Jun 20 00:27:35 UTC 2009
Module: Mesa
Branch: master
Commit: 3b08a43f32d04a0522596d3d37b1c1874e04d5c3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b08a43f32d04a0522596d3d37b1c1874e04d5c3
Author: Eric Anholt <eric at anholt.net>
Date: Fri Jun 19 17:14:27 2009 -0700
intel: Don't map regions with drm_intel_gem_bo_map_gtt() unless they're tiled.
This fixes a regression in region read performance that came in with the
texture tiling changes. Ideally we'd have an access flag coming in so we
could also use bo_map_gtt for writing, like we do for buffer objects.
Bug #22190
---
src/mesa/drivers/dri/intel/intel_regions.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_regions.c b/src/mesa/drivers/dri/intel/intel_regions.c
index e142020..65567e5 100644
--- a/src/mesa/drivers/dri/intel/intel_regions.c
+++ b/src/mesa/drivers/dri/intel/intel_regions.c
@@ -116,7 +116,8 @@ intel_region_map(struct intel_context *intel, struct intel_region *region)
if (region->pbo)
intel_region_cow(intel, region);
- if (intel->intelScreen->kernel_exec_fencing)
+ if (region->tiling != I915_TILING_NONE &&
+ intel->intelScreen->kernel_exec_fencing)
drm_intel_gem_bo_map_gtt(region->buffer);
else
dri_bo_map(region->buffer, GL_TRUE);
@@ -131,7 +132,8 @@ intel_region_unmap(struct intel_context *intel, struct intel_region *region)
{
_DBG("%s %p\n", __FUNCTION__, region);
if (!--region->map_refcount) {
- if (intel->intelScreen->kernel_exec_fencing)
+ if (region->tiling != I915_TILING_NONE &&
+ intel->intelScreen->kernel_exec_fencing)
drm_intel_gem_bo_unmap_gtt(region->buffer);
else
dri_bo_unmap(region->buffer);
More information about the mesa-commit
mailing list