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:
Charlie Lao 2020-01-29 14:42:30 -08:00 коммит произвёл Commit Bot
Родитель e580ca8b5c
Коммит 71153201dc
5 изменённых файлов: 18 добавлений и 20 удалений

Просмотреть файл

@ -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