anv/blorp/clear_subpass: Only set surface clear color for fast clears
Not all clear colors are valid. In particular, on Broadwell and earlier, only 0/1 colors are allowed in surface state. No CTS tests are affected outright by this because, apparently, the CTS coverage for different clear colors is pretty terrible. However, when multisample compression is enabled, we do hit it with CTS tests and this commit prevents regressions when enabling MCS on Broadwell and earlier. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: "13.0 17.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
042cc201f2
commit
42b10b175d
|
@ -1198,9 +1198,10 @@ anv_cmd_buffer_clear_subpass(struct anv_cmd_buffer *cmd_buffer)
|
||||||
struct blorp_surf surf;
|
struct blorp_surf surf;
|
||||||
get_blorp_surf_for_anv_image(image, VK_IMAGE_ASPECT_COLOR_BIT,
|
get_blorp_surf_for_anv_image(image, VK_IMAGE_ASPECT_COLOR_BIT,
|
||||||
att_state->aux_usage, &surf);
|
att_state->aux_usage, &surf);
|
||||||
surf.clear_color = vk_to_isl_color(att_state->clear_value.color);
|
|
||||||
|
|
||||||
if (att_state->fast_clear) {
|
if (att_state->fast_clear) {
|
||||||
|
surf.clear_color = vk_to_isl_color(att_state->clear_value.color);
|
||||||
|
|
||||||
blorp_fast_clear(&batch, &surf, iview->isl.format,
|
blorp_fast_clear(&batch, &surf, iview->isl.format,
|
||||||
iview->isl.base_level,
|
iview->isl.base_level,
|
||||||
iview->isl.base_array_layer, fb->layers,
|
iview->isl.base_array_layer, fb->layers,
|
||||||
|
@ -1224,7 +1225,7 @@ anv_cmd_buffer_clear_subpass(struct anv_cmd_buffer *cmd_buffer)
|
||||||
render_area.offset.x, render_area.offset.y,
|
render_area.offset.x, render_area.offset.y,
|
||||||
render_area.offset.x + render_area.extent.width,
|
render_area.offset.x + render_area.extent.width,
|
||||||
render_area.offset.y + render_area.extent.height,
|
render_area.offset.y + render_area.extent.height,
|
||||||
surf.clear_color, NULL);
|
vk_to_isl_color(att_state->clear_value.color), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
att_state->pending_clear_aspects = 0;
|
att_state->pending_clear_aspects = 0;
|
||||||
|
|
Loading…
Reference in New Issue