Browse Source

i965: Change signature of brw_get_depthstencil_tile_masks()

Add new parameters `depth_level` and `depth_layer`, which specify depth
miptree's slice of interest.  A following patch will pass the new
parameters through to intel_miptree_slice_has_hiz().

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
tags/mesa-9.2-rc1
Chad Versace 12 years ago
parent
commit
5b79705526

+ 2
- 0
src/mesa/drivers/dri/i965/brw_context.h View File

@@ -1127,6 +1127,8 @@ bool brwCreateContext(int api,
* brw_misc_state.c
*/
void brw_get_depthstencil_tile_masks(struct intel_mipmap_tree *depth_mt,
uint32_t depth_level,
uint32_t depth_layer,
struct intel_mipmap_tree *stencil_mt,
uint32_t *out_tile_mask_x,
uint32_t *out_tile_mask_y);

+ 6
- 1
src/mesa/drivers/dri/i965/brw_misc_state.c View File

@@ -271,6 +271,8 @@ brw_depthbuffer_format(struct brw_context *brw)
*/
void
brw_get_depthstencil_tile_masks(struct intel_mipmap_tree *depth_mt,
uint32_t depth_level,
uint32_t depth_layer,
struct intel_mipmap_tree *stencil_mt,
uint32_t *out_tile_mask_x,
uint32_t *out_tile_mask_y)
@@ -367,7 +369,10 @@ brw_workaround_depthstencil_alignment(struct brw_context *brw,
}

uint32_t tile_mask_x, tile_mask_y;
brw_get_depthstencil_tile_masks(depth_mt, stencil_mt,
brw_get_depthstencil_tile_masks(depth_mt,
depth_mt ? depth_irb->mt_level : 0,
depth_mt ? depth_irb->mt_layer : 0,
stencil_mt,
&tile_mask_x, &tile_mask_y);

if (depth_irb) {

+ 4
- 1
src/mesa/drivers/dri/i965/gen6_blorp.cpp View File

@@ -829,7 +829,10 @@ gen6_blorp_emit_depth_stencil_config(struct brw_context *brw,
uint32_t draw_y = params->depth.y_offset;
uint32_t tile_mask_x, tile_mask_y;

brw_get_depthstencil_tile_masks(params->depth.mt, NULL,
brw_get_depthstencil_tile_masks(params->depth.mt,
params->depth.level,
params->depth.layer,
NULL,
&tile_mask_x, &tile_mask_y);

/* 3DSTATE_DEPTH_BUFFER */

+ 4
- 1
src/mesa/drivers/dri/i965/gen7_blorp.cpp View File

@@ -585,7 +585,10 @@ gen7_blorp_emit_depth_stencil_config(struct brw_context *brw,
uint32_t tile_mask_x, tile_mask_y;

if (params->depth.mt) {
brw_get_depthstencil_tile_masks(params->depth.mt, NULL,
brw_get_depthstencil_tile_masks(params->depth.mt,
params->depth.level,
params->depth.layer,
NULL,
&tile_mask_x, &tile_mask_y);
}


Loading…
Cancel
Save