diff options
-rw-r--r-- | src/gallium/drivers/ilo/ilo_blit.c | 11 | ||||
-rw-r--r-- | src/gallium/drivers/ilo/ilo_layout.c | 7 | ||||
-rw-r--r-- | src/gallium/drivers/ilo/ilo_layout.h | 2 |
3 files changed, 12 insertions, 8 deletions
diff --git a/src/gallium/drivers/ilo/ilo_blit.c b/src/gallium/drivers/ilo/ilo_blit.c index ad6aa801602..42072c2fed0 100644 --- a/src/gallium/drivers/ilo/ilo_blit.c +++ b/src/gallium/drivers/ilo/ilo_blit.c @@ -190,8 +190,9 @@ ilo_blit_resolve_slices_for_hiz(struct ilo_context *ilo, assert(!(resolve_flags & (other_writers | any_reader))); if (!(resolve_flags & ILO_TEXTURE_CLEAR)) { + const uint32_t first_clear_value = ilo_texture_get_slice(tex, + level, first_slice)->clear_value; bool set_clear_value = false; - uint32_t first_clear_value; for (i = 0; i < num_slices; i++) { const struct ilo_texture_slice *slice = @@ -200,12 +201,8 @@ ilo_blit_resolve_slices_for_hiz(struct ilo_context *ilo, if (slice->flags & other_writers) { ilo_blitter_rectlist_resolve_hiz(ilo->blitter, res, level, first_slice + i); - } - else if (i == 0) { - first_clear_value = slice->clear_value; - } - else if (slice->clear_value != first_clear_value && - (slice->flags & ILO_TEXTURE_RENDER_WRITE)) { + } else if (slice->clear_value != first_clear_value && + (slice->flags & ILO_TEXTURE_RENDER_WRITE)) { ilo_blitter_rectlist_resolve_z(ilo->blitter, res, level, first_slice + i); set_clear_value = true; diff --git a/src/gallium/drivers/ilo/ilo_layout.c b/src/gallium/drivers/ilo/ilo_layout.c index 73db7969bdb..881550bd9f2 100644 --- a/src/gallium/drivers/ilo/ilo_layout.c +++ b/src/gallium/drivers/ilo/ilo_layout.c @@ -656,7 +656,7 @@ layout_init_size_and_format(struct ilo_layout *layout, { const struct pipe_resource *templ = params->templ; enum pipe_format format = templ->format; - bool require_separate_stencil; + bool require_separate_stencil = false; layout->width0 = templ->width0; layout->height0 = templ->height0; @@ -1101,6 +1101,11 @@ layout_calculate_hiz_size(struct ilo_layout *layout, } hz_height /= 2; break; + default: + assert(!"unknown HiZ walk"); + hz_width = 0; + hz_height = 0; + break; } /* diff --git a/src/gallium/drivers/ilo/ilo_layout.h b/src/gallium/drivers/ilo/ilo_layout.h index 9aa2ae90b75..54ba2d8fc4b 100644 --- a/src/gallium/drivers/ilo/ilo_layout.h +++ b/src/gallium/drivers/ilo/ilo_layout.h @@ -282,6 +282,8 @@ ilo_layout_get_slice_pos(const struct ilo_layout *layout, } default: assert(!"unknown layout walk type"); + *x = 0; + *y = 0; break; } |