mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 22:00:13 +01:00
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:
parent
1108db982e
commit
2a540877d1
3 changed files with 10 additions and 6 deletions
|
|
@ -362,8 +362,7 @@ clear_color(struct crocus_context *ice,
|
||||||
|
|
||||||
bool color_write_disable[4] = { false, false, false, false };
|
bool color_write_disable[4] = { false, false, false, false };
|
||||||
enum isl_aux_usage aux_usage =
|
enum isl_aux_usage aux_usage =
|
||||||
crocus_resource_render_aux_usage(ice, res, format,
|
crocus_resource_render_aux_usage(ice, res, level, format, false);
|
||||||
false, false);
|
|
||||||
|
|
||||||
crocus_resource_prepare_render(ice, res, level,
|
crocus_resource_prepare_render(ice, res, level,
|
||||||
box->z, box->depth, aux_usage);
|
box->z, box->depth, aux_usage);
|
||||||
|
|
|
||||||
|
|
@ -279,8 +279,8 @@ crocus_predraw_resolve_framebuffer(struct crocus_context *ice,
|
||||||
crocus_update_align_res(batch, surf, true);
|
crocus_update_align_res(batch, surf, true);
|
||||||
|
|
||||||
enum isl_aux_usage aux_usage =
|
enum isl_aux_usage aux_usage =
|
||||||
crocus_resource_render_aux_usage(ice, res, surf->view.format,
|
crocus_resource_render_aux_usage(ice, res, surf->view.base_level,
|
||||||
ice->state.blend_enables & (1u << i),
|
surf->view.format,
|
||||||
draw_aux_buffer_disabled[i]);
|
draw_aux_buffer_disabled[i]);
|
||||||
|
|
||||||
if (ice->state.draw_aux_usage[i] != aux_usage) {
|
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
|
enum isl_aux_usage
|
||||||
crocus_resource_render_aux_usage(struct crocus_context *ice,
|
crocus_resource_render_aux_usage(struct crocus_context *ice,
|
||||||
struct crocus_resource *res,
|
struct crocus_resource *res,
|
||||||
|
uint32_t level,
|
||||||
enum isl_format render_format,
|
enum isl_format render_format,
|
||||||
bool blend_enabled,
|
|
||||||
bool draw_aux_disabled)
|
bool draw_aux_disabled)
|
||||||
{
|
{
|
||||||
struct crocus_screen *screen = (void *) ice->ctx.screen;
|
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;
|
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:
|
default:
|
||||||
return ISL_AUX_USAGE_NONE;
|
return ISL_AUX_USAGE_NONE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
enum isl_aux_usage crocus_resource_render_aux_usage(struct crocus_context *ice,
|
||||||
struct crocus_resource *res,
|
struct crocus_resource *res,
|
||||||
|
uint32_t level,
|
||||||
enum isl_format render_fmt,
|
enum isl_format render_fmt,
|
||||||
bool blend_enabled,
|
|
||||||
bool draw_aux_disabled);
|
bool draw_aux_disabled);
|
||||||
void crocus_resource_prepare_render(struct crocus_context *ice,
|
void crocus_resource_prepare_render(struct crocus_context *ice,
|
||||||
struct crocus_resource *res, uint32_t level,
|
struct crocus_resource *res, uint32_t level,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue