<div dir="ltr">On 15 July 2013 17:14, Jordan Justen <span dir="ltr"><<a href="mailto:jordan.l.justen@intel.com" target="_blank">jordan.l.justen@intel.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In layered rendering this will be 0. Otherwise it will be the<br>
selected slice.<br>
<br>
Signed-off-by: Jordan Justen <<a href="mailto:jordan.l.justen@intel.com">jordan.l.justen@intel.com</a>><br>
---<br>
 src/mesa/drivers/dri/i965/gen7_blorp.cpp    |    6 ++++++<br>
 src/mesa/drivers/dri/i965/gen7_misc_state.c |    9 +++++++++<br>
 2 files changed, 15 insertions(+)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/gen7_blorp.cpp b/src/mesa/drivers/dri/i965/gen7_blorp.cpp<br>
index 7df78f6..3d1710e 100644<br>
--- a/src/mesa/drivers/dri/i965/gen7_blorp.cpp<br>
+++ b/src/mesa/drivers/dri/i965/gen7_blorp.cpp<br>
@@ -659,6 +659,7 @@ gen7_blorp_emit_depth_stencil_config(struct brw_context *brw,<br>
    uint32_t tile_mask_x, tile_mask_y;<br>
    uint32_t surftype;<br>
    int depth = MAX2(params->depth.mt->logical_depth0, 1);<br>
+   int min_array_element;<br>
    GLenum gl_target = params->depth.mt->target;<br>
    int lod;<br>
<br>
@@ -678,6 +679,11 @@ gen7_blorp_emit_depth_stencil_config(struct brw_context *brw,<br>
       break;<br>
    }<br>
<br>
+   min_array_element = params->depth.layer;<br>
+   if (params->depth.mt->num_samples > 1) {<br>
+      min_array_element /= params->depth.mt->num_samples;<br></blockquote><div><br></div><div>Can we add a comment here explaining why this is necessary (maybe something like "The value of params->depth.layer comes from the 'layer' argument of intel_hiz_exec's 'layer' parameter, which is a physical layer.  To convert that to a logical layer, we have to divide by num_samples."<br>
<br></div><div>In a future clean-up series I'd be interested in trying to change things so that intel_hiz_exec's 'layer' parameter is a logical layer, so that we don't have to do this division.  But I don't want to hold up your patch series waiting for that clean-up.<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+   }<br>
+<br>
    lod = params->depth.level - params->depth.mt->first_level;<br>
<br>
    /* 3DSTATE_DEPTH_BUFFER */<br>
diff --git a/src/mesa/drivers/dri/i965/gen7_misc_state.c b/src/mesa/drivers/dri/i965/gen7_misc_state.c<br>
index 404d7d2..87fbfaa 100644<br>
--- a/src/mesa/drivers/dri/i965/gen7_misc_state.c<br>
+++ b/src/mesa/drivers/dri/i965/gen7_misc_state.c<br>
@@ -45,6 +45,7 @@ gen7_emit_depth_stencil_hiz(struct brw_context *brw,<br>
    struct gl_framebuffer *fb = ctx->DrawBuffer;<br>
    uint32_t surftype;<br>
    int depth = 1;<br>
+   int min_array_element;<br>
    GLenum gl_target = GL_TEXTURE_2D;<br>
    int lod;<br>
    bool layered = false;<br>
@@ -84,6 +85,14 @@ gen7_emit_depth_stencil_hiz(struct brw_context *brw,<br>
       break;<br>
    }<br>
<br>
+   if (layered || !irb) {<br>
+      min_array_element = 0;<br>
+   } else if (irb->mt->num_samples > 1) {<br>
+      min_array_element = irb->mt_layer / irb->mt->num_samples;<br></blockquote><div><br></div><div>A similar comment would be nice here, to explain that irb->mt_layer is a physical layer, and we need to divide by num_samples to convert to a logical layer.<br>
<br>With the extra comments, this patch is:<br><br>Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

+   } else {<br>
+      min_array_element = irb->mt_layer;<br>
+   }<br>
+<br>
    lod = irb ? irb->mt_level - irb->mt->first_level : 0;<br>
<br>
    /* _NEW_DEPTH, _NEW_STENCIL, _NEW_BUFFERS */<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.10.4<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>