intel: Fix refcounting on depth buffer initialization in DRI2.

(Reverts a change to work around the problem on 965).
This commit is contained in:
Eric Anholt 2008-09-03 12:36:43 +01:00
parent 3bb2a24921
commit e32721c46a
2 changed files with 4 additions and 16 deletions

View file

@ -75,27 +75,15 @@ static void brw_set_draw_region( struct intel_context *intel,
GLuint num_regions)
{
struct brw_context *brw = brw_context(&intel->ctx);
struct intel_region *old_depth_region, *old_draw_regions[MAX_DRAW_BUFFERS];
int i;
if (brw->state.depth_region != depth_region)
brw->state.dirty.brw |= BRW_NEW_DEPTH_BUFFER;
for (i = 0; i < brw->state.nr_draw_regions; i++) {
old_draw_regions[i] = brw->state.draw_regions[i];
brw->state.draw_regions[i] = NULL;
}
old_depth_region = brw->state.depth_region;
brw->state.depth_region = NULL;
for (i = 0; i < brw->state.nr_draw_regions; i++)
intel_region_release(&brw->state.draw_regions[i]);
intel_region_release(&brw->state.depth_region);
for (i = 0; i < num_regions; i++)
intel_region_reference(&brw->state.draw_regions[i], draw_regions[i]);
intel_region_reference(&brw->state.depth_region, depth_region);
for (i = 0; i < brw->state.nr_draw_regions; i++)
intel_region_release(&old_draw_regions[i]);
intel_region_release(&old_depth_region);
brw->state.nr_draw_regions = num_regions;
}

View file

@ -292,7 +292,7 @@ intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
if (buffers[i].attachment == __DRI_BUFFER_STENCIL && depth_region) {
if (INTEL_DEBUG & DEBUG_DRI)
fprintf(stderr, "(reusing depth buffer as stencil)\n");
region = depth_region;
intel_region_reference(&region, depth_region);
}
else
region = intel_region_alloc_for_handle(intel, buffers[i].cpp,