gen7 depth surface: calculate LOD being rendered to
authorJordan Justen <jordan.l.justen@intel.com>
Tue, 9 Jul 2013 22:19:55 +0000 (15:19 -0700)
committerJordan Justen <jordan.l.justen@intel.com>
Sun, 4 Aug 2013 18:52:37 +0000 (11:52 -0700)
This will be used in 3DSTATE_DEPTH_BUFFER in a later patch.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
src/mesa/drivers/dri/i965/gen7_blorp.cpp
src/mesa/drivers/dri/i965/gen7_misc_state.c

index 618fe59fb6738435b86f4e9422fcf6457851faaa..2ab7c5787e129ee7f6587e79479ca3bc29cdf984 100644 (file)
@@ -666,6 +666,7 @@ gen7_blorp_emit_depth_stencil_config(struct brw_context *brw,
    uint32_t surftype;
    unsigned int depth = MAX2(params->depth.mt->logical_depth0, 1);
    GLenum gl_target = params->depth.mt->target;
+   unsigned int lod;
 
    brw_get_depthstencil_tile_masks(params->depth.mt,
                                    params->depth.level,
@@ -688,6 +689,8 @@ gen7_blorp_emit_depth_stencil_config(struct brw_context *brw,
       break;
    }
 
+   lod = params->depth.level - params->depth.mt->first_level;
+
    /* 3DSTATE_DEPTH_BUFFER */
    {
       uint32_t tile_x = draw_x & tile_mask_x;
index f0f8b5dcc675d11d554dce788862a2debf648d4e..acbf79d1c3a52b2800e0d8abbea395506216b2c1 100644 (file)
@@ -46,6 +46,7 @@ gen7_emit_depth_stencil_hiz(struct brw_context *brw,
    uint32_t surftype;
    unsigned int depth = 1;
    GLenum gl_target = GL_TEXTURE_2D;
+   unsigned int lod;
    const struct intel_renderbuffer *irb = NULL;
    const struct gl_renderbuffer *rb = NULL;
 
@@ -78,6 +79,8 @@ gen7_emit_depth_stencil_hiz(struct brw_context *brw,
       break;
    }
 
+   lod = irb ? irb->mt_level - irb->mt->first_level : 0;
+
    /* _NEW_DEPTH, _NEW_STENCIL, _NEW_BUFFERS */
    BEGIN_BATCH(7);
    OUT_BATCH(GEN7_3DSTATE_DEPTH_BUFFER << 16 | (7 - 2));