зеркало из https://github.com/AvaloniaUI/angle.git
Vulkan: Disable restartRenderPassAfterLoadOpClear workaround
This workaround was added due to qualcomm driver bug b/129281932. But this has been fixed with recent drivers. Removing the WR here so that it will not negatively affect performance. Bug: angleproject:4344 Change-Id: Iea2ec86082a0ced64bfe843bf916c6bdb2aea60b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029210 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com>
This commit is contained in:
Родитель
e580ca8b5c
Коммит
71153201dc
|
@ -146,13 +146,6 @@ struct FeaturesVk : FeatureSetBase
|
|||
"disable_fifo_present_mode", FeatureCategory::VulkanWorkarounds,
|
||||
"VK_PRESENT_MODE_FIFO_KHR causes random timeouts", &members, "http://anglebug.com/3153"};
|
||||
|
||||
// On Qualcomm, a bug is preventing us from using loadOp=Clear with inline commands in the
|
||||
// render pass. http://anglebug.com/2361
|
||||
Feature restartRenderPassAfterLoadOpClear = {
|
||||
"restart_render_pass_after_load_op_clear", FeatureCategory::VulkanWorkarounds,
|
||||
"A bug is preventing us from using loadOp=Clear with inline commands in the render pass",
|
||||
&members, "http://anglebug.com/2361"};
|
||||
|
||||
// On Qualcomm, gaps in bound descriptor set indices causes the post-gap sets to misbehave.
|
||||
// For example, binding only descriptor set 3 results in zero being read from a uniform buffer
|
||||
// object within that set. This flag results in empty descriptor sets being bound for any
|
||||
|
|
|
@ -296,16 +296,6 @@ angle::Result FramebufferVk::clearImpl(const gl::Context *context,
|
|||
contextVk, scissoredRenderArea, clearBuffersWithRenderPassLoadOp, clearDepth,
|
||||
clearStencilWithRenderPassLoadOp, clearColorValue, modifiedDepthStencilValue));
|
||||
|
||||
// On some hardware, having inline commands at this point results in corrupted output. In
|
||||
// that case, end the render pass immediately. http://anglebug.com/2361
|
||||
if (contextVk->getRenderer()->getFeatures().restartRenderPassAfterLoadOpClear.enabled)
|
||||
{
|
||||
if (contextVk->commandGraphEnabled())
|
||||
{
|
||||
mFramebuffer.finishCurrentCommands(contextVk);
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback to other methods for whatever isn't cleared here.
|
||||
clearDepth = false;
|
||||
if (clearColorWithRenderPassLoadOp)
|
||||
|
|
|
@ -1521,9 +1521,6 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames)
|
|||
|
||||
ANGLE_FEATURE_CONDITION((&mFeatures), disableFifoPresentMode, IsLinux() && isIntel);
|
||||
|
||||
ANGLE_FEATURE_CONDITION((&mFeatures), restartRenderPassAfterLoadOpClear,
|
||||
IsAndroid() && isQualcomm && vk::CommandBuffer::ExecutesInline());
|
||||
|
||||
ANGLE_FEATURE_CONDITION((&mFeatures), bindEmptyForUnusedDescriptorSets,
|
||||
IsAndroid() && isQualcomm);
|
||||
|
||||
|
|
|
@ -314,6 +314,16 @@
|
|||
3306 VULKAN ANDROID : dEQP-GLES2.functional.polygon_offset.default_factor_1_slope = FAIL
|
||||
3306 VULKAN ANDROID : dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope = FAIL
|
||||
|
||||
// Failing on the Pixel 2 due to Qualcomm Vulkan driver
|
||||
4344 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.1 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.30 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.35 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.38 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.60 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.62 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.random.62 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES2.functional.fragment_ops.random.78 = FAIL
|
||||
|
||||
// These tests also fail on AMD windows driver as it is not allowed to use emulation due to errors.
|
||||
3243 VULKAN WIN AMD : dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod = FAIL
|
||||
3243 VULKAN WIN AMD : dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest = FAIL
|
||||
|
|
|
@ -586,6 +586,14 @@
|
|||
3816 VULKAN PIXEL2ORXL : dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16* = FAIL
|
||||
3816 VULKAN PIXEL2ORXL : dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32* = FAIL
|
||||
|
||||
// Failing on the Pixel 2 due to Qualcomm Vulkan driver
|
||||
4344 VULKAN ANDROID : dEQP-GLES3.functional.fragment_ops.interaction.basic_shader.54 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES3.functional.fragment_ops.random.35 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES3.functional.fragment_ops.random.56 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES3.functional.fragment_ops.random.62 = FAIL
|
||||
4344 VULKAN ANDROID : dEQP-GLES3.functional.fragment_ops.random.68 = FAIL
|
||||
|
||||
|
||||
// Fails only with SwiftShader:
|
||||
|
||||
// These only fail for a 565 config
|
||||
|
|
Загрузка…
Ссылка в новой задаче