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 @@
#include <string>
#include <vector>
#define ANGLE_FEATURE_CONDITION(set, feature, cond) \
set->feature.enabled = cond; \
set->feature.condition = ANGLE_STRINGIFY(cond);
#define ANGLE_FEATURE_CONDITION(set, feature, cond) \
do \
{ \
set->feature.enabled = cond; \
set->feature.condition = ANGLE_STRINGIFY(cond); \
} while (0)
namespace angle
{
......
......@@ -1421,8 +1421,8 @@ void Display::initVendorString()
void Display::initializeFrontendFeatures()
{
// Enable on all Impls
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), loseContextOnOutOfMemory, true)
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), scalarizeVecAndMatConstructorArgs, true)
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), loseContextOnOutOfMemory, true);
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), scalarizeVecAndMatConstructorArgs, true);
mImplementation->initializeFrontendFeatures(&mFrontendFeatures);
......
......@@ -2418,47 +2418,47 @@ void InitializeFeatures(const Renderer11DeviceCaps &deviceCaps,
// Disable the workaround to fix a second driver bug on newer NVIDIA.
ANGLE_FEATURE_CONDITION(
features, depthStencilBlitExtraCopy,
(part1 <= 13u && part2 < 6881) && isNvidia && driverVersionValid)
(part1 <= 13u && part2 < 6881) && isNvidia && driverVersionValid);
}
else
{
ANGLE_FEATURE_CONDITION(features, depthStencilBlitExtraCopy,
isNvidia && !driverVersionValid)
isNvidia && !driverVersionValid);
}
}
ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true)
ANGLE_FEATURE_CONDITION(features, zeroMaxLodWorkaround, isFeatureLevel9_3)
ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, isFeatureLevel9_3)
ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true);
ANGLE_FEATURE_CONDITION(features, zeroMaxLodWorkaround, isFeatureLevel9_3);
ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, isFeatureLevel9_3);
// 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, getDimensionsIgnoresBaseLevel, isNvidia)
ANGLE_FEATURE_CONDITION(features, skipVSConstantRegisterZero, isNvidia)
ANGLE_FEATURE_CONDITION(features, forceAtomicValueResolution, isNvidia)
ANGLE_FEATURE_CONDITION(features, flushAfterEndingTransformFeedback, isNvidia);
ANGLE_FEATURE_CONDITION(features, getDimensionsIgnoresBaseLevel, isNvidia);
ANGLE_FEATURE_CONDITION(features, skipVSConstantRegisterZero, isNvidia);
ANGLE_FEATURE_CONDITION(features, forceAtomicValueResolution, isNvidia);
ANGLE_FEATURE_CONDITION(features, preAddTexelFetchOffsets, isIntel)
ANGLE_FEATURE_CONDITION(features, useSystemMemoryForConstantBuffers, isIntel)
ANGLE_FEATURE_CONDITION(features, preAddTexelFetchOffsets, isIntel);
ANGLE_FEATURE_CONDITION(features, useSystemMemoryForConstantBuffers, isIntel);
ANGLE_FEATURE_CONDITION(features, callClearTwice,
isIntel && isSkylake && capsVersion < IntelDriverVersion(4771))
isIntel && isSkylake && capsVersion < IntelDriverVersion(4771));
ANGLE_FEATURE_CONDITION(features, emulateIsnanFloat,
isIntel && isSkylake && capsVersion < IntelDriverVersion(4542))
isIntel && isSkylake && capsVersion < IntelDriverVersion(4542));
ANGLE_FEATURE_CONDITION(
features, rewriteUnaryMinusOperator,
isIntel && (isBroadwell || isHaswell) && capsVersion < IntelDriverVersion(4624))
isIntel && (isBroadwell || isHaswell) && capsVersion < IntelDriverVersion(4624));
ANGLE_FEATURE_CONDITION(features, addDummyTextureNoRenderTarget,
isIntel && capsVersion < IntelDriverVersion(4815))
isIntel && capsVersion < IntelDriverVersion(4815));
// Haswell/Ivybridge drivers occasionally corrupt (small?) (vertex?) texture data uploads.
ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload,
!(isIvyBridge || isBroadwell || isHaswell))
!(isIvyBridge || isBroadwell || isHaswell));
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.
// The tiny stencil texture workaround involves using CopySubresource or UpdateSubresource on a
......@@ -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
// (anglebug.com/1572).
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
// select the viewport / RT array index in the geometry shader.
ANGLE_FEATURE_CONDITION(features, selectViewInGeometryShader,
!deviceCaps.supportsVpRtIndexWriteFromVertexShader)
!deviceCaps.supportsVpRtIndexWriteFromVertexShader);
// 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.
auto *platform = ANGLEPlatformCurrent();
......
......@@ -805,15 +805,15 @@ void MakeValidSize(bool isImage,
void InitializeFeatures(angle::FeaturesD3D *features)
{
ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true)
ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, false)
ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, false)
ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true);
ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, false);
ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, false);
// 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.
ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, false)
ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, false);
// Call platform hooks for testing overrides.
auto *platform = ANGLEPlatformCurrent();
......
......@@ -1460,122 +1460,122 @@ void InitializeFeatures(const FunctionsGL *functions, angle::FeaturesGL *feature
// Don't use 1-bit alpha formats on desktop GL with AMD drivers.
ANGLE_FEATURE_CONDITION(features, avoid1BitAlphaTextureFormats,
functions->standard == STANDARD_GL_DESKTOP && isAMD)
functions->standard == STANDARD_GL_DESKTOP && isAMD);
ANGLE_FEATURE_CONDITION(features, rgba4IsNotSupportedForColorRendering,
functions->standard == STANDARD_GL_DESKTOP && isIntel)
functions->standard == STANDARD_GL_DESKTOP && isIntel);
ANGLE_FEATURE_CONDITION(features, emulateAbsIntFunction, isIntel)
ANGLE_FEATURE_CONDITION(features, emulateAbsIntFunction, isIntel);
ANGLE_FEATURE_CONDITION(features, addAndTrueToLoopCondition, isIntel)
ANGLE_FEATURE_CONDITION(features, addAndTrueToLoopCondition, isIntel);
ANGLE_FEATURE_CONDITION(features, emulateIsnanFloat, isIntel)
ANGLE_FEATURE_CONDITION(features, emulateIsnanFloat, isIntel);
ANGLE_FEATURE_CONDITION(features, doesSRGBClearsOnLinearFramebufferAttachments,
functions->standard == STANDARD_GL_DESKTOP && (isIntel || isAMD))
functions->standard == STANDARD_GL_DESKTOP && (isIntel || isAMD));
ANGLE_FEATURE_CONDITION(features, emulateMaxVertexAttribStride,
IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD)
IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD);
ANGLE_FEATURE_CONDITION(
features, useUnusedBlocksWithStandardOrSharedLayout,
(IsApple() && functions->standard == STANDARD_GL_DESKTOP) || (IsLinux() && isAMD))
(IsApple() && functions->standard == STANDARD_GL_DESKTOP) || (IsLinux() && isAMD));
ANGLE_FEATURE_CONDITION(features, doWhileGLSLCausesGPUHang, IsApple())
ANGLE_FEATURE_CONDITION(features, rewriteFloatUnaryMinusOperator, IsApple() && isIntel)
ANGLE_FEATURE_CONDITION(features, doWhileGLSLCausesGPUHang, IsApple());
ANGLE_FEATURE_CONDITION(features, rewriteFloatUnaryMinusOperator, IsApple() && isIntel);
ANGLE_FEATURE_CONDITION(features, addBaseVertexToVertexID, IsApple() && isAMD)
ANGLE_FEATURE_CONDITION(features, addBaseVertexToVertexID, IsApple() && isAMD);
// Triggers a bug on Marshmallow Adreno (4xx?) driver.
// http://anglebug.com/2046
ANGLE_FEATURE_CONDITION(features, dontInitializeUninitializedLocals, IsAndroid() && isQualcomm)
ANGLE_FEATURE_CONDITION(features, dontInitializeUninitializedLocals, IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION(features, finishDoesNotCauseQueriesToBeAvailable,
functions->standard == STANDARD_GL_DESKTOP && isNvidia)
functions->standard == STANDARD_GL_DESKTOP && isNvidia);
// TODO(cwallez): Disable this workaround for MacOSX versions 10.9 or later.
ANGLE_FEATURE_CONDITION(features, alwaysCallUseProgramAfterLink, true)
ANGLE_FEATURE_CONDITION(features, alwaysCallUseProgramAfterLink, true);
ANGLE_FEATURE_CONDITION(features, unpackOverlappingRowsSeparatelyUnpackBuffer, isNvidia)
ANGLE_FEATURE_CONDITION(features, packOverlappingRowsSeparatelyPackBuffer, isNvidia)
ANGLE_FEATURE_CONDITION(features, unpackOverlappingRowsSeparatelyUnpackBuffer, isNvidia);
ANGLE_FEATURE_CONDITION(features, packOverlappingRowsSeparatelyPackBuffer, isNvidia);
ANGLE_FEATURE_CONDITION(features, initializeCurrentVertexAttributes, isNvidia)
ANGLE_FEATURE_CONDITION(features, initializeCurrentVertexAttributes, isNvidia);
ANGLE_FEATURE_CONDITION(features, unpackLastRowSeparatelyForPaddingInclusion,
IsApple() || isNvidia)
IsApple() || isNvidia);
ANGLE_FEATURE_CONDITION(features, packLastRowSeparatelyForPaddingInclusion,
IsApple() || isNvidia)
IsApple() || isNvidia);
ANGLE_FEATURE_CONDITION(features, removeInvariantAndCentroidForESSL3,
functions->isAtMostGL(gl::Version(4, 1)) ||
(functions->standard == STANDARD_GL_DESKTOP && isAMD))
(functions->standard == STANDARD_GL_DESKTOP && isAMD));
// TODO(oetuaho): Make this specific to the affected driver versions. Versions that came after
// 364 are known to be affected, at least up to 375.
ANGLE_FEATURE_CONDITION(features, emulateAtan2Float, isNvidia)
ANGLE_FEATURE_CONDITION(features, emulateAtan2Float, isNvidia);
ANGLE_FEATURE_CONDITION(features, reapplyUBOBindingsAfterUsingBinaryProgram,
isAMD || IsAndroid())
isAMD || IsAndroid());
ANGLE_FEATURE_CONDITION(features, rewriteVectorScalarArithmetic, isNvidia)
ANGLE_FEATURE_CONDITION(features, rewriteVectorScalarArithmetic, isNvidia);
// TODO(oetuaho): Make this specific to the affected driver versions. Versions at least up to
// 390 are known to be affected. Versions after that are expected not to be affected.
ANGLE_FEATURE_CONDITION(features, clampFragDepth, isNvidia)
ANGLE_FEATURE_CONDITION(features, clampFragDepth, isNvidia);
// TODO(oetuaho): Make this specific to the affected driver versions. Versions since 397.31 are
// not affected.
ANGLE_FEATURE_CONDITION(features, rewriteRepeatedAssignToSwizzled, isNvidia)
ANGLE_FEATURE_CONDITION(features, rewriteRepeatedAssignToSwizzled, isNvidia);
// TODO(jmadill): Narrow workaround range for specific devices.
ANGLE_FEATURE_CONDITION(features, clampPointSize, IsAndroid() || isNvidia)
ANGLE_FEATURE_CONDITION(features, clampPointSize, IsAndroid() || isNvidia);
ANGLE_FEATURE_CONDITION(features, dontUseLoopsToInitializeVariables, IsAndroid() && !isNvidia)
ANGLE_FEATURE_CONDITION(features, dontUseLoopsToInitializeVariables, IsAndroid() && !isNvidia);
ANGLE_FEATURE_CONDITION(features, disableBlendFuncExtended, isAMD || isIntel)
ANGLE_FEATURE_CONDITION(features, disableBlendFuncExtended, isAMD || isIntel);
ANGLE_FEATURE_CONDITION(features, unsizedsRGBReadPixelsDoesntTransform,
IsAndroid() && isQualcomm)
IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION(features, queryCounterBitsGeneratesErrors, IsNexus5X(vendor, device))
ANGLE_FEATURE_CONDITION(features, queryCounterBitsGeneratesErrors, IsNexus5X(vendor, device));
ANGLE_FEATURE_CONDITION(features, dontRelinkProgramsInParallel,
IsAndroid() || (IsWindows() && isIntel))
IsAndroid() || (IsWindows() && isIntel));
// TODO(jie.a.chen@intel.com): Clean up the bugs.
// anglebug.com/3031
// crbug.com/922936
ANGLE_FEATURE_CONDITION(features, disableWorkerContexts,
(IsWindows() && (isIntel || isAMD)) || (IsLinux() && isNvidia))
(IsWindows() && (isIntel || isAMD)) || (IsLinux() && isNvidia));
ANGLE_FEATURE_CONDITION(features, limitMaxTextureSizeTo4096,
IsAndroid() || (isIntel && IsLinux()))
ANGLE_FEATURE_CONDITION(features, limitMaxMSAASamplesTo4, IsAndroid())
ANGLE_FEATURE_CONDITION(features, limitMax3dArrayTextureSizeTo1024, isIntel && IsLinux())
IsAndroid() || (isIntel && IsLinux()));
ANGLE_FEATURE_CONDITION(features, limitMaxMSAASamplesTo4, IsAndroid());
ANGLE_FEATURE_CONDITION(features, limitMax3dArrayTextureSizeTo1024, isIntel && IsLinux());
ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, IsApple())
ANGLE_FEATURE_CONDITION(features, allowClearForRobustResourceInit, IsApple());
// The WebGL conformance/uniforms/out-of-bounds-uniform-array-access test has been seen to fail
// on AMD and Android devices.
ANGLE_FEATURE_CONDITION(features, clampArrayAccess, IsAndroid() || isAMD)
ANGLE_FEATURE_CONDITION(features, clampArrayAccess, IsAndroid() || isAMD);
ANGLE_FEATURE_CONDITION(features, resetTexImage2DBaseLevel,
IsApple() && isIntel && GetMacOSVersion() >= OSVersion(10, 12, 4))
IsApple() && isIntel && GetMacOSVersion() >= OSVersion(10, 12, 4));
ANGLE_FEATURE_CONDITION(features, clearToZeroOrOneBroken,
IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6))
IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6));
ANGLE_FEATURE_CONDITION(features, adjustSrcDstRegionBlitFramebuffer,
IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia))
IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia));
ANGLE_FEATURE_CONDITION(features, clipSrcRegionBlitFramebuffer, IsApple())
ANGLE_FEATURE_CONDITION(features, clipSrcRegionBlitFramebuffer, IsApple());
ANGLE_FEATURE_CONDITION(features, resettingTexturesGeneratesErrors,
IsApple() || (IsWindows() && isAMD))
IsApple() || (IsWindows() && isAMD));
ANGLE_FEATURE_CONDITION(features, rgbDXT1TexturesSampleZeroAlpha, IsApple())
ANGLE_FEATURE_CONDITION(features, rgbDXT1TexturesSampleZeroAlpha, IsApple());
ANGLE_FEATURE_CONDITION(features, unfoldShortCircuits, IsApple())
ANGLE_FEATURE_CONDITION(features, unfoldShortCircuits, IsApple());
}
void InitializeFrontendFeatures(const FunctionsGL *functions, angle::FrontendFeatures *features)
......@@ -1585,8 +1585,8 @@ void InitializeFrontendFeatures(const FunctionsGL *functions, angle::FrontendFea
bool isQualcomm = IsQualcomm(vendor);
ANGLE_FEATURE_CONDITION(features, disableProgramCachingForTransformFeedback,
IsAndroid() && isQualcomm)
ANGLE_FEATURE_CONDITION(features, syncFramebufferBindingsOnTexImage, IsWindows() && isIntel)
IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION(features, syncFramebufferBindingsOnTexImage, IsWindows() && isIntel);
}
} // namespace nativegl_gl
......
......@@ -1287,7 +1287,7 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames)
// Use OpenGL line rasterization rules by default.
// 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
// investigation. http://anglebug.com/2728
......@@ -1295,28 +1295,28 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames)
(&mFeatures), flipViewportY,
!IsIntel(mPhysicalDeviceProperties.vendorID) &&
(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
ANGLE_FEATURE_CONDITION((&mFeatures), extraCopyBufferRegion, IsWindows() && isIntel)
ANGLE_FEATURE_CONDITION((&mFeatures), extraCopyBufferRegion, IsWindows() && isIntel);
// 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.
// 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.
// TODO(syoussefi): Figure out which other vendors and driver versions are affected.
// http://anglebug.com/3019
ANGLE_FEATURE_CONDITION((&mFeatures), flushAfterVertexConversion,
IsAndroid() && IsNexus5X(mPhysicalDeviceProperties.vendorID,
mPhysicalDeviceProperties.deviceID))
mPhysicalDeviceProperties.deviceID));
ANGLE_FEATURE_CONDITION(
(&mFeatures), supportsIncrementalPresent,
ExtensionFound(VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, deviceExtensionNames))
ExtensionFound(VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, deviceExtensionNames));
#if defined(ANGLE_PLATFORM_ANDROID)
ANGLE_FEATURE_CONDITION(
......@@ -1324,52 +1324,53 @@ void RendererVk::initFeatures(const ExtensionNameList &deviceExtensionNames)
IsAndroid() &&
ExtensionFound(VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME,
deviceExtensionNames) &&
ExtensionFound(VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME, deviceExtensionNames))
ExtensionFound(VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME, deviceExtensionNames));
#endif
ANGLE_FEATURE_CONDITION(
(&mFeatures), supportsExternalMemoryFd,
ExtensionFound(VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, deviceExtensionNames))
ExtensionFound(VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, deviceExtensionNames));
ANGLE_FEATURE_CONDITION(
(&mFeatures), supportsExternalSemaphoreFd,
ExtensionFound(VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME, deviceExtensionNames))
ExtensionFound(VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME, deviceExtensionNames));
ANGLE_FEATURE_CONDITION(
(&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
// conditioned to the extension not being present as well. http://anglebug.com/3206
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,
IsAndroid() && isQualcomm && vk::CommandBuffer::ExecutesInline())
IsAndroid() && isQualcomm && vk::CommandBuffer::ExecutesInline());
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,
isIntel || (IsWindows() && isAMD))
isIntel || (IsWindows() && isAMD));
// 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(
(&mFeatures), transientCommandBuffer,
IsPixel2(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID) ||
IsPixel1XL(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID))
IsPixel1XL(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID));
angle::PlatformMethods *platform = ANGLEPlatformCurrent();
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