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 @@ ...@@ -14,7 +14,7 @@
namespace angle namespace angle
{ {
struct FeaturesVk : angle::FeatureSetBase struct FeaturesVk : FeatureSetBase
{ {
FeaturesVk(); FeaturesVk();
~FeaturesVk(); ~FeaturesVk();
...@@ -23,8 +23,8 @@ struct FeaturesVk : angle::FeatureSetBase ...@@ -23,8 +23,8 @@ struct FeaturesVk : angle::FeatureSetBase
// to Bresenham's. Vulkan uses a different algorithm. This feature enables the use of pixel // 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 // shader patching to implement OpenGL basic line rasterization rules. This feature will
// normally always be enabled. Exposing it as an option enables performance testing. // normally always be enabled. Exposing it as an option enables performance testing.
angle::Feature basicGLLineRasterization = { Feature basicGLLineRasterization = {
"basic_gl_line_rasterization", angle::FeatureCategory::VulkanFeatures, "basic_gl_line_rasterization", FeatureCategory::VulkanFeatures,
"Enable the use of pixel shader patching to implement OpenGL basic line " "Enable the use of pixel shader patching to implement OpenGL basic line "
"rasterization rules", "rasterization rules",
&members}; &members};
...@@ -42,13 +42,13 @@ struct FeaturesVk : angle::FeatureSetBase ...@@ -42,13 +42,13 @@ struct FeaturesVk : angle::FeatureSetBase
// -generating mipmaps // -generating mipmaps
// -Point sprites tests // -Point sprites tests
// -texStorage // -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}; "Flips the viewport to render upside-down", &members};
// Add an extra copy region when using vkCmdCopyBuffer as the Windows Intel driver seems // Add an extra copy region when using vkCmdCopyBuffer as the Windows Intel driver seems
// to have a bug where the last region is ignored. // to have a bug where the last region is ignored.
angle::Feature extraCopyBufferRegion = { Feature extraCopyBufferRegion = {
"extra_copy_buffer_region", angle::FeatureCategory::VulkanWorkarounds, "extra_copy_buffer_region", FeatureCategory::VulkanWorkarounds,
"Windows Intel driver seems to have a bug where the last copy region in " "Windows Intel driver seems to have a bug where the last copy region in "
"vkCmdCopyBuffer is ignored", "vkCmdCopyBuffer is ignored",
&members}; &members};
...@@ -56,72 +56,71 @@ struct FeaturesVk : angle::FeatureSetBase ...@@ -56,72 +56,71 @@ struct FeaturesVk : angle::FeatureSetBase
// This flag is added for the sole purpose of end2end tests, to test the correctness // 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 // of various algorithms when a fallback format is used, such as using a packed format to
// emulate a depth- or stencil-only format. // emulate a depth- or stencil-only format.
angle::Feature forceFallbackFormat = { Feature forceFallbackFormat = {"force_fallback_format", FeatureCategory::VulkanWorkarounds,
"force_fallback_format", angle::FeatureCategory::VulkanWorkarounds,
"Force a fallback format for angle_end2end_tests", &members}; "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 // 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. // actual behavior. Clamp the point size to the value from the API to fix this.
// Tracked in http://anglebug.com/2970. // Tracked in http://anglebug.com/2970.
angle::Feature clampPointSize = { Feature clampPointSize = {
"clamp_point_size", angle::FeatureCategory::VulkanWorkarounds, "clamp_point_size", FeatureCategory::VulkanWorkarounds,
"On some NVIDIA drivers the point size range reported from the API is " "On some NVIDIA drivers, the point size range reported from the API is "
"inconsistent with the actual behavior", "inconsistent with the actual behavior",
&members, "http://anglebug.com/2970"}; &members, "http://anglebug.com/2970"};
// On some android devices, the memory barrier between the compute shader that converts vertex // 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 // 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 // to perform a flush after the conversion. http://anglebug.com/3016
angle::Feature flushAfterVertexConversion = { Feature flushAfterVertexConversion = {
"flush_after_vertex_conversion", angle::FeatureCategory::VulkanWorkarounds, "flush_after_vertex_conversion", FeatureCategory::VulkanWorkarounds,
"On some android devices, the memory barrier between the compute shader that converts " "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", "vertex attributes and the vertex shader that reads from it is ineffective",
&members, "http://anglebug.com/3016"}; &members, "http://anglebug.com/3016"};
// Whether the VkDevice supports the VK_KHR_incremental_present extension, on which the // Whether the VkDevice supports the VK_KHR_incremental_present extension, on which the
// EGL_KHR_swap_buffers_with_damage extension can be layered. // EGL_KHR_swap_buffers_with_damage extension can be layered.
angle::Feature supportsIncrementalPresent = { Feature supportsIncrementalPresent = {
"supports_incremental_present", angle::FeatureCategory::VulkanFeatures, "supports_incremental_present", FeatureCategory::VulkanFeatures,
"VkDevice supports the VK_KHR_incremental_present extension", &members}; "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 // 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 // Intel drivers on windows that have an issue with creating single-layer views on cube map
// textures. // textures.
angle::Feature forceCpuPathForCubeMapCopy = { Feature forceCpuPathForCubeMapCopy = {
"force_cpu_path_for_cube_map_copy", angle::FeatureCategory::VulkanWorkarounds, "force_cpu_path_for_cube_map_copy", FeatureCategory::VulkanWorkarounds,
"Some Intel Windows drivers have an issue with creating single-layer " "Some Intel Windows drivers have an issue with creating single-layer "
"views on cube map textures", "views on cube map textures",
&members}; &members};
// Whether the VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer // 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. // extension, on which the EGL_ANDROID_image_native_buffer extension can be layered.
angle::Feature supportsAndroidHardwareBuffer = { Feature supportsAndroidHardwareBuffer = {
"supports_android_hardware_buffer", angle::FeatureCategory::VulkanFeatures, "supports_android_hardware_buffer", FeatureCategory::VulkanFeatures,
"VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension", "VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension",
&members}; &members};
// Whether the VkDevice supports the VK_KHR_external_memory_fd extension, on which the // Whether the VkDevice supports the VK_KHR_external_memory_fd extension, on which the
// GL_EXT_memory_object_fd extension can be layered. // GL_EXT_memory_object_fd extension can be layered.
angle::Feature supportsExternalMemoryFd = { Feature supportsExternalMemoryFd = {
"supports_external_memory_fd", angle::FeatureCategory::VulkanFeatures, "supports_external_memory_fd", FeatureCategory::VulkanFeatures,
"VkDevice supports the VK_KHR_external_memory_fd extension", &members}; "VkDevice supports the VK_KHR_external_memory_fd extension", &members};
// Whether the VkDevice supports the VK_KHR_external_semaphore_fd extension, on which the // Whether the VkDevice supports the VK_KHR_external_semaphore_fd extension, on which the
// GL_EXT_semaphore_fd extension can be layered. // GL_EXT_semaphore_fd extension can be layered.
angle::Feature supportsExternalSemaphoreFd = { Feature supportsExternalSemaphoreFd = {
"supports_external_semaphore_fd", angle::FeatureCategory::VulkanFeatures, "supports_external_semaphore_fd", FeatureCategory::VulkanFeatures,
"VkDevice supports the VK_KHR_external_semaphore_fd extension", &members}; "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 // VK_PRESENT_MODE_FIFO_KHR causes random timeouts on Linux Intel. http://anglebug.com/3153
angle::Feature disableFifoPresentMode = { Feature disableFifoPresentMode = {
"disable_fifo_present_mode", angle::FeatureCategory::VulkanWorkarounds, "disable_fifo_present_mode", FeatureCategory::VulkanWorkarounds,
"On Linux Intel, VK_PRESENT_MODE_FIFO_KHR causes random timeouts", &members, "On Linux Intel, VK_PRESENT_MODE_FIFO_KHR causes random timeouts", &members,
"http://anglebug.com/3153"}; "http://anglebug.com/3153"};
// On Qualcomm, a bug is preventing us from using loadOp=Clear with inline commands in the // On Qualcomm, a bug is preventing us from using loadOp=Clear with inline commands in the
// render pass. http://anglebug.com/2361 // render pass. http://anglebug.com/2361
angle::Feature restartRenderPassAfterLoadOpClear = { Feature restartRenderPassAfterLoadOpClear = {
"restart_render_pass_after_load_op_clear", angle::FeatureCategory::VulkanWorkarounds, "restart_render_pass_after_load_op_clear", FeatureCategory::VulkanWorkarounds,
"On Qualcomm, a bug is preventing us from using loadOp=Clear with inline " "On Qualcomm, a bug is preventing us from using loadOp=Clear with inline "
"commands in the render pass", "commands in the render pass",
&members, "http://anglebug.com/2361"}; &members, "http://anglebug.com/2361"};
...@@ -130,16 +129,16 @@ struct FeaturesVk : angle::FeatureSetBase ...@@ -130,16 +129,16 @@ struct FeaturesVk : angle::FeatureSetBase
// For example, binding only descriptor set 3 results in zero being read from a uniform buffer // 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 // 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 // unused descriptor set to work around this issue. http://anglebug.com/2727
angle::Feature bindEmptyForUnusedDescriptorSets = { Feature bindEmptyForUnusedDescriptorSets = {
"bind_empty_for_unused_descriptor_sets", angle::FeatureCategory::VulkanWorkarounds, "bind_empty_for_unused_descriptor_sets", FeatureCategory::VulkanWorkarounds,
"On Qualcomm,gaps in bound descriptor set indices causes the post-gap sets to misbehave", "On Qualcomm, gaps in bound descriptor set indices causes the post-gap sets to misbehave",
&members, "http://anglebug.com/2727"}; &members, "http://anglebug.com/2727"};
// When the scissor is (0,0,0,0) on Windows Intel, the driver acts as if the scissor was // 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 // 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 // (e.g. (renderArea.x, renderArea.y, 1, 1)). http://anglebug.com/3153
angle::Feature forceNonZeroScissor = { Feature forceNonZeroScissor = {
"force_non_zero_scissor", angle::FeatureCategory::VulkanWorkarounds, "force_non_zero_scissor", FeatureCategory::VulkanWorkarounds,
"On Windows Intel, when the scissor is (0,0,0,0), the driver acts as if the " "On Windows Intel, when the scissor is (0,0,0,0), the driver acts as if the "
"scissor was disabled", "scissor was disabled",
&members, "http://anglebug.com/3153"}; &members, "http://anglebug.com/3153"};
...@@ -149,8 +148,7 @@ struct FeaturesVk : angle::FeatureSetBase ...@@ -149,8 +148,7 @@ struct FeaturesVk : angle::FeatureSetBase
// (e.g. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT) and some devices // (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 // do not. Work-around this by setting saying D16_UNORM supports filtering
// anyway. // anyway.
angle::Feature forceD16TexFilter = { Feature forceD16TexFilter = {"force_D16_texture_filter", FeatureCategory::VulkanWorkarounds,
"force_D16_texture_filter", angle::FeatureCategory::VulkanWorkarounds,
"On some Android devices, VK_FORMAT_D16_UNORM does not support " "On some Android devices, VK_FORMAT_D16_UNORM does not support "
"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, " "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, "
"which prevents OES_depth_texture from being supported.", "which prevents OES_depth_texture from being supported.",
......
...@@ -44,7 +44,7 @@ struct WorkaroundsGL : angle::FeatureSetBase ...@@ -44,7 +44,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
angle::Feature doesSRGBClearsOnLinearFramebufferAttachments = { angle::Feature doesSRGBClearsOnLinearFramebufferAttachments = {
"does_srgb_clears_on_linear_framebuffer_attachments", "does_srgb_clears_on_linear_framebuffer_attachments",
angle::FeatureCategory::OpenGLWorkarounds, 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", "drivers when GL_FRAMEBUFFER_SRGB is enabled",
&members}; &members};
...@@ -57,7 +57,7 @@ struct WorkaroundsGL : angle::FeatureSetBase ...@@ -57,7 +57,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
// Work around this by rewriting the do-while to use another GLSL construct (block + while) // Work around this by rewriting the do-while to use another GLSL construct (block + while)
angle::Feature doWhileGLSLCausesGPUHang = { angle::Feature doWhileGLSLCausesGPUHang = {
"do_while_glsl_causes_gpu_hang", angle::FeatureCategory::OpenGLWorkarounds, "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 // 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 // (NVIDIA) drivers. It was found that enabling GL_DEBUG_OUTPUT_SYNCHRONOUS before the finish
...@@ -98,7 +98,7 @@ struct WorkaroundsGL : angle::FeatureSetBase ...@@ -98,7 +98,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
// Emulate abs(i) with i * sign(i). // Emulate abs(i) with i * sign(i).
angle::Feature emulateAbsIntFunction = { angle::Feature emulateAbsIntFunction = {
"emulate_abs_int_function", angle::FeatureCategory::OpenGLWorkarounds, "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. // 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. // Add "&& true" to the end of the condition expression to work around the bug.
...@@ -144,7 +144,7 @@ struct WorkaroundsGL : angle::FeatureSetBase ...@@ -144,7 +144,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
angle::Feature useUnusedBlocksWithStandardOrSharedLayout = { angle::Feature useUnusedBlocksWithStandardOrSharedLayout = {
"use_unused_blocks_with_standard_or_shared_layout", "use_unused_blocks_with_standard_or_shared_layout",
angle::FeatureCategory::OpenGLWorkarounds, 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", "will be treated as inactive",
&members}; &members};
...@@ -264,7 +264,7 @@ struct WorkaroundsGL : angle::FeatureSetBase ...@@ -264,7 +264,7 @@ struct WorkaroundsGL : angle::FeatureSetBase
// platforms. // platforms.
// http://anglebug.com/3045 // http://anglebug.com/3045
angle::Feature dontRelinkProgramsInParallel = { 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 " "On some Intel Windows OpenGL drivers and Android, relinking a program "
"in parallel is buggy", "in parallel is buggy",
&members, "http://anglebug.com/3045"}; &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