Commit 46fe0e4b by Jonah Ryan-Davis Committed by Commit Bot

Cleanup Features headers.

Cleanup redundant angle:: prefix in Features headers. Cleanup workaround descriptions. Bug: angleproject:1621 Change-Id: I4325d3603877efee9c6a035cd5b5bbbbc4f5c169 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1625609Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
parent 69d04939
......@@ -14,7 +14,7 @@
namespace angle
{
struct FeaturesVk : angle::FeatureSetBase
struct FeaturesVk : FeatureSetBase
{
FeaturesVk();
~FeaturesVk();
......@@ -23,8 +23,8 @@ struct FeaturesVk : angle::FeatureSetBase
// to Bresenham's. Vulkan uses a different algorithm. This feature enables the use of pixel
// shader patching to implement OpenGL basic line rasterization rules. This feature will
// normally always be enabled. Exposing it as an option enables performance testing.
angle::Feature basicGLLineRasterization = {
"basic_gl_line_rasterization", angle::FeatureCategory::VulkanFeatures,
Feature basicGLLineRasterization = {
"basic_gl_line_rasterization", FeatureCategory::VulkanFeatures,
"Enable the use of pixel shader patching to implement OpenGL basic line "
"rasterization rules",
&members};
......@@ -42,13 +42,13 @@ struct FeaturesVk : angle::FeatureSetBase
// -generating mipmaps
// -Point sprites tests
// -texStorage
angle::Feature flipViewportY = {"flip_viewport_y", angle::FeatureCategory::VulkanFeatures,
Feature flipViewportY = {"flip_viewport_y", FeatureCategory::VulkanFeatures,
"Flips the viewport to render upside-down", &members};
// Add an extra copy region when using vkCmdCopyBuffer as the Windows Intel driver seems
// to have a bug where the last region is ignored.
angle::Feature extraCopyBufferRegion = {
"extra_copy_buffer_region", angle::FeatureCategory::VulkanWorkarounds,
Feature extraCopyBufferRegion = {
"extra_copy_buffer_region", FeatureCategory::VulkanWorkarounds,
"Windows Intel driver seems to have a bug where the last copy region in "
"vkCmdCopyBuffer is ignored",
&members};
......@@ -56,72 +56,71 @@ struct FeaturesVk : angle::FeatureSetBase
// This flag is added for the sole purpose of end2end tests, to test the correctness
// of various algorithms when a fallback format is used, such as using a packed format to
// emulate a depth- or stencil-only format.
angle::Feature forceFallbackFormat = {
"force_fallback_format", angle::FeatureCategory::VulkanWorkarounds,
Feature forceFallbackFormat = {"force_fallback_format", FeatureCategory::VulkanWorkarounds,
"Force a fallback format for angle_end2end_tests", &members};
// On some NVIDIA drivers the point size range reported from the API is inconsistent with the
// actual behavior. Clamp the point size to the value from the API to fix this.
// Tracked in http://anglebug.com/2970.
angle::Feature clampPointSize = {
"clamp_point_size", angle::FeatureCategory::VulkanWorkarounds,
"On some NVIDIA drivers the point size range reported from the API is "
Feature clampPointSize = {
"clamp_point_size", FeatureCategory::VulkanWorkarounds,
"On some NVIDIA drivers, the point size range reported from the API is "
"inconsistent with the actual behavior",
&members, "http://anglebug.com/2970"};
// On some android devices, the memory barrier between the compute shader that converts vertex
// attributes and the vertex shader that reads from it is ineffective. Only known workaround is
// to perform a flush after the conversion. http://anglebug.com/3016
angle::Feature flushAfterVertexConversion = {
"flush_after_vertex_conversion", angle::FeatureCategory::VulkanWorkarounds,
Feature flushAfterVertexConversion = {
"flush_after_vertex_conversion", FeatureCategory::VulkanWorkarounds,
"On some android devices, the memory barrier between the compute shader that converts "
"vertex attributes and the vertex shader that reads from it is ineffective",
&members, "http://anglebug.com/3016"};
// Whether the VkDevice supports the VK_KHR_incremental_present extension, on which the
// EGL_KHR_swap_buffers_with_damage extension can be layered.
angle::Feature supportsIncrementalPresent = {
"supports_incremental_present", angle::FeatureCategory::VulkanFeatures,
Feature supportsIncrementalPresent = {
"supports_incremental_present", FeatureCategory::VulkanFeatures,
"VkDevice supports the VK_KHR_incremental_present extension", &members};
// Whether texture copies on cube map targets should be done on GPU. This is a workaround for
// Intel drivers on windows that have an issue with creating single-layer views on cube map
// textures.
angle::Feature forceCpuPathForCubeMapCopy = {
"force_cpu_path_for_cube_map_copy", angle::FeatureCategory::VulkanWorkarounds,
Feature forceCpuPathForCubeMapCopy = {
"force_cpu_path_for_cube_map_copy", FeatureCategory::VulkanWorkarounds,
"Some Intel Windows drivers have an issue with creating single-layer "
"views on cube map textures",
&members};
// Whether the VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer
// extension, on which the EGL_ANDROID_image_native_buffer extension can be layered.
angle::Feature supportsAndroidHardwareBuffer = {
"supports_android_hardware_buffer", angle::FeatureCategory::VulkanFeatures,
Feature supportsAndroidHardwareBuffer = {
"supports_android_hardware_buffer", FeatureCategory::VulkanFeatures,
"VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension",
&members};
// Whether the VkDevice supports the VK_KHR_external_memory_fd extension, on which the
// GL_EXT_memory_object_fd extension can be layered.
angle::Feature supportsExternalMemoryFd = {
"supports_external_memory_fd", angle::FeatureCategory::VulkanFeatures,
Feature supportsExternalMemoryFd = {
"supports_external_memory_fd", FeatureCategory::VulkanFeatures,
"VkDevice supports the VK_KHR_external_memory_fd extension", &members};
// Whether the VkDevice supports the VK_KHR_external_semaphore_fd extension, on which the
// GL_EXT_semaphore_fd extension can be layered.
angle::Feature supportsExternalSemaphoreFd = {
"supports_external_semaphore_fd", angle::FeatureCategory::VulkanFeatures,
Feature supportsExternalSemaphoreFd = {
"supports_external_semaphore_fd", FeatureCategory::VulkanFeatures,
"VkDevice supports the VK_KHR_external_semaphore_fd extension", &members};
// VK_PRESENT_MODE_FIFO_KHR causes random timeouts on Linux Intel. http://anglebug.com/3153
angle::Feature disableFifoPresentMode = {
"disable_fifo_present_mode", angle::FeatureCategory::VulkanWorkarounds,
Feature disableFifoPresentMode = {
"disable_fifo_present_mode", FeatureCategory::VulkanWorkarounds,
"On Linux Intel, 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
angle::Feature restartRenderPassAfterLoadOpClear = {
"restart_render_pass_after_load_op_clear", angle::FeatureCategory::VulkanWorkarounds,
Feature restartRenderPassAfterLoadOpClear = {
"restart_render_pass_after_load_op_clear", FeatureCategory::VulkanWorkarounds,
"On Qualcomm, a bug is preventing us from using loadOp=Clear with inline "
"commands in the render pass",
&members, "http://anglebug.com/2361"};
......@@ -130,16 +129,16 @@ struct FeaturesVk : angle::FeatureSetBase
// 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
// unused descriptor set to work around this issue. http://anglebug.com/2727
angle::Feature bindEmptyForUnusedDescriptorSets = {
"bind_empty_for_unused_descriptor_sets", angle::FeatureCategory::VulkanWorkarounds,
"On Qualcomm,gaps in bound descriptor set indices causes the post-gap sets to misbehave",
Feature bindEmptyForUnusedDescriptorSets = {
"bind_empty_for_unused_descriptor_sets", FeatureCategory::VulkanWorkarounds,
"On Qualcomm, gaps in bound descriptor set indices causes the post-gap sets to misbehave",
&members, "http://anglebug.com/2727"};
// When the scissor is (0,0,0,0) on Windows Intel, the driver acts as if the scissor was
// disabled. Work-around this by setting the scissor to just outside of the render area
// (e.g. (renderArea.x, renderArea.y, 1, 1)). http://anglebug.com/3153
angle::Feature forceNonZeroScissor = {
"force_non_zero_scissor", angle::FeatureCategory::VulkanWorkarounds,
Feature forceNonZeroScissor = {
"force_non_zero_scissor", FeatureCategory::VulkanWorkarounds,
"On Windows Intel, when the scissor is (0,0,0,0), the driver acts as if the "
"scissor was disabled",
&members, "http://anglebug.com/3153"};
......@@ -149,8 +148,7 @@ struct FeaturesVk : angle::FeatureSetBase
// (e.g. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT) and some devices
// do not. Work-around this by setting saying D16_UNORM supports filtering
// anyway.
angle::Feature forceD16TexFilter = {
"force_D16_texture_filter", angle::FeatureCategory::VulkanWorkarounds,
Feature forceD16TexFilter = {"force_D16_texture_filter", FeatureCategory::VulkanWorkarounds,
"On some Android devices, VK_FORMAT_D16_UNORM does not support "
"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, "
"which prevents OES_depth_texture from being supported.",
......
......@@ -44,7 +44,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
angle::Feature doesSRGBClearsOnLinearFramebufferAttachments = {
"does_srgb_clears_on_linear_framebuffer_attachments",
angle::FeatureCategory::OpenGLWorkarounds,
"Issue clearing framebuffers with linear attachments on Indel or AMD "
"Issue clearing framebuffers with linear attachments on Intel or AMD "
"drivers when GL_FRAMEBUFFER_SRGB is enabled",
&members};
......@@ -57,7 +57,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
// Work around this by rewriting the do-while to use another GLSL construct (block + while)
angle::Feature doWhileGLSLCausesGPUHang = {
"do_while_glsl_causes_gpu_hang", angle::FeatureCategory::OpenGLWorkarounds,
"On Mac some GLSL constructs involving do-while loops cause GPU hangs", &members};
"On Mac, some GLSL constructs involving do-while loops cause GPU hangs", &members};
// Calling glFinish doesn't cause all queries to report that the result is available on some
// (NVIDIA) drivers. It was found that enabling GL_DEBUG_OUTPUT_SYNCHRONOUS before the finish
......@@ -98,7 +98,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
// Emulate abs(i) with i * sign(i).
angle::Feature emulateAbsIntFunction = {
"emulate_abs_int_function", angle::FeatureCategory::OpenGLWorkarounds,
"On Intel mac, abs(i) where i is an integer returns unexpected result", &members};
"On Intel Mac, abs(i) where i is an integer returns unexpected result", &members};
// On Intel Mac, calculation of loop conditions in for and while loop has bug.
// Add "&& true" to the end of the condition expression to work around the bug.
......@@ -144,7 +144,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
angle::Feature useUnusedBlocksWithStandardOrSharedLayout = {
"use_unused_blocks_with_standard_or_shared_layout",
angle::FeatureCategory::OpenGLWorkarounds,
"On Mac with OpenGL version 4.1, unused std140 or shared uniform blocks "
"On Mac with OpenGL version 4.1 and Linux AMD, unused std140 or shared uniform blocks "
"will be treated as inactive",
&members};
......@@ -264,7 +264,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
// platforms.
// http://anglebug.com/3045
angle::Feature dontRelinkProgramsInParallel = {
"query_counter_bits_generates_errors", angle::FeatureCategory::OpenGLWorkarounds,
"dont_relink_programs_in_parallel", angle::FeatureCategory::OpenGLWorkarounds,
"On some Intel Windows OpenGL drivers and Android, relinking a program "
"in parallel is buggy",
&members, "http://anglebug.com/3045"};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment