diff --git a/src/gallium/drivers/iris/iris_blit.c b/src/gallium/drivers/iris/iris_blit.c index 1043d4ab4ab..8eb2062a5df 100644 --- a/src/gallium/drivers/iris/iris_blit.c +++ b/src/gallium/drivers/iris/iris_blit.c @@ -516,7 +516,7 @@ iris_blit(struct pipe_context *ctx, const struct pipe_blit_info *info) &dst_res->base.b, dst_aux_usage, info->dst.level, true); - iris_resource_prepare_render(ice, dst_res, info->dst.level, + iris_resource_prepare_render(ice, dst_res, dst_fmt.fmt, info->dst.level, info->dst.box.z, info->dst.box.depth, dst_aux_usage); iris_emit_buffer_barrier_for(batch, dst_res->bo, @@ -580,9 +580,9 @@ get_copy_region_aux_settings(struct iris_context *ice, case ISL_AUX_USAGE_HIZ_CCS_WT: case ISL_AUX_USAGE_STC_CCS: if (is_dest) { - *out_aux_usage = iris_resource_render_aux_usage(ice, res, level, + *out_aux_usage = iris_resource_render_aux_usage(ice, res, res->surf.format, - false); + level, false); } else { *out_aux_usage = iris_resource_texture_aux_usage(ice, res, res->surf.format, diff --git a/src/gallium/drivers/iris/iris_clear.c b/src/gallium/drivers/iris/iris_clear.c index 589b7c12153..d9eb087982a 100644 --- a/src/gallium/drivers/iris/iris_clear.c +++ b/src/gallium/drivers/iris/iris_clear.c @@ -342,7 +342,7 @@ clear_color(struct iris_context *ice, enum isl_aux_usage aux_usage = iris_resource_render_aux_usage(ice, res, format, level, false); - iris_resource_prepare_render(ice, res, level, box->z, box->depth, + iris_resource_prepare_render(ice, res, format, level, box->z, box->depth, aux_usage); iris_emit_buffer_barrier_for(batch, res->bo, IRIS_DOMAIN_RENDER_WRITE); @@ -563,8 +563,8 @@ clear_depth_stencil(struct iris_context *ice, const enum isl_aux_usage aux_usage = iris_resource_render_aux_usage(ice, z_res, z_res->surf.format, level, false); - iris_resource_prepare_render(ice, z_res, level, box->z, box->depth, - aux_usage); + iris_resource_prepare_render(ice, z_res, z_res->surf.format, level, + box->z, box->depth, aux_usage); iris_emit_buffer_barrier_for(batch, z_res->bo, IRIS_DOMAIN_DEPTH_WRITE); iris_blorp_surf_for_resource(&batch->screen->isl_dev, &z_surf, &z_res->base.b, aux_usage, level, true); diff --git a/src/gallium/drivers/iris/iris_resolve.c b/src/gallium/drivers/iris/iris_resolve.c index d2642576392..179d1eacd44 100644 --- a/src/gallium/drivers/iris/iris_resolve.c +++ b/src/gallium/drivers/iris/iris_resolve.c @@ -213,7 +213,8 @@ iris_predraw_resolve_framebuffer(struct iris_context *ice, zs_surf->u.tex.last_layer - zs_surf->u.tex.first_layer + 1; if (z_res) { - iris_resource_prepare_render(ice, z_res, zs_surf->u.tex.level, + iris_resource_prepare_render(ice, z_res, z_res->surf.format, + zs_surf->u.tex.level, zs_surf->u.tex.first_layer, num_layers, ice->state.hiz_usage); iris_emit_buffer_barrier_for(batch, z_res->bo, @@ -261,7 +262,8 @@ iris_predraw_resolve_framebuffer(struct iris_context *ice, ice->state.stage_dirty |= IRIS_ALL_STAGE_DIRTY_BINDINGS; } - iris_resource_prepare_render(ice, res, surf->view.base_level, + iris_resource_prepare_render(ice, res, surf->view.format, + surf->view.base_level, surf->view.base_array_layer, surf->view.array_len, aux_usage); @@ -1245,7 +1247,8 @@ iris_resource_render_aux_usage(struct iris_context *ice, void iris_resource_prepare_render(struct iris_context *ice, - struct iris_resource *res, uint32_t level, + struct iris_resource *res, + enum isl_format render_format, uint32_t level, uint32_t start_layer, uint32_t layer_count, enum isl_aux_usage aux_usage) { diff --git a/src/gallium/drivers/iris/iris_resource.h b/src/gallium/drivers/iris/iris_resource.h index c6e34ad3b91..a845b8e3304 100644 --- a/src/gallium/drivers/iris/iris_resource.h +++ b/src/gallium/drivers/iris/iris_resource.h @@ -508,7 +508,8 @@ enum isl_aux_usage iris_resource_render_aux_usage(struct iris_context *ice, uint32_t level, bool draw_aux_disabled); void iris_resource_prepare_render(struct iris_context *ice, - struct iris_resource *res, uint32_t level, + struct iris_resource *res, + enum isl_format render_fmt, uint32_t level, uint32_t start_layer, uint32_t layer_count, enum isl_aux_usage aux_usage); void iris_resource_finish_render(struct iris_context *ice,