[Mesa-dev] [PATCH v2 5/5] i965: Fix fast clear of depth buffers.

Jordan Justen jljusten at gmail.com
Thu Nov 21 14:48:43 PST 2013


I sent one suggestion on patch 1.

Series: Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

On Wed, Nov 20, 2013 at 2:29 PM, Paul Berry <stereotype441 at gmail.com> wrote:
> From section 4.4.7 (Layered Framebuffers) of the GLSL 3.2 spec:
>
>     When the Clear or ClearBuffer* commands are used to clear a
>     layered framebuffer attachment, all layers of the attachment are
>     cleared.
>
> This patch fixes the fast depth clear path.
>
> Fixes piglit test "spec/!OpenGL 3.2/layered-rendering/clear-depth".
>
> Cc: "10.0" <mesa-stable at lists.freedesktop.org>
> ---
>  src/mesa/drivers/dri/i965/brw_clear.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_clear.c b/src/mesa/drivers/dri/i965/brw_clear.c
> index a727e6e..95a6490 100644
> --- a/src/mesa/drivers/dri/i965/brw_clear.c
> +++ b/src/mesa/drivers/dri/i965/brw_clear.c
> @@ -181,8 +181,16 @@ brw_fast_clear_depth(struct gl_context *ctx)
>      */
>     intel_batchbuffer_emit_mi_flush(brw);
>
> -   intel_hiz_exec(brw, mt, depth_irb->mt_level, depth_irb->mt_layer,
> -                 GEN6_HIZ_OP_DEPTH_CLEAR);
> +   if (fb->NumLayers > 0) {
> +      assert(fb->NumLayers == depth_irb->mt->level[depth_irb->mt_level].depth);
> +      for (unsigned layer = 0; layer < fb->NumLayers; layer++) {
> +         intel_hiz_exec(brw, mt, depth_irb->mt_level, layer,
> +                        GEN6_HIZ_OP_DEPTH_CLEAR);
> +      }
> +   } else {
> +      intel_hiz_exec(brw, mt, depth_irb->mt_level, depth_irb->mt_layer,
> +                     GEN6_HIZ_OP_DEPTH_CLEAR);
> +   }
>
>     if (brw->gen == 6) {
>        /* From the Sandy Bridge PRM, volume 2 part 1, page 314:
> --
> 1.8.4.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list