https://chromium.googlesource.com/angle/angle/+/4a2446c6b440b45f41294a434b930f9085f57285commit 4a2446c6b440b45f41294a434b930f9085f57285
Author: Jamie Madill <
jma...@chromium.org>
Date: Tue Oct 19 15:55:17 2021
Vulkan: Implement robust shader outputs.
In this CL we change ANGLE to pass the mask of missing shader
outputs down to pipeline creation. We then use the color mask
bits to block SwiftShader writing to unused outputs.
This fixes the undefined behaviour present in Genshin Impact.
Note that the other GLES implementations we tested don't seem
to modify outputs even if they're unused.
It was easier to mask out the color attachments in initialize
rather than set up the pipeline desc to mask out the attachments.
This was because we manipulate the color mask in a fairly complex
way before we initialize the pipeline desc.
Bug: angleproject:6566
Change-Id: Ie659fcd511cd286fa573fd25e3e6a0b9e123ebd6
Reviewed-on:
https://chromium-review.googlesource.com/c/angle/angle/+/3232435Commit-Queue: Shahbaz Youssefi <
syou...@chromium.org>
Reviewed-by: Shahbaz Youssefi <
syou...@chromium.org>