>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-sta...@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..9c1c9a8 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->Layered) { + 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@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev