diff options
| author | OatmealDome <OatmealDome@users.noreply.github.com> | 2023-04-29 08:54:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-29 08:54:18 +0200 |
| commit | 28f1a4cec183db455a377b2df7e9dfefcfa881c7 (patch) | |
| tree | d6e2eeb6c7271b1250bf01448607820b12450f52 /Source | |
| parent | 8e6e6f3c4ac691f3db9c045945a61ecf271afdd7 (diff) | |
| parent | 9cc3ba6fc626995a108fa864b68f0187636a5fac (diff) | |
Merge pull request #11757 from TellowKrinkle/BCniOS
Enable BCn texture support on iOS where available
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/VideoBackends/Metal/MTLUtil.mm | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index 452ddfa13d..c6b95d674f 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -193,20 +193,18 @@ void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id<MTLDevice> config->backend_info.bSupportsST3CTextures = true; config->backend_info.bSupportsBPTCTextures = true; #else - bool supports_mac1 = false; bool supports_apple4 = false; + bool supports_bcn = false; if (@available(iOS 13, *)) - { - supports_mac1 = [device supportsFamily:MTLGPUFamilyMac1]; supports_apple4 = [device supportsFamily:MTLGPUFamilyApple4]; - } else - { supports_apple4 = [device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily4_v1]; - } - config->backend_info.bSupportsDepthClamp = supports_mac1 || supports_apple4; - config->backend_info.bSupportsST3CTextures = supports_mac1; - config->backend_info.bSupportsBPTCTextures = supports_mac1; + if (@available(iOS 16.4, *)) + supports_bcn = [device supportsBCTextureCompression]; + config->backend_info.bSupportsDepthClamp = supports_apple4; + config->backend_info.bSupportsST3CTextures = supports_bcn; + config->backend_info.bSupportsBPTCTextures = supports_bcn; + config->backend_info.bSupportsFramebufferFetch = true; #endif @@ -265,12 +263,10 @@ AbstractTextureFormat Metal::Util::ToAbstract(MTLPixelFormat format) { case MTLPixelFormatRGBA8Unorm: return AbstractTextureFormat::RGBA8; case MTLPixelFormatBGRA8Unorm: return AbstractTextureFormat::BGRA8; -#if TARGET_OS_OSX case MTLPixelFormatBC1_RGBA: return AbstractTextureFormat::DXT1; case MTLPixelFormatBC2_RGBA: return AbstractTextureFormat::DXT3; case MTLPixelFormatBC3_RGBA: return AbstractTextureFormat::DXT5; case MTLPixelFormatBC7_RGBAUnorm: return AbstractTextureFormat::BPTC; -#endif case MTLPixelFormatR16Unorm: return AbstractTextureFormat::R16; case MTLPixelFormatDepth16Unorm: return AbstractTextureFormat::D16; #if TARGET_OS_OSX @@ -283,18 +279,20 @@ AbstractTextureFormat Metal::Util::ToAbstract(MTLPixelFormat format) } } +// Don't complain about BCn formats requiring iOS 16.4, these are just enum conversions +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunguarded-availability" + MTLPixelFormat Metal::Util::FromAbstract(AbstractTextureFormat format) { switch (format) { case AbstractTextureFormat::RGBA8: return MTLPixelFormatRGBA8Unorm; case AbstractTextureFormat::BGRA8: return MTLPixelFormatBGRA8Unorm; -#if TARGET_OS_OSX case AbstractTextureFormat::DXT1: return MTLPixelFormatBC1_RGBA; case AbstractTextureFormat::DXT3: return MTLPixelFormatBC2_RGBA; case AbstractTextureFormat::DXT5: return MTLPixelFormatBC3_RGBA; case AbstractTextureFormat::BPTC: return MTLPixelFormatBC7_RGBAUnorm; -#endif case AbstractTextureFormat::R16: return MTLPixelFormatR16Unorm; case AbstractTextureFormat::D16: return MTLPixelFormatDepth16Unorm; #if TARGET_OS_OSX @@ -307,6 +305,8 @@ MTLPixelFormat Metal::Util::FromAbstract(AbstractTextureFormat format) } } +#pragma clang diagnostic pop + // clang-format on // MARK: Shader Translation |
