Module: Mesa
Branch: 10.1
Commit: f7b949723a1ebcc04a57f8ca5b52d340ffc04d84
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f7b949723a1ebcc04a57f8ca5b52d340ffc04d84

Author: Kenneth Graunke <[email protected]>
Date:   Wed May  7 14:35:43 2014 -0700

i965: Fix depth (array slices) computation for 1D_ARRAY render targets.

1D array targets store the number of slices in the Height field.

Fixes Piglit's spec/!OpenGL 3.2/layered-rendering/clear-color-all-types
1d_array single_level, at least when used with Meta clears.

Cc: "10.2 10.1 10.0" <[email protected]>
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
(cherry picked from commit e6967270c75a5b669152127bb7a746d55f4407a6)

---

 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c |    2 ++
 src/mesa/drivers/dri/i965/gen8_surface_state.c    |    3 +++
 2 files changed, 5 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c 
b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
index 12d0fa9..dad3b0c 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
@@ -452,6 +452,8 @@ gen7_update_renderbuffer_surface(struct brw_context *brw,
    const uint8_t mocs = GEN7_MOCS_L3;
    GLenum gl_target = rb->TexImage ?
                          rb->TexImage->TexObject->Target : GL_TEXTURE_2D;
+   if (gl_target == GL_TEXTURE_1D_ARRAY)
+      depth = MAX2(rb->Height, 1);
 
    uint32_t surf_index =
       brw->wm.prog_data->binding_table.render_target_start + unit;
diff --git a/src/mesa/drivers/dri/i965/gen8_surface_state.c 
b/src/mesa/drivers/dri/i965/gen8_surface_state.c
index 22ffa78..efadb0d 100644
--- a/src/mesa/drivers/dri/i965/gen8_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_surface_state.c
@@ -266,6 +266,9 @@ gen8_update_renderbuffer_surface(struct brw_context *brw,
    GLenum gl_target =
       rb->TexImage ? rb->TexImage->TexObject->Target : GL_TEXTURE_2D;
 
+   if (gl_target == GL_TEXTURE_1D_ARRAY)
+      depth = MAX2(rb->Height, 1);
+
    uint32_t surf_index =
       brw->wm.prog_data->binding_table.render_target_start + unit;
 

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to