--- src/mesa/drivers/dri/i915/intel_context.c | 31 +++++++++++++++++++--------- src/mesa/drivers/dri/i965/intel_context.c | 34 +++++++++++++++++++++---------- 2 files changed, 44 insertions(+), 21 deletions(-)
diff --git a/src/mesa/drivers/dri/i915/intel_context.c b/src/mesa/drivers/dri/i915/intel_context.c index f27e3d0..25a2832 100644 --- a/src/mesa/drivers/dri/i915/intel_context.c +++ b/src/mesa/drivers/dri/i915/intel_context.c @@ -804,24 +804,35 @@ intel_process_dri2_buffer(struct intel_context *intel, */ if (rb->mt && rb->mt->region && - rb->mt->region->name == buffer->name) + rb->mt->region->name == buffer->name && + rb->mt->region->name != 0) return; if (unlikely(INTEL_DEBUG & DEBUG_DRI)) { fprintf(stderr, - "attaching buffer %d, at %d, cpp %d, pitch %d\n", + "attaching buffer %d, at %d, cpp %d, pitch %d, fd %d\n", buffer->name, buffer->attachment, - buffer->cpp, buffer->pitch); + buffer->cpp, buffer->pitch, buffer->fd); } intel_miptree_release(&rb->mt); - region = intel_region_alloc_for_handle(intel->intelScreen, - buffer->cpp, - drawable->w, - drawable->h, - buffer->pitch, - buffer->name, - buffer_name); + if (buffer->name != 0) { + region = intel_region_alloc_for_handle(intel->intelScreen, + buffer->cpp, + drawable->w, + drawable->h, + buffer->pitch, + buffer->name, + buffer_name); + } else { + region = intel_region_alloc_for_fd(intel->intelScreen, + buffer->cpp, + drawable->w, + drawable->h, + buffer->pitch, + buffer->fd, + buffer_name); + } if (!region) return; diff --git a/src/mesa/drivers/dri/i965/intel_context.c b/src/mesa/drivers/dri/i965/intel_context.c index 742bcc3..e82cb7e 100644 --- a/src/mesa/drivers/dri/i965/intel_context.c +++ b/src/mesa/drivers/dri/i965/intel_context.c @@ -857,31 +857,43 @@ intel_process_dri2_buffer(struct brw_context *brw, if (num_samples == 0) { if (rb->mt && rb->mt->region && - rb->mt->region->name == buffer->name) + rb->mt->region->name == buffer->name && + rb->mt->region->name != 0) return; } else { if (rb->mt && rb->mt->singlesample_mt && rb->mt->singlesample_mt->region && - rb->mt->singlesample_mt->region->name == buffer->name) + rb->mt->singlesample_mt->region->name == buffer->name && + rb->mt->singlesample_mt->region->name != 0) return; } if (unlikely(INTEL_DEBUG & DEBUG_DRI)) { fprintf(stderr, - "attaching buffer %d, at %d, cpp %d, pitch %d\n", + "attaching buffer %d, at %d, cpp %d, pitch %d, fd %d\n", buffer->name, buffer->attachment, - buffer->cpp, buffer->pitch); + buffer->cpp, buffer->pitch, buffer->fd); } intel_miptree_release(&rb->mt); - region = intel_region_alloc_for_handle(brw->intelScreen, - buffer->cpp, - drawable->w, - drawable->h, - buffer->pitch, - buffer->name, - buffer_name); + if (buffer->name != 0) { + region = intel_region_alloc_for_handle(brw->intelScreen, + buffer->cpp, + drawable->w, + drawable->h, + buffer->pitch, + buffer->name, + buffer_name); + } else { + region = intel_region_alloc_for_fd(brw->intelScreen, + buffer->cpp, + drawable->w, + drawable->h, + buffer->pitch, + buffer->fd, + buffer_name); + } if (!region) return; -- 1.8.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev