mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 03:00:11 +01:00
anv: use the color_map if present for calculating color_mask
If the FS has writes to multiple color outputs, but there are not enough color attachments for them all, we may optimize out the exceeding ones. With VK_KHR_dynamic_rendering_local_read, we were not respecting the mapping from output to attachment set by the application, and the wrong writes were getting eliminated. Fixes future CTS tests: dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.local_read.remap_single_attachment* Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37531>
This commit is contained in:
parent
66fcae5b1b
commit
186cd59cf2
4 changed files with 8 additions and 9 deletions
|
|
@ -1,2 +0,0 @@
|
||||||
# New failures with ES CTS 3.2.12.0
|
|
||||||
KHR-GLES3.framebuffer_blit.scissor_blit,Fail
|
|
||||||
|
|
@ -13,6 +13,3 @@ KHR-GLES31.core.texture_border_clamp.Texture2DDC16Linear,Fail
|
||||||
|
|
||||||
# new with ANGLE 2024-10-17
|
# new with ANGLE 2024-10-17
|
||||||
KHR-GLES31.core.blend_equation_advanced.test_coherency.multiplySequence,Fail
|
KHR-GLES31.core.blend_equation_advanced.test_coherency.multiplySequence,Fail
|
||||||
|
|
||||||
# New failures with ES CTS 3.2.12.0
|
|
||||||
KHR-GLES3.framebuffer_blit.scissor_blit,Fail
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
# New failures with ES CTS 3.2.12.0
|
|
||||||
KHR-GLES3.framebuffer_blit.scissor_blit,Fail
|
|
||||||
|
|
@ -395,8 +395,14 @@ rp_color_mask(const struct vk_graphics_pipeline_state *state)
|
||||||
|
|
||||||
uint32_t color_mask = 0;
|
uint32_t color_mask = 0;
|
||||||
for (uint32_t i = 0; i < state->rp->color_attachment_count; i++) {
|
for (uint32_t i = 0; i < state->rp->color_attachment_count; i++) {
|
||||||
if (state->rp->color_attachment_formats[i] != VK_FORMAT_UNDEFINED)
|
if (state->rp->color_attachment_formats[i] != VK_FORMAT_UNDEFINED) {
|
||||||
color_mask |= BITFIELD_BIT(i);
|
if (state->cal) {
|
||||||
|
if (state->cal->color_map[i] != MESA_VK_ATTACHMENT_UNUSED)
|
||||||
|
color_mask |= BITFIELD_BIT(state->cal->color_map[i]);
|
||||||
|
} else {
|
||||||
|
color_mask |= BITFIELD_BIT(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return color_mask;
|
return color_mask;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue