[Mesa-dev] [PATCH 8/8] intel: Stop creating the wrapped depth irb.
Eric Anholt
eric at anholt.net
Thu Dec 8 13:40:03 PST 2011
All the operations were just trying to get at irb->wrapped_depth->mt,
which is the same as irb->mt now.
---
src/mesa/drivers/dri/i965/brw_vtbl.c | 1 -
src/mesa/drivers/dri/intel/intel_fbo.c | 91 +++-----------------------------
src/mesa/drivers/dri/intel/intel_fbo.h | 27 +---------
3 files changed, 8 insertions(+), 111 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vtbl.c b/src/mesa/drivers/dri/i965/brw_vtbl.c
index db0fe7e..bc76ec2 100644
--- a/src/mesa/drivers/dri/i965/brw_vtbl.c
+++ b/src/mesa/drivers/dri/i965/brw_vtbl.c
@@ -95,7 +95,6 @@ brw_update_draw_buffer(struct intel_context *intel)
{
struct gl_context *ctx = &intel->ctx;
struct gl_framebuffer *fb = ctx->DrawBuffer;
- bool fb_has_hiz = intel_framebuffer_has_hiz(fb);
if (!fb) {
/* this can happen during the initial context initialization */
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 28ed43a..5f74c89 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -113,8 +113,6 @@ intel_delete_renderbuffer(struct gl_renderbuffer *rb)
intel_miptree_release(&irb->mt);
- _mesa_reference_renderbuffer(&irb->wrapped_depth, NULL);
-
free(irb);
}
@@ -260,33 +258,6 @@ intel_alloc_renderbuffer_storage(struct gl_context * ctx, struct gl_renderbuffer
}
}
- if (irb->mt->stencil_mt) {
- bool ok;
- struct intel_renderbuffer *depth_irb;
-
- /* The RB got allocated as separate stencil. Hook up our wrapped
- * renderbuffer so that consumers of intel_get_renderbuffer(BUFFER_DEPTH)
- * end up with pointers to the separate depth.
- */
- if (!irb->wrapped_depth) {
- _mesa_reference_renderbuffer(&irb->wrapped_depth,
- intel_new_renderbuffer(ctx, ~0));
- }
-
- depth_irb = intel_renderbuffer(irb->wrapped_depth);
- if (!depth_irb) {
- intel_miptree_release(&irb->mt);
- return false;
- }
-
- assert(irb->mt->format == MESA_FORMAT_S8_Z24);
- ok = intel_renderbuffer_update_wrapper(intel, depth_irb, irb->mt,
- 0, 0, /* level, layer */
- MESA_FORMAT_X8_Z24,
- GL_DEPTH_COMPONENT24);
- assert(ok);
- }
-
return true;
}
@@ -532,45 +503,14 @@ intel_renderbuffer_update_wrapper(struct intel_context *intel,
irb->mt_layer = layer;
intel_miptree_reference(&irb->mt, mt);
- if (mt->stencil_mt && _mesa_is_depthstencil_format(rb->InternalFormat)) {
- struct intel_renderbuffer *depth_irb;
-
- if (!irb->wrapped_depth) {
- depth_irb = intel_renderbuffer_wrap_miptree(intel,
- mt, level, layer,
- MESA_FORMAT_X8_Z24,
- GL_DEPTH_COMPONENT24);
- _mesa_reference_renderbuffer(&irb->wrapped_depth, &depth_irb->Base);
-
- if (!irb->wrapped_depth) {
- intel_miptree_release(&irb->mt);
- return false;
- }
- } else {
- bool ok = true;
-
- depth_irb = intel_renderbuffer(irb->wrapped_depth);
-
- ok &= intel_renderbuffer_update_wrapper(intel,
- depth_irb,
- mt,
- level, layer,
- MESA_FORMAT_X8_Z24,
- GL_DEPTH_COMPONENT24);
- if (!ok) {
- intel_miptree_release(&irb->mt);
- return false;
- }
- }
- } else {
- intel_renderbuffer_set_draw_offset(irb);
- if (mt->hiz_mt == NULL &&
- intel->vtbl.is_hiz_depth_format(intel, rb->Format)) {
- intel_miptree_alloc_hiz(intel, mt);
- if (!mt->hiz_mt)
- return false;
- }
+ intel_renderbuffer_set_draw_offset(irb);
+
+ if (mt->hiz_mt == NULL &&
+ intel->vtbl.is_hiz_depth_format(intel, rb->Format)) {
+ intel_miptree_alloc_hiz(intel, mt);
+ if (!mt->hiz_mt)
+ return false;
}
return true;
@@ -981,11 +921,6 @@ intel_renderbuffer_set_needs_hiz_resolve(struct intel_renderbuffer *irb)
intel_miptree_slice_set_needs_hiz_resolve(irb->mt,
irb->mt_level,
irb->mt_layer);
- } else if (irb->wrapped_depth) {
- intel_renderbuffer_set_needs_hiz_resolve(
- intel_renderbuffer(irb->wrapped_depth));
- } else {
- return;
}
}
@@ -996,11 +931,6 @@ intel_renderbuffer_set_needs_depth_resolve(struct intel_renderbuffer *irb)
intel_miptree_slice_set_needs_depth_resolve(irb->mt,
irb->mt_level,
irb->mt_layer);
- } else if (irb->wrapped_depth) {
- intel_renderbuffer_set_needs_depth_resolve(
- intel_renderbuffer(irb->wrapped_depth));
- } else {
- return;
}
}
@@ -1013,9 +943,6 @@ intel_renderbuffer_resolve_hiz(struct intel_context *intel,
irb->mt,
irb->mt_level,
irb->mt_layer);
- if (irb->wrapped_depth)
- return intel_renderbuffer_resolve_hiz(intel,
- intel_renderbuffer(irb->wrapped_depth));
return false;
}
@@ -1030,10 +957,6 @@ intel_renderbuffer_resolve_depth(struct intel_context *intel,
irb->mt_level,
irb->mt_layer);
- if (irb->wrapped_depth)
- return intel_renderbuffer_resolve_depth(intel,
- intel_renderbuffer(irb->wrapped_depth));
-
return false;
}
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.h b/src/mesa/drivers/dri/intel/intel_fbo.h
index b8dbb34..edba8e6 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.h
+++ b/src/mesa/drivers/dri/intel/intel_fbo.h
@@ -64,16 +64,6 @@ struct intel_renderbuffer
unsigned int mt_layer;
/** \} */
- /**
- * \name Packed depth/stencil unwrappers
- *
- * If the intel_context is using separate stencil and this renderbuffer has
- * a packed depth/stencil format, then wrapped_depth and wrapped_stencil
- * are the real renderbuffers.
- */
- struct gl_renderbuffer *wrapped_depth;
- /** \} */
-
GLuint draw_x, draw_y; /**< Offset of drawing within the region */
};
@@ -115,7 +105,6 @@ static INLINE struct intel_renderbuffer *
intel_get_renderbuffer(struct gl_framebuffer *fb, gl_buffer_index attIndex)
{
struct gl_renderbuffer *rb;
- struct intel_renderbuffer *irb;
assert((unsigned)attIndex < ARRAY_SIZE(fb->Attachment));
@@ -123,21 +112,7 @@ intel_get_renderbuffer(struct gl_framebuffer *fb, gl_buffer_index attIndex)
if (!rb)
return NULL;
- irb = intel_renderbuffer(rb);
- if (!irb)
- return NULL;
-
- switch (attIndex) {
- case BUFFER_DEPTH:
- if (irb->wrapped_depth) {
- irb = intel_renderbuffer(irb->wrapped_depth);
- }
- break;
- default:
- break;
- }
-
- return irb;
+ return intel_renderbuffer(rb);
}
bool
--
1.7.7.3
More information about the mesa-dev
mailing list