[Mesa-dev] [PATCH 58/70] i965: Reuse any available upload space for temporary MapBufferRange blits

Chris Wilson chris at chris-wilson.co.uk
Fri Aug 7 13:14:02 PDT 2015


Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 src/mesa/drivers/dri/i965/intel_buffer_objects.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_buffer_objects.c b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
index 2b18e2c..e0566b0 100644
--- a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
+++ b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
@@ -355,17 +355,13 @@ brw_map_buffer_range(struct gl_context *ctx,
           * guarantees the driver has advertised to the application.
           */
          const unsigned alignment = ctx->Const.MinMapBufferAlignment;
-
-         intel_obj->map_extra[index] = (uintptr_t) offset % alignment;
-         intel_obj->range_map_bo[index] =
-            brw_bo_create(&brw->batch,
-                          "BO blit temp",
-                          length + intel_obj->map_extra[index],
-                          alignment, 0);
+         const unsigned adj = (uintptr_t) offset % alignment;
 
          obj->Mappings[index].Pointer =
-            brw_bo_map(intel_obj->range_map_bo[index], MAP_WRITE, NULL) +
-            intel_obj->map_extra[index];
+            intel_upload_space(brw, length + adj, alignment,
+                               &intel_obj->range_map_bo[index],
+                               &intel_obj->map_extra[index]) + adj;
+         intel_obj->map_extra[index] += adj;
 
          return obj->Mappings[index].Pointer;
       } else {
-- 
2.5.0



More information about the mesa-dev mailing list