Mesa (master): i965: Fix depth (array slices) computation for 1D_ARRAY render targets.
Kenneth Graunke
kwg at kemper.freedesktop.org
Thu May 8 06:41:18 UTC 2014
Module: Mesa
Branch: master
Commit: e6967270c75a5b669152127bb7a746d55f4407a6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6967270c75a5b669152127bb7a746d55f4407a6
Author: Kenneth Graunke <kenneth at whitecape.org>
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" <mesa-stable at lists.freedesktop.org>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
---
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 d71a1d1..f051024 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
@@ -459,6 +459,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 d52b32e..fac8403 100644
--- a/src/mesa/drivers/dri/i965/gen8_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_surface_state.c
@@ -293,6 +293,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;
More information about the mesa-commit
mailing list