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
...@@ -14,8 +14,11 @@ ...@@ -14,8 +14,11 @@
#include <vector> #include <vector>
#define ANGLE_FEATURE_CONDITION(set, feature, cond) \ #define ANGLE_FEATURE_CONDITION(set, feature, cond) \
do \
{ \
set->feature.enabled = cond; \ set->feature.enabled = cond; \
set->feature.condition = ANGLE_STRINGIFY(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();
......
...@@ -1460,122 +1460,122 @@ void InitializeFeatures(const FunctionsGL *functions, angle::FeaturesGL *feature ...@@ -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. // Don't use 1-bit alpha formats on desktop GL with AMD drivers.
ANGLE_FEATURE_CONDITION(features, avoid1BitAlphaTextureFormats, ANGLE_FEATURE_CONDITION(features, avoid1BitAlphaTextureFormats,
functions->standard == STANDARD_GL_DESKTOP && isAMD) functions->standard == STANDARD_GL_DESKTOP && isAMD);
ANGLE_FEATURE_CONDITION(features, rgba4IsNotSupportedForColorRendering, 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, ANGLE_FEATURE_CONDITION(features, doesSRGBClearsOnLinearFramebufferAttachments,
functions->standard == STANDARD_GL_DESKTOP && (isIntel || isAMD)) functions->standard == STANDARD_GL_DESKTOP && (isIntel || isAMD));
ANGLE_FEATURE_CONDITION(features, emulateMaxVertexAttribStride, ANGLE_FEATURE_CONDITION(features, emulateMaxVertexAttribStride,
IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD) IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD);
ANGLE_FEATURE_CONDITION( ANGLE_FEATURE_CONDITION(
features, useUnusedBlocksWithStandardOrSharedLayout, 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, doWhileGLSLCausesGPUHang, IsApple());
ANGLE_FEATURE_CONDITION(features, rewriteFloatUnaryMinusOperator, IsApple() && isIntel) 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. // Triggers a bug on Marshmallow Adreno (4xx?) driver.
// http://anglebug.com/2046 // http://anglebug.com/2046
ANGLE_FEATURE_CONDITION(features, dontInitializeUninitializedLocals, IsAndroid() && isQualcomm) ANGLE_FEATURE_CONDITION(features, dontInitializeUninitializedLocals, IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION(features, finishDoesNotCauseQueriesToBeAvailable, 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. // 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, unpackOverlappingRowsSeparatelyUnpackBuffer, isNvidia);
ANGLE_FEATURE_CONDITION(features, packOverlappingRowsSeparatelyPackBuffer, isNvidia) ANGLE_FEATURE_CONDITION(features, packOverlappingRowsSeparatelyPackBuffer, isNvidia);
ANGLE_FEATURE_CONDITION(features, initializeCurrentVertexAttributes, isNvidia) ANGLE_FEATURE_CONDITION(features, initializeCurrentVertexAttributes, isNvidia);
ANGLE_FEATURE_CONDITION(features, unpackLastRowSeparatelyForPaddingInclusion, ANGLE_FEATURE_CONDITION(features, unpackLastRowSeparatelyForPaddingInclusion,
IsApple() || isNvidia) IsApple() || isNvidia);
ANGLE_FEATURE_CONDITION(features, packLastRowSeparatelyForPaddingInclusion, ANGLE_FEATURE_CONDITION(features, packLastRowSeparatelyForPaddingInclusion,
IsApple() || isNvidia) IsApple() || isNvidia);
ANGLE_FEATURE_CONDITION(features, removeInvariantAndCentroidForESSL3, ANGLE_FEATURE_CONDITION(features, removeInvariantAndCentroidForESSL3,
functions->isAtMostGL(gl::Version(4, 1)) || 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 // 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. // 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, 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 // 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. // 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 // TODO(oetuaho): Make this specific to the affected driver versions. Versions since 397.31 are
// not affected. // not affected.
ANGLE_FEATURE_CONDITION(features, rewriteRepeatedAssignToSwizzled, isNvidia) ANGLE_FEATURE_CONDITION(features, rewriteRepeatedAssignToSwizzled, isNvidia);
// TODO(jmadill): Narrow workaround range for specific devices. // 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, 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, ANGLE_FEATURE_CONDITION(features, dontRelinkProgramsInParallel,
IsAndroid() || (IsWindows() && isIntel)) IsAndroid() || (IsWindows() && isIntel));
// TODO(jie.a.chen@intel.com): Clean up the bugs. // TODO(jie.a.chen@intel.com): Clean up the bugs.
// anglebug.com/3031 // anglebug.com/3031
// crbug.com/922936 // crbug.com/922936
ANGLE_FEATURE_CONDITION(features, disableWorkerContexts, ANGLE_FEATURE_CONDITION(features, disableWorkerContexts,
(IsWindows() && (isIntel || isAMD)) || (IsLinux() && isNvidia)) (IsWindows() && (isIntel || isAMD)) || (IsLinux() && isNvidia));
ANGLE_FEATURE_CONDITION(features, limitMaxTextureSizeTo4096, ANGLE_FEATURE_CONDITION(features, limitMaxTextureSizeTo4096,
IsAndroid() || (isIntel && IsLinux())) IsAndroid() || (isIntel && IsLinux()));
ANGLE_FEATURE_CONDITION(features, limitMaxMSAASamplesTo4, IsAndroid()) ANGLE_FEATURE_CONDITION(features, limitMaxMSAASamplesTo4, IsAndroid());
ANGLE_FEATURE_CONDITION(features, limitMax3dArrayTextureSizeTo1024, isIntel && IsLinux()) 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 // The WebGL conformance/uniforms/out-of-bounds-uniform-array-access test has been seen to fail
// on AMD and Android devices. // on AMD and Android devices.
ANGLE_FEATURE_CONDITION(features, clampArrayAccess, IsAndroid() || isAMD) ANGLE_FEATURE_CONDITION(features, clampArrayAccess, IsAndroid() || isAMD);
ANGLE_FEATURE_CONDITION(features, resetTexImage2DBaseLevel, ANGLE_FEATURE_CONDITION(features, resetTexImage2DBaseLevel,
IsApple() && isIntel && GetMacOSVersion() >= OSVersion(10, 12, 4)) IsApple() && isIntel && GetMacOSVersion() >= OSVersion(10, 12, 4));
ANGLE_FEATURE_CONDITION(features, clearToZeroOrOneBroken, ANGLE_FEATURE_CONDITION(features, clearToZeroOrOneBroken,
IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6)) IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6));
ANGLE_FEATURE_CONDITION(features, adjustSrcDstRegionBlitFramebuffer, 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, 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) void InitializeFrontendFeatures(const FunctionsGL *functions, angle::FrontendFeatures *features)
...@@ -1585,8 +1585,8 @@ void InitializeFrontendFeatures(const FunctionsGL *functions, angle::FrontendFea ...@@ -1585,8 +1585,8 @@ void InitializeFrontendFeatures(const FunctionsGL *functions, angle::FrontendFea
bool isQualcomm = IsQualcomm(vendor); bool isQualcomm = IsQualcomm(vendor);
ANGLE_FEATURE_CONDITION(features, disableProgramCachingForTransformFeedback, ANGLE_FEATURE_CONDITION(features, disableProgramCachingForTransformFeedback,
IsAndroid() && isQualcomm) IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION(features, syncFramebufferBindingsOnTexImage, IsWindows() && isIntel) ANGLE_FEATURE_CONDITION(features, syncFramebufferBindingsOnTexImage, IsWindows() && isIntel);
} }
} // namespace nativegl_gl } // namespace nativegl_gl
......
...@@ -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