Commit 5b0b1830 by Jamie Madill Committed by Commit Bot

Add feature for disabling compressed formats.

Can be useful when doing captures to make the replay more portable. Bug: angleproject:5040 Change-Id: I3a045c636bc2638d601aff2536eed3d0e49c3643 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408714 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
parent 1520b4d0
......@@ -60,6 +60,11 @@ struct FrontendFeatures : angle::FeatureSetBase
angle::Feature disableAnisotropicFiltering = {
"disable_anisotropic_filtering", angle::FeatureCategory::FrontendWorkarounds,
"Disable support for anisotropic filtering", &members};
// We can use this feature to override compressed format support for portability.
angle::Feature allowCompressedFormats = {"allow_compressed_formats",
angle::FeatureCategory::FrontendWorkarounds,
"Allow compressed formats", &members};
};
inline FrontendFeatures::FrontendFeatures() = default;
......
......@@ -3295,7 +3295,43 @@ void Context::initCaps()
mState.mCaps = mImplementation->getNativeCaps();
mSupportedExtensions = generateSupportedExtensions();
mState.mExtensions = mSupportedExtensions;
if (!mDisplay->getFrontendFeatures().allowCompressedFormats.enabled)
{
INFO() << "Limiting compressed format support.\n";
mSupportedExtensions.compressedEACR11SignedTextureOES = false;
mSupportedExtensions.compressedEACR11UnsignedTextureOES = false;
mSupportedExtensions.compressedEACRG11SignedTextureOES = false;
mSupportedExtensions.compressedEACRG11UnsignedTextureOES = false;
mSupportedExtensions.compressedETC1RGB8SubTexture = false;
mSupportedExtensions.compressedETC1RGB8TextureOES = false;
mSupportedExtensions.compressedETC2PunchthroughARGB8TextureOES = false;
mSupportedExtensions.compressedETC2PunchthroughAsRGB8AlphaTextureOES = false;
mSupportedExtensions.compressedETC2RGB8TextureOES = false;
mSupportedExtensions.compressedETC2RGBA8TextureOES = false;
mSupportedExtensions.compressedETC2sRGB8Alpha8TextureOES = false;
mSupportedExtensions.compressedETC2sRGB8TextureOES = false;
mSupportedExtensions.compressedTextureETC = false;
mSupportedExtensions.compressedTexturePVRTC = false;
mSupportedExtensions.compressedTexturePVRTCsRGB = false;
mSupportedExtensions.copyCompressedTexture = false;
mSupportedExtensions.textureCompressionASTCHDRKHR = false;
mSupportedExtensions.textureCompressionASTCLDRKHR = false;
mSupportedExtensions.textureCompressionASTCOES = false;
mSupportedExtensions.textureCompressionBPTC = false;
mSupportedExtensions.textureCompressionDXT1 = false;
mSupportedExtensions.textureCompressionDXT3 = false;
mSupportedExtensions.textureCompressionDXT5 = false;
mSupportedExtensions.textureCompressionRGTC = false;
mSupportedExtensions.textureCompressionS3TCsRGB = false;
mSupportedExtensions.textureCompressionSliced3dASTCKHR = false;
mSupportedExtensions.textureFilteringCHROMIUM = false;
mState.mCaps.compressedTextureFormats.clear();
}
mState.mExtensions = mSupportedExtensions;
mState.mLimitations = mImplementation->getNativeLimitations();
......
......@@ -1735,6 +1735,7 @@ void Display::initializeFrontendFeatures()
// Enable on all Impls
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), loseContextOnOutOfMemory, true);
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), scalarizeVecAndMatConstructorArgs, true);
ANGLE_FEATURE_CONDITION((&mFrontendFeatures), allowCompressedFormats, true);
mImplementation->initializeFrontendFeatures(&mFrontendFeatures);
......
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