diff --git a/src/gallium/drivers/crocus/crocus_clear.c b/src/gallium/drivers/crocus/crocus_clear.c index 1c56e23f794..8ea21d9d227 100644 --- a/src/gallium/drivers/crocus/crocus_clear.c +++ b/src/gallium/drivers/crocus/crocus_clear.c @@ -362,8 +362,7 @@ clear_color(struct crocus_context *ice, bool color_write_disable[4] = { false, false, false, false }; enum isl_aux_usage aux_usage = - crocus_resource_render_aux_usage(ice, res, format, - false, false); + crocus_resource_render_aux_usage(ice, res, level, format, false); crocus_resource_prepare_render(ice, res, level, box->z, box->depth, aux_usage); diff --git a/src/gallium/drivers/crocus/crocus_resolve.c b/src/gallium/drivers/crocus/crocus_resolve.c index a38eb4a94a7..ae9334a0b5f 100644 --- a/src/gallium/drivers/crocus/crocus_resolve.c +++ b/src/gallium/drivers/crocus/crocus_resolve.c @@ -279,8 +279,8 @@ crocus_predraw_resolve_framebuffer(struct crocus_context *ice, crocus_update_align_res(batch, surf, true); enum isl_aux_usage aux_usage = - crocus_resource_render_aux_usage(ice, res, surf->view.format, - ice->state.blend_enables & (1u << i), + crocus_resource_render_aux_usage(ice, res, surf->view.base_level, + surf->view.format, draw_aux_buffer_disabled[i]); if (ice->state.draw_aux_usage[i] != aux_usage) { @@ -984,8 +984,8 @@ crocus_resource_prepare_texture(struct crocus_context *ice, enum isl_aux_usage crocus_resource_render_aux_usage(struct crocus_context *ice, struct crocus_resource *res, + uint32_t level, enum isl_format render_format, - bool blend_enabled, bool draw_aux_disabled) { struct crocus_screen *screen = (void *) ice->ctx.screen; @@ -1005,6 +1005,11 @@ crocus_resource_render_aux_usage(struct crocus_context *ice, return ISL_AUX_USAGE_NONE; + case ISL_AUX_USAGE_HIZ: + assert(render_format == res->surf.format); + return crocus_resource_level_has_hiz(res, level) ? + res->aux.usage : ISL_AUX_USAGE_NONE; + default: return ISL_AUX_USAGE_NONE; } diff --git a/src/gallium/drivers/crocus/crocus_resource.h b/src/gallium/drivers/crocus/crocus_resource.h index 505bf0ad41e..725732cf109 100644 --- a/src/gallium/drivers/crocus/crocus_resource.h +++ b/src/gallium/drivers/crocus/crocus_resource.h @@ -497,8 +497,8 @@ bool crocus_has_color_unresolved(const struct crocus_resource *res, enum isl_aux_usage crocus_resource_render_aux_usage(struct crocus_context *ice, struct crocus_resource *res, + uint32_t level, enum isl_format render_fmt, - bool blend_enabled, bool draw_aux_disabled); void crocus_resource_prepare_render(struct crocus_context *ice, struct crocus_resource *res, uint32_t level,