[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