Vulkan: Make advanced blend alpha div workaround permanent

This workaround turned out to affect pretty much every driver, and
numerous GL implementations were found to work around it similarly to
ANGLE.  It seems like this workaround may only be necessary for
colorburn and colordodge, but for now ANGLE applies it to all modes.

Bug: b/274528004
Bug: b/277777623
Change-Id: Id555c981a9775f949a3022b7e92c755accea7cea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4416158
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This commit is contained in:
Shahbaz Youssefi
2023-04-11 15:16:29 -04:00
committed by Angle LUCI CQ
parent 663b60b5fa
commit c26011b866
11 changed files with 21 additions and 64 deletions

View File

@@ -26,7 +26,7 @@
// Version number for shader translation API.
// It is incremented every time the API changes.
#define ANGLE_SH_VERSION 324
#define ANGLE_SH_VERSION 325
enum ShShaderSpec
{
@@ -405,9 +405,9 @@ struct ShCompileOptions
// ceil()ed instead.
uint64_t roundOutputAfterDithering : 1;
// Even when the dividend and divisor have the same value some platforms do not return 1.0f.
// Need to emit different division code for such platforms.
uint64_t precisionSafeDivision : 1;
// Unused. Kept to avoid unnecessarily changing the layout of this structure and tripping up
// the fuzzer's hash->bug map.
uint64_t unused2 : 1;
// anglebug.com/7527: packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4.
// TODO(anglebug.com/7527): This workaround is currently only applied for pixel local storage.

View File

@@ -627,14 +627,6 @@ struct FeaturesVk : FeatureSetBase
"emulateAdvancedBlendEquations", FeatureCategory::VulkanFeatures,
"Emulate GL_KHR_blend_equation_advanced", &members, "http://anglebug.com/3586"};
FeatureInfo precisionSafeDivision = {
"precisionSafeDivision",
FeatureCategory::VulkanWorkarounds,
"Special case handling for platforms that do not generate 1.0f even when the dividend and "
"divisor have the same value",
&members,
};
FeatureInfo doubleDepthBiasConstantFactor = {
"doubleDepthBiasConstantFactor",
FeatureCategory::VulkanWorkarounds,

View File

@@ -829,14 +829,6 @@
],
"issue": "http://anglebug.com/3586"
},
{
"name": "precision_safe_division",
"category": "Workarounds",
"description": [
"Special case handling for platforms that do not generate 1.0f even when the dividend and ",
"divisor have the same value"
]
},
{
"name": "double_depth_bias_constant_factor",
"category": "Workarounds",