Commit ae1b7786 by Jonah Ryan-Davis Committed by Commit Bot

Fix ANGLE_FEATURE_CONDITION style issue

Macro should end with a ; Bug: angleproject:3976 Change-Id: I4aaa146464d9d7e6230a3de44c30cfd1179a89ae Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1864620 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 16944ed2
...@@ -13,9 +13,12 @@ ...@@ -13,9 +13,12 @@
#include <string> #include <string>
#include <vector> #include <vector>
#define ANGLE_FEATURE_CONDITION(set, feature, cond) \ #define ANGLE_FEATURE_CONDITION(set, feature, cond) \
set->feature.enabled = cond; \ do \
set->feature.condition = ANGLE_STRINGIFY(cond); { \
set->feature.enabled = cond; \
set->feature.condition = ANGLE_STRINGIFY(cond); \
} while (0)
namespace angle namespace angle
{ {
......
...@@ -1421,8 +1421,8 @@ void Display::initVendorString() ...@@ -1421,8 +1421,8 @@ void Display::initVendorString()
void Display::initializeFrontendFeatures() void Display::initializeFrontendFeatures()
{ {
// Enable on all Impls // Enable on all Impls
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), loseContextOnOutOfMemory, true) ANGLE_FEATURE_CONDITION((&mFrontendFeatures), loseContextOnOutOfMemory, true);
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), scalarizeVecAndMatConstructorArgs, true) ANGLE_FEATURE_CONDITION((&mFrontendFeatures), scalarizeVecAndMatConstructorArgs, true);
mImplementation->initializeFrontendFeatures(&mFrontendFeatures); mImplementation->initializeFrontendFeatures(&mFrontendFeatures);
......
...@@ -2418,47 +2418,47 @@ void InitializeFeatures(const Renderer11DeviceCaps &deviceCaps, ...@@ -2418,47 +2418,47 @@ void InitializeFeatures(const Renderer11DeviceCaps &deviceCaps,
// Disable the workaround to fix a second driver bug on newer NVIDIA. // Disable the workaround to fix a second driver bug on newer NVIDIA.
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
features, depthStencilBlitExtraCopy, features, depthStencilBlitExtraCopy,
(part1 <= 13u && part2 < 6881) && isNvidia && driverVersionValid) (part1 <= 13u && part2 < 6881) && isNvidia && driverVersionValid);
} }
else else
{ {
ANGLE_FEATURE_CONDITION(features, depthStencilBlitExtraCopy, ANGLE_FEATURE_CONDITION(features, depthStencilBlitExtraCopy,
isNvidia && !driverVersionValid) isNvidia && !driverVersionValid);
} }
} }
ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true) ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true);
ANGLE_FEATURE_CONDITION(features, zeroMaxLodWorkaround, isFeatureLevel9_3) ANGLE_FEATURE_CONDITION(features, zeroMaxLodWorkaround, isFeatureLevel9_3);
ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, isFeatureLevel9_3) ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, isFeatureLevel9_3);
// TODO(jmadill): Disable workaround when we have a fixed compiler DLL. // TODO(jmadill): Disable workaround when we have a fixed compiler DLL.
ANGLE_FEATURE_CONDITION(features, expandIntegerPowExpressions, true) ANGLE_FEATURE_CONDITION(features, expandIntegerPowExpressions, true);
ANGLE_FEATURE_CONDITION(features, flushAfterEndingTransformFeedback, isNvidia) ANGLE_FEATURE_CONDITION(features, flushAfterEndingTransformFeedback, isNvidia);
ANGLE_FEATURE_CONDITION(features, getDimensionsIgnoresBaseLevel, isNvidia) ANGLE_FEATURE_CONDITION(features, getDimensionsIgnoresBaseLevel, isNvidia);
ANGLE_FEATURE_CONDITION(features, skipVSConstantRegisterZero, isNvidia) ANGLE_FEATURE_CONDITION(features, skipVSConstantRegisterZero, isNvidia);
ANGLE_FEATURE_CONDITION(features, forceAtomicValueResolution, isNvidia) ANGLE_FEATURE_CONDITION(features, forceAtomicValueResolution, isNvidia);
ANGLE_FEATURE_CONDITION(features, preAddTexelFetchOffsets, isIntel) ANGLE_FEATURE_CONDITION(features, preAddTexelFetchOffsets, isIntel);
ANGLE_FEATURE_CONDITION(features, useSystemMemoryForConstantBuffers, isIntel) ANGLE_FEATURE_CONDITION(features, useSystemMemoryForConstantBuffers, isIntel);
ANGLE_FEATURE_CONDITION(features, callClearTwice, ANGLE_FEATURE_CONDITION(features, callClearTwice,
isIntel && isSkylake && capsVersion < IntelDriverVersion(4771)) isIntel && isSkylake && capsVersion < IntelDriverVersion(4771));
ANGLE_FEATURE_CONDITION(features, emulateIsnanFloat, ANGLE_FEATURE_CONDITION(features, emulateIsnanFloat,
isIntel && isSkylake && capsVersion < IntelDriverVersion(4542)) isIntel && isSkylake && capsVersion < IntelDriverVersion(4542));
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
features, rewriteUnaryMinusOperator, features, rewriteUnaryMinusOperator,
isIntel && (isBroadwell || isHaswell) && capsVersion < IntelDriverVersion(4624)) isIntel && (isBroadwell || isHaswell) && capsVersion < IntelDriverVersion(4624));
ANGLE_FEATURE_CONDITION(features, addDummyTextureNoRenderTarget, ANGLE_FEATURE_CONDITION(features, addDummyTextureNoRenderTarget,
isIntel && capsVersion < IntelDriverVersion(4815)) isIntel && capsVersion < IntelDriverVersion(4815));
// Haswell/Ivybridge drivers occasionally corrupt (small?) (vertex?) texture data uploads. // Haswell/Ivybridge drivers occasionally corrupt (small?) (vertex?) texture data uploads.
ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload,
!(isIvyBridge || isBroadwell || isHaswell)) !(isIvyBridge || isBroadwell || isHaswell));
ANGLE_FEATURE_CONDITION(features, disableB5G6R5Support, ANGLE_FEATURE_CONDITION(features, disableB5G6R5Support,
(isIntel && capsVersion < IntelDriverVersion(4539)) || isAMD) (isIntel && capsVersion < IntelDriverVersion(4539)) || isAMD);
// TODO(jmadill): Disable when we have a fixed driver version. // TODO(jmadill): Disable when we have a fixed driver version.
// The tiny stencil texture workaround involves using CopySubresource or UpdateSubresource on a // The tiny stencil texture workaround involves using CopySubresource or UpdateSubresource on a
...@@ -2466,15 +2466,15 @@ void InitializeFeatures(const Renderer11DeviceCaps &deviceCaps, ...@@ -2466,15 +2466,15 @@ void InitializeFeatures(const Renderer11DeviceCaps &deviceCaps,
// possible to support ES3 on these devices, there is no need for the workaround to begin with // possible to support ES3 on these devices, there is no need for the workaround to begin with
// (anglebug.com/1572). // (anglebug.com/1572).
ANGLE_FEATURE_CONDITION(features, emulateTinyStencilTextures, ANGLE_FEATURE_CONDITION(features, emulateTinyStencilTextures,
isAMD && !(deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1)) isAMD && !(deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1));
// If the VPAndRTArrayIndexFromAnyShaderFeedingRasterizer feature is not available, we have to // If the VPAndRTArrayIndexFromAnyShaderFeedingRasterizer feature is not available, we have to
// select the viewport / RT array index in the geometry shader. // select the viewport / RT array index in the geometry shader.
ANGLE_FEATURE_CONDITION(features, selectViewInGeometryShader, ANGLE_FEATURE_CONDITION(features, selectViewInGeometryShader,
!deviceCaps.supportsVpRtIndexWriteFromVertexShader) !deviceCaps.supportsVpRtIndexWriteFromVertexShader);
// Never clear for robust resource init. This matches Chrome's texture clearning behaviour. // Never clear for robust resource init. This matches Chrome's texture clearning behaviour.
ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, false) ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, false);
// Call platform hooks for testing overrides. // Call platform hooks for testing overrides.
auto *platform = ANGLEPlatformCurrent(); auto *platform = ANGLEPlatformCurrent();
......
...@@ -805,15 +805,15 @@ void MakeValidSize(bool isImage, ...@@ -805,15 +805,15 @@ void MakeValidSize(bool isImage,
void InitializeFeatures(angle::FeaturesD3D *features) void InitializeFeatures(angle::FeaturesD3D *features)
{ {
ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true) ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true);
ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, false) ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, false);
ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, false) ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, false);
// TODO(jmadill): Disable workaround when we have a fixed compiler DLL. // TODO(jmadill): Disable workaround when we have a fixed compiler DLL.
ANGLE_FEATURE_CONDITION(features, expandIntegerPowExpressions, true) ANGLE_FEATURE_CONDITION(features, expandIntegerPowExpressions, true);
// Never clear for robust resource init. This matches Chrome's texture clearning behaviour. // Never clear for robust resource init. This matches Chrome's texture clearning behaviour.
ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, false) ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, false);
// Call platform hooks for testing overrides. // Call platform hooks for testing overrides.
auto *platform = ANGLEPlatformCurrent(); auto *platform = ANGLEPlatformCurrent();
......
...@@ -1287,7 +1287,7 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames) ...@@ -1287,7 +1287,7 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames)
// Use OpenGL line rasterization rules by default. // Use OpenGL line rasterization rules by default.
// TODO(jmadill): Fix Android support. http://anglebug.com/2830 // TODO(jmadill): Fix Android support. http://anglebug.com/2830
ANGLE_FEATURE_CONDITION((&mFeatures), basicGLLineRasterization, !IsAndroid()) ANGLE_FEATURE_CONDITION((&mFeatures), basicGLLineRasterization, !IsAndroid());
// TODO(lucferron): Currently disabled on Intel only since many tests are failing and need // TODO(lucferron): Currently disabled on Intel only since many tests are failing and need
// investigation. http://anglebug.com/2728 // investigation. http://anglebug.com/2728
...@@ -1295,28 +1295,28 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames) ...@@ -1295,28 +1295,28 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames)
(&mFeatures), flipViewportY, (&mFeatures), flipViewportY,
!IsIntel(mPhysicalDeviceProperties.vendorID) && !IsIntel(mPhysicalDeviceProperties.vendorID) &&
(mPhysicalDeviceProperties.apiVersion >= VK_MAKE_VERSION(1, 1, 0)) || (mPhysicalDeviceProperties.apiVersion >= VK_MAKE_VERSION(1, 1, 0)) ||
ExtensionFound(VK_KHR_MAINTENANCE1_EXTENSION_NAME, deviceExtensionNames)) ExtensionFound(VK_KHR_MAINTENANCE1_EXTENSION_NAME, deviceExtensionNames));
// http://anglebug.com/2838 // http://anglebug.com/2838
ANGLE_FEATURE_CONDITION((&mFeatures), extraCopyBufferRegion, IsWindows() && isIntel) ANGLE_FEATURE_CONDITION((&mFeatures), extraCopyBufferRegion, IsWindows() && isIntel);
// http://anglebug.com/3055 // http://anglebug.com/3055
ANGLE_FEATURE_CONDITION((&mFeatures), forceCPUPathForCubeMapCopy, IsWindows() && isIntel) ANGLE_FEATURE_CONDITION((&mFeatures), forceCPUPathForCubeMapCopy, IsWindows() && isIntel);
// Work around incorrect NVIDIA point size range clamping. // Work around incorrect NVIDIA point size range clamping.
// TODO(jmadill): Narrow driver range once fixed. http://anglebug.com/2970 // TODO(jmadill): Narrow driver range once fixed. http://anglebug.com/2970
ANGLE_FEATURE_CONDITION((&mFeatures), clampPointSize, isNvidia) ANGLE_FEATURE_CONDITION((&mFeatures), clampPointSize, isNvidia);
// Work around ineffective compute-graphics barriers on Nexus 5X. // Work around ineffective compute-graphics barriers on Nexus 5X.
// TODO(syoussefi): Figure out which other vendors and driver versions are affected. // TODO(syoussefi): Figure out which other vendors and driver versions are affected.
// http://anglebug.com/3019 // http://anglebug.com/3019
ANGLE_FEATURE_CONDITION((&mFeatures), flushAfterVertexConversion, ANGLE_FEATURE_CONDITION((&mFeatures), flushAfterVertexConversion,
IsAndroid() && IsNexus5X(mPhysicalDeviceProperties.vendorID, IsAndroid() && IsNexus5X(mPhysicalDeviceProperties.vendorID,
mPhysicalDeviceProperties.deviceID)) mPhysicalDeviceProperties.deviceID));
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
(&mFeatures), supportsIncrementalPresent, (&mFeatures), supportsIncrementalPresent,
ExtensionFound(VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, deviceExtensionNames)) ExtensionFound(VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, deviceExtensionNames));
#if defined(ANGLE_PLATFORM_ANDROID) #if defined(ANGLE_PLATFORM_ANDROID)
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
...@@ -1324,52 +1324,53 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames) ...@@ -1324,52 +1324,53 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames)
IsAndroid() && IsAndroid() &&
ExtensionFound(VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME, ExtensionFound(VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME,
deviceExtensionNames) && deviceExtensionNames) &&
ExtensionFound(VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME, deviceExtensionNames)) ExtensionFound(VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME, deviceExtensionNames));
#endif #endif
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
(&mFeatures), supportsExternalMemoryFd, (&mFeatures), supportsExternalMemoryFd,
ExtensionFound(VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, deviceExtensionNames)) ExtensionFound(VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, deviceExtensionNames));
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
(&mFeatures), supportsExternalSemaphoreFd, (&mFeatures), supportsExternalSemaphoreFd,
ExtensionFound(VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME, deviceExtensionNames)) ExtensionFound(VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME, deviceExtensionNames));
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
(&mFeatures), supportsShaderStencilExport, (&mFeatures), supportsShaderStencilExport,
ExtensionFound(VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, deviceExtensionNames)) ExtensionFound(VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, deviceExtensionNames));
// TODO(syoussefi): when the code path using the extension is implemented, this should be // TODO(syoussefi): when the code path using the extension is implemented, this should be
// conditioned to the extension not being present as well. http://anglebug.com/3206 // conditioned to the extension not being present as well. http://anglebug.com/3206
ANGLE_FEATURE_CONDITION((&mFeatures), emulateTransformFeedback, ANGLE_FEATURE_CONDITION((&mFeatures), emulateTransformFeedback,
mPhysicalDeviceFeatures.vertexPipelineStoresAndAtomics == VK_TRUE) mPhysicalDeviceFeatures.vertexPipelineStoresAndAtomics == VK_TRUE);
ANGLE_FEATURE_CONDITION((&mFeatures), disableFifoPresentMode, IsLinux() && isIntel) ANGLE_FEATURE_CONDITION((&mFeatures), disableFifoPresentMode, IsLinux() && isIntel);
ANGLE_FEATURE_CONDITION((&mFeatures), restartRenderPassAfterLoadOpClear, ANGLE_FEATURE_CONDITION((&mFeatures), restartRenderPassAfterLoadOpClear,
IsAndroid() && isQualcomm && vk::CommandBuffer::ExecutesInline()) IsAndroid() && isQualcomm && vk::CommandBuffer::ExecutesInline());
ANGLE_FEATURE_CONDITION((&mFeatures), bindEmptyForUnusedDescriptorSets, ANGLE_FEATURE_CONDITION((&mFeatures), bindEmptyForUnusedDescriptorSets,
IsAndroid() && isQualcomm) IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION((&mFeatures), forceOldRewriteStructSamplers, IsAndroid() && isQualcomm) ANGLE_FEATURE_CONDITION((&mFeatures), forceOldRewriteStructSamplers, IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION((&mFeatures), forceNonZeroScissor, IsWindows() && isIntel) ANGLE_FEATURE_CONDITION((&mFeatures), forceNonZeroScissor, IsWindows() && isIntel);
ANGLE_FEATURE_CONDITION((&mFeatures), perFrameWindowSizeQuery, ANGLE_FEATURE_CONDITION((&mFeatures), perFrameWindowSizeQuery,
isIntel || (IsWindows() && isAMD)) isIntel || (IsWindows() && isAMD));
// Disabled on AMD/windows due to buggy behavior. // Disabled on AMD/windows due to buggy behavior.
ANGLE_FEATURE_CONDITION((&mFeatures), disallowSeamfulCubeMapEmulation, IsWindows() && isAMD) ANGLE_FEATURE_CONDITION((&mFeatures), disallowSeamfulCubeMapEmulation, IsWindows() && isAMD);
ANGLE_FEATURE_CONDITION((&mFeatures), forceD16TexFilter, IsAndroid() && isQualcomm) ANGLE_FEATURE_CONDITION((&mFeatures), forceD16TexFilter, IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION((&mFeatures), disableFlippingBlitWithCommand, IsAndroid() && isQualcomm) ANGLE_FEATURE_CONDITION((&mFeatures), disableFlippingBlitWithCommand,
IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
(&mFeatures), transientCommandBuffer, (&mFeatures), transientCommandBuffer,
IsPixel2(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID) || IsPixel2(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID) ||
IsPixel1XL(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID)) IsPixel1XL(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID));
angle::PlatformMethods *platform = ANGLEPlatformCurrent(); angle::PlatformMethods *platform = ANGLEPlatformCurrent();
platform->overrideFeaturesVk(platform, &mFeatures); platform->overrideFeaturesVk(platform, &mFeatures);
......
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