|
|
@@ -1112,7 +1112,6 @@ intel_query_dri2_buffers_no_separate_stencil(struct intel_context *intel, |
|
|
|
* |
|
|
|
* \see intel_update_renderbuffers() |
|
|
|
* \see intel_region_alloc_for_handle() |
|
|
|
* \see intel_renderbuffer_set_region() |
|
|
|
*/ |
|
|
|
static void |
|
|
|
intel_process_dri2_buffer_no_separate_stencil(struct intel_context *intel, |
|
|
@@ -1124,7 +1123,6 @@ intel_process_dri2_buffer_no_separate_stencil(struct intel_context *intel, |
|
|
|
assert(!intel->must_use_separate_stencil); |
|
|
|
|
|
|
|
struct gl_framebuffer *fb = drawable->driverPrivate; |
|
|
|
struct intel_region *region = NULL; |
|
|
|
struct intel_renderbuffer *depth_rb = NULL; |
|
|
|
|
|
|
|
if (!rb) |
|
|
@@ -1151,20 +1149,18 @@ intel_process_dri2_buffer_no_separate_stencil(struct intel_context *intel, |
|
|
|
if (unlikely(INTEL_DEBUG & DEBUG_DRI)) { |
|
|
|
fprintf(stderr, "(reusing depth buffer as stencil)\n"); |
|
|
|
} |
|
|
|
intel_region_reference(®ion, depth_rb->region); |
|
|
|
intel_region_reference(&rb->region, depth_rb->region); |
|
|
|
} else { |
|
|
|
region = intel_region_alloc_for_handle(intel->intelScreen, |
|
|
|
buffer->cpp, |
|
|
|
drawable->w, |
|
|
|
drawable->h, |
|
|
|
buffer->pitch / buffer->cpp, |
|
|
|
buffer->name, |
|
|
|
buffer_name); |
|
|
|
intel_region_release(&rb->region); |
|
|
|
rb->region = intel_region_alloc_for_handle(intel->intelScreen, |
|
|
|
buffer->cpp, |
|
|
|
drawable->w, |
|
|
|
drawable->h, |
|
|
|
buffer->pitch / buffer->cpp, |
|
|
|
buffer->name, |
|
|
|
buffer_name); |
|
|
|
} |
|
|
|
|
|
|
|
intel_renderbuffer_set_region(intel, rb, region); |
|
|
|
intel_region_release(®ion); |
|
|
|
|
|
|
|
if (buffer->attachment == __DRI_BUFFER_DEPTH_STENCIL) { |
|
|
|
struct intel_renderbuffer *stencil_rb = |
|
|
|
intel_get_renderbuffer(fb, BUFFER_STENCIL); |
|
|
@@ -1172,10 +1168,10 @@ intel_process_dri2_buffer_no_separate_stencil(struct intel_context *intel, |
|
|
|
if (!stencil_rb) |
|
|
|
return; |
|
|
|
|
|
|
|
if (stencil_rb->region && stencil_rb->region->name == buffer->name) |
|
|
|
return; |
|
|
|
|
|
|
|
intel_renderbuffer_set_region(intel, stencil_rb, region); |
|
|
|
/* The rb passed in is the BUFFER_DEPTH attachment, and we need |
|
|
|
* to associate this region to BUFFER_STENCIL as well. |
|
|
|
*/ |
|
|
|
intel_region_reference(&stencil_rb->region, rb->region); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -1300,7 +1296,6 @@ intel_query_dri2_buffers_with_separate_stencil(struct intel_context *intel, |
|
|
|
* |
|
|
|
* \see intel_update_renderbuffers() |
|
|
|
* \see intel_region_alloc_for_handle() |
|
|
|
* \see intel_renderbuffer_set_region() |
|
|
|
* \see enum intel_dri2_has_hiz |
|
|
|
*/ |
|
|
|
static void |
|
|
@@ -1360,9 +1355,9 @@ intel_process_dri2_buffer_with_separate_stencil(struct intel_context *intel, |
|
|
|
buffer_name); |
|
|
|
|
|
|
|
if (buffer->attachment == __DRI_BUFFER_HIZ) { |
|
|
|
intel_renderbuffer_set_hiz_region(intel, rb, region); |
|
|
|
intel_region_reference(&rb->hiz_region, region); |
|
|
|
} else { |
|
|
|
intel_renderbuffer_set_region(intel, rb, region); |
|
|
|
intel_region_reference(&rb->region, region); |
|
|
|
} |
|
|
|
|
|
|
|
intel_region_release(®ion); |
|
|
@@ -1511,12 +1506,10 @@ intel_verify_dri2_has_hiz(struct intel_context *intel, |
|
|
|
/ depth_stencil_buffer->cpp, |
|
|
|
depth_stencil_buffer->name, |
|
|
|
"dri2 depth / stencil buffer"); |
|
|
|
intel_renderbuffer_set_region(intel, |
|
|
|
intel_get_renderbuffer(fb, BUFFER_DEPTH), |
|
|
|
region); |
|
|
|
intel_renderbuffer_set_region(intel, |
|
|
|
intel_get_renderbuffer(fb, BUFFER_STENCIL), |
|
|
|
region); |
|
|
|
intel_region_reference(&intel_get_renderbuffer(fb, BUFFER_DEPTH)->region, |
|
|
|
region); |
|
|
|
intel_region_reference(&intel_get_renderbuffer(fb, BUFFER_STENCIL)->region, |
|
|
|
region); |
|
|
|
intel_region_release(®ion); |
|
|
|
} |
|
|
|
} |