--- src/mesa/drivers/dri/i915/i830_vtbl.c | 52 ++++++++++++------------- src/mesa/drivers/dri/i915/i915_vtbl.c | 58 ++++++++++++++-------------- src/mesa/drivers/dri/intel/intel_context.h | 5 ++- 3 files changed, 58 insertions(+), 57 deletions(-)
diff --git a/src/mesa/drivers/dri/i915/i830_vtbl.c b/src/mesa/drivers/dri/i915/i830_vtbl.c index 67b4c96..037effc 100644 --- a/src/mesa/drivers/dri/i915/i830_vtbl.c +++ b/src/mesa/drivers/dri/i915/i830_vtbl.c @@ -607,9 +607,9 @@ i830_render_target_supported(struct intel_context *intel, } static void -i830_set_draw_region(struct intel_context *intel, - struct intel_region *color_region, - struct intel_region *depth_region) +i830_set_draw_miptree(struct intel_context *intel, + struct intel_mipmap_tree *color_mt, + struct intel_mipmap_tree *depth_mt) { struct i830_context *i830 = i830_context(&intel->ctx); struct gl_context *ctx = &intel->ctx; @@ -623,25 +623,25 @@ i830_set_draw_region(struct intel_context *intel, drm_intel_bo_unreference(state->color_bo); state->color_bo = NULL; - if (color_region) { - state->color_bo = color_region->bo; - drm_intel_bo_unreference(color_region->bo); + if (color_mt) { + state->color_bo = color_mt->region->bo; + drm_intel_bo_unreference(color_mt->region->bo); } drm_intel_bo_unreference(state->depth_bo); state->depth_bo = NULL; - if (depth_region) { - state->depth_bo = depth_region->bo; - drm_intel_bo_unreference(depth_region->bo); + if (depth_mt) { + state->depth_bo = depth_mt->region->bo; + drm_intel_bo_unreference(depth_mt->region->bo); } /* * Set stride/cpp values */ - i915_set_buf_info_for_region(&state->Buffer[I830_DESTREG_CBUFADDR0], - color_region, BUF_3D_ID_COLOR_BACK); + i915_set_buf_info_for_miptree(&state->Buffer[I830_DESTREG_CBUFADDR0], + color_mt, BUF_3D_ID_COLOR_BACK); - i915_set_buf_info_for_region(&state->Buffer[I830_DESTREG_DBUFADDR0], - depth_region, BUF_3D_ID_DEPTH); + i915_set_buf_info_for_miptree(&state->Buffer[I830_DESTREG_DBUFADDR0], + depth_mt, BUF_3D_ID_DEPTH); /* * Compute/set I830_DESTREG_DV1 value @@ -653,7 +653,7 @@ i830_set_draw_region(struct intel_context *intel, value |= i830_render_target_format_for_mesa_format[intel_rb_format(irb)]; } - if (depth_region && depth_region->cpp == 4) { + if (depth_mt && depth_mt->cpp == 4) { value |= DEPTH_FRMT_24_FIXED_8_OTHER; } else { @@ -720,7 +720,7 @@ i830_update_draw_buffer(struct intel_context *intel) { struct gl_context *ctx = &intel->ctx; struct gl_framebuffer *fb = ctx->DrawBuffer; - struct intel_region *colorRegion, *depthRegion = NULL; + struct intel_mipmap_tree *color_mt, *depth_mt = NULL; struct intel_renderbuffer *irbDepth = NULL, *irbStencil = NULL; if (!fb) { @@ -759,7 +759,7 @@ i830_update_draw_buffer(struct intel_context *intel) || (fb->Height > ctx->Const.MaxRenderbufferSize) || (fb->_NumColorDrawBuffers == 0)) { /* writing to 0 */ - colorRegion = NULL; + color_mt = NULL; } else { /* Get the intel_renderbuffer for the single colorbuffer we're drawing @@ -768,19 +768,19 @@ i830_update_draw_buffer(struct intel_context *intel) if (_mesa_is_winsys_fbo(fb)) { /* drawing to window system buffer */ if (fb->_ColorDrawBufferIndexes[0] == BUFFER_FRONT_LEFT) - colorRegion = intel_get_rb_region(fb, BUFFER_FRONT_LEFT); + color_mt = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT)->mt; else - colorRegion = intel_get_rb_region(fb, BUFFER_BACK_LEFT); + color_mt = intel_get_renderbuffer(fb, BUFFER_BACK_LEFT)->mt; } else { /* drawing to user-created FBO */ struct intel_renderbuffer *irb; irb = intel_renderbuffer(fb->_ColorDrawBuffers[0]); - colorRegion = (irb && irb->mt->region) ? irb->mt->region : NULL; + color_mt = irb ? irb->mt : NULL; } } - if (!colorRegion) { + if (!color_mt) { FALLBACK(intel, INTEL_FALLBACK_DRAW_BUFFER, true); } else { @@ -790,14 +790,14 @@ i830_update_draw_buffer(struct intel_context *intel) /* Check for depth fallback. */ if (irbDepth && irbDepth->mt) { FALLBACK(intel, INTEL_FALLBACK_DEPTH_BUFFER, false); - depthRegion = irbDepth->mt->region; + depth_mt = irbDepth->mt; } else if (irbDepth && !irbDepth->mt) { FALLBACK(intel, INTEL_FALLBACK_DEPTH_BUFFER, true); - depthRegion = NULL; + depth_mt = NULL; } else { /* !irbDepth */ /* No fallback is needed because there is no depth buffer. */ FALLBACK(intel, INTEL_FALLBACK_DEPTH_BUFFER, false); - depthRegion = NULL; + depth_mt = NULL; } /* Check for stencil fallback. */ @@ -814,9 +814,9 @@ i830_update_draw_buffer(struct intel_context *intel) /* If we have a (packed) stencil buffer attached but no depth buffer, * we still need to set up the shared depth/stencil state so we can use it. */ - if (depthRegion == NULL && irbStencil && irbStencil->mt + if (depth_mt == NULL && irbStencil && irbStencil->mt && intel_rb_format(irbStencil) == MESA_FORMAT_S8_Z24) { - depthRegion = irbStencil->mt->region; + depth_mt = irbStencil->mt; } /* @@ -826,7 +826,7 @@ i830_update_draw_buffer(struct intel_context *intel) ctx->Driver.Enable(ctx, GL_STENCIL_TEST, (ctx->Stencil.Enabled && fb->Visual.stencilBits > 0)); - i830_set_draw_region(intel, colorRegion, depthRegion); + i830_set_draw_miptree(intel, color_mt, depth_mt); intel->NewGLState |= _NEW_BUFFERS; /* update viewport since it depends on window size */ diff --git a/src/mesa/drivers/dri/i915/i915_vtbl.c b/src/mesa/drivers/dri/i915/i915_vtbl.c index 7b78699..d52c0dd 100644 --- a/src/mesa/drivers/dri/i915/i915_vtbl.c +++ b/src/mesa/drivers/dri/i915/i915_vtbl.c @@ -522,18 +522,18 @@ i915_destroy_context(struct intel_context *intel) } void -i915_set_buf_info_for_region(uint32_t *state, struct intel_region *region, - uint32_t buffer_id) +i915_set_buf_info_for_miptree(uint32_t *state, struct intel_mipmap_tree *mt, + uint32_t buffer_id) { state[0] = _3DSTATE_BUF_INFO_CMD; state[1] = buffer_id; - if (region != NULL) { - state[1] |= BUF_3D_PITCH(region->pitch); + if (mt != NULL) { + state[1] |= BUF_3D_PITCH(mt->region->pitch); - if (region->tiling != I915_TILING_NONE) { + if (mt->region->tiling != I915_TILING_NONE) { state[1] |= BUF_3D_TILED_SURFACE; - if (region->tiling == I915_TILING_Y) + if (mt->region->tiling == I915_TILING_Y) state[1] |= BUF_3D_TILE_WALK_Y; } } else { @@ -571,8 +571,8 @@ i915_render_target_supported(struct intel_context *intel, static void i915_set_draw_region(struct intel_context *intel, - struct intel_region *color_region, - struct intel_region *depth_region) + struct intel_mipmap_tree *color_mt, + struct intel_mipmap_tree *depth_mt) { struct i915_context *i915 = i915_context(&intel->ctx); struct gl_context *ctx = &intel->ctx; @@ -586,25 +586,25 @@ i915_set_draw_region(struct intel_context *intel, drm_intel_bo_unreference(state->color_bo); state->color_bo = NULL; - if (color_region) { - state->color_bo = color_region->bo; - drm_intel_bo_unreference(color_region->bo); + if (color_mt->region) { + state->color_bo = color_mt->region->bo; + drm_intel_bo_unreference(color_mt->region->bo); } drm_intel_bo_unreference(state->depth_bo); state->depth_bo = NULL; - if (depth_region) { - state->depth_bo = depth_region->bo; - drm_intel_bo_unreference(depth_region->bo); + if (depth_mt) { + state->depth_bo = depth_mt->region->bo; + drm_intel_bo_unreference(depth_mt->region->bo); } /* * Set stride/cpp values */ - i915_set_buf_info_for_region(&state->Buffer[I915_DESTREG_CBUFADDR0], - color_region, BUF_3D_ID_COLOR_BACK); + i915_set_buf_info_for_miptree(&state->Buffer[I915_DESTREG_CBUFADDR0], + color_mt, BUF_3D_ID_COLOR_BACK); - i915_set_buf_info_for_region(&state->Buffer[I915_DESTREG_DBUFADDR0], - depth_region, BUF_3D_ID_DEPTH); + i915_set_buf_info_for_miptree(&state->Buffer[I915_DESTREG_DBUFADDR0], + depth_mt, BUF_3D_ID_DEPTH); /* * Compute/set I915_DESTREG_DV1 value @@ -623,10 +623,10 @@ i915_set_draw_region(struct intel_context *intel, * can only be set when a depth buffer is already defined. */ if (intel->is_945 && intel->use_early_z && - depth_region->tiling != I915_TILING_NONE) + depth_mt->region->tiling != I915_TILING_NONE) value |= CLASSIC_EARLY_DEPTH; - if (depth_region && depth_region->cpp == 4) { + if (depth_mt->region && depth_mt->cpp == 4) { value |= DEPTH_FRMT_24_FIXED_8_OTHER; } else { @@ -719,7 +719,7 @@ i915_update_draw_buffer(struct intel_context *intel) struct i915_context *i915 = (struct i915_context *)intel; struct gl_context *ctx = &intel->ctx; struct gl_framebuffer *fb = ctx->DrawBuffer; - struct intel_region *colorRegion = NULL, *depthRegion = NULL; + struct intel_mipmap_tree *color_mt = NULL, *depth_mt = NULL; struct intel_renderbuffer *irbDepth = NULL, *irbStencil = NULL; if (!fb) { @@ -761,21 +761,21 @@ i915_update_draw_buffer(struct intel_context *intel) } else { struct intel_renderbuffer *irb; irb = intel_renderbuffer(fb->_ColorDrawBuffers[0]); - colorRegion = (irb && irb->mt) ? irb->mt->region : NULL; + color_mt = (irb && irb->mt) ? irb->mt : NULL; FALLBACK(intel, INTEL_FALLBACK_DRAW_BUFFER, false); } /* Check for depth fallback. */ if (irbDepth && irbDepth->mt) { FALLBACK(intel, INTEL_FALLBACK_DEPTH_BUFFER, false); - depthRegion = irbDepth->mt->region; + depth_mt = irbDepth->mt; } else if (irbDepth && !irbDepth->mt) { FALLBACK(intel, INTEL_FALLBACK_DEPTH_BUFFER, true); - depthRegion = NULL; + depth_mt = NULL; } else { /* !irbDepth */ /* No fallback is needed because there is no depth buffer. */ FALLBACK(intel, INTEL_FALLBACK_DEPTH_BUFFER, false); - depthRegion = NULL; + depth_mt = NULL; } /* Check for stencil fallback. */ @@ -792,9 +792,9 @@ i915_update_draw_buffer(struct intel_context *intel) /* If we have a (packed) stencil buffer attached but no depth buffer, * we still need to set up the shared depth/stencil state so we can use it. */ - if (depthRegion == NULL && irbStencil && irbStencil->mt + if (depth_mt == NULL && irbStencil && irbStencil->mt && intel_rb_format(irbStencil) == MESA_FORMAT_S8_Z24) { - depthRegion = irbStencil->mt->region; + depth_mt = irbStencil->mt; } /* @@ -803,9 +803,9 @@ i915_update_draw_buffer(struct intel_context *intel) ctx->Driver.Enable(ctx, GL_DEPTH_TEST, ctx->Depth.Test); ctx->Driver.Enable(ctx, GL_STENCIL_TEST, ctx->Stencil.Enabled); - i915_update_color_write_enable(i915, colorRegion != NULL); + i915_update_color_write_enable(i915, color_mt != NULL); - i915_set_draw_region(intel, colorRegion, depthRegion); + i915_set_draw_region(intel, color_mt, depth_mt); intel->NewGLState |= _NEW_BUFFERS; /* update viewport since it depends on window size */ diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h index b051f7c..9c94e1e 100644 --- a/src/mesa/drivers/dri/intel/intel_context.h +++ b/src/mesa/drivers/dri/intel/intel_context.h @@ -586,8 +586,9 @@ void intel_downsample_for_dri2_flush(struct intel_context *intel, __DRIdrawable *drawable); -void i915_set_buf_info_for_region(uint32_t *state, struct intel_region *region, - uint32_t buffer_id); +void i915_set_buf_info_for_miptree(uint32_t *state, + struct intel_mipmap_tree *mt, + uint32_t buffer_id); void intel_init_texture_formats(struct gl_context *ctx); /*====================================================================== -- 1.7.10.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev