diff options
author | Kenneth Graunke <[email protected]> | 2014-05-07 14:35:43 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2014-05-07 23:42:11 -0700 |
commit | e6967270c75a5b669152127bb7a746d55f4407a6 (patch) | |
tree | 34dcfa1f7582ded369bd181e542a210b03d22ac1 /src/mesa | |
parent | 5c399ca8e4ccae509a5116b3b9f41634a7ca4322 (diff) |
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]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/gen8_surface_state.c | 3 |
2 files changed, 5 insertions, 0 deletions
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 d71a1d15656..f051024b1ab 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 d52b32ecd87..fac8403142a 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; |