Mesa (master): i965: Always use CPU mappings for BOs on LLC platforms.

Eric Anholt anholt at kemper.freedesktop.org
Fri Mar 14 20:01:00 UTC 2014


Module: Mesa
Branch: master
Commit: 1990da2568a0da79c6011bd83e7f7fb8bb099827
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1990da2568a0da79c6011bd83e7f7fb8bb099827

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Feb 27 10:05:39 2014 -0800

i965: Always use CPU mappings for BOs on LLC platforms.

It looks like there's no big difference for write-only workloads, but
using a CPU map means that if they happen to read without having set the
MAP_READ_BIT, they get 100x the performance for those reads.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/intel_buffer_objects.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/intel_buffer_objects.c b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
index e496836..260308a 100644
--- a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
+++ b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
@@ -429,7 +429,7 @@ intel_bufferobj_map_range(struct gl_context * ctx,
 
    if (access & GL_MAP_UNSYNCHRONIZED_BIT)
       drm_intel_gem_bo_map_unsynchronized(intel_obj->buffer);
-   else if (!(access & GL_MAP_READ_BIT)) {
+   else if (!brw->has_llc && !(access & GL_MAP_READ_BIT)) {
       drm_intel_gem_bo_map_gtt(intel_obj->buffer);
       intel_bufferobj_mark_inactive(intel_obj);
    } else {




More information about the mesa-commit mailing list