crocus: fixup render aux usage function.

This got misaligned somewhere in development, should fix the
regressions vs i965 in tesseract as seen on phoronix benchmarks.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11409>
This commit is contained in:
Dave Airlie 2021-06-16 13:35:11 +10:00
parent 1108db982e
commit 2a540877d1
3 changed files with 10 additions and 6 deletions

View file

@ -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);

View file

@ -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;
}

View file

@ -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,