Created
May 19, 2023 23:40
-
-
Save rb6502/8a1736ee3775f998e8e71faa47ae4b59 to your computer and use it in GitHub Desktop.
Experimental MAME patch for macOS 10.14/10.15
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/3rdparty/bgfx/src/renderer_mtl.mm b/3rdparty/bgfx/src/renderer_mtl.mm | |
index 2317c16d6b5..7d97f1c5d78 100644 | |
--- a/3rdparty/bgfx/src/renderer_mtl.mm | |
+++ b/3rdparty/bgfx/src/renderer_mtl.mm | |
@@ -14,6 +14,12 @@ | |
# include <Cocoa/Cocoa.h> | |
#endif | |
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110000 | |
+#undef OLD_MACOS | |
+#else | |
+#define OLD_MACOS | |
+#endif | |
+ | |
#import <Foundation/Foundation.h> | |
#define UNIFORM_BUFFER_SIZE (8*1024*1024) | |
@@ -212,18 +218,31 @@ inline void setViewType(ViewId _view, const bx::StringView _str) | |
MTLPixelFormat m_fmt; | |
MTLPixelFormat m_fmtSrgb; | |
MTLReadWriteTextureTier m_rwTier; | |
+#ifdef OLD_MACOS | |
+ uint8_t m_mapping[4]; | |
+#else | |
MTLTextureSwizzleChannels m_mapping; | |
+#endif | |
bool m_autoGetMipmap; | |
}; | |
static TextureFormatInfo s_textureFormat[] = | |
{ | |
+#ifdef OLD_MACOS | |
+#define $0 0 | |
+#define $1 1 | |
+#define $R 2 | |
+#define $G 3 | |
+#define $B 4 | |
+#define $A 5 | |
+#else | |
#define $0 MTLTextureSwizzleZero | |
#define $1 MTLTextureSwizzleOne | |
#define $R MTLTextureSwizzleRed | |
#define $G MTLTextureSwizzleGreen | |
#define $B MTLTextureSwizzleBlue | |
#define $A MTLTextureSwizzleAlpha | |
+#endif | |
{ MTLPixelFormat(130/*BC1_RGBA*/), MTLPixelFormat(131/*BC1_RGBA_sRGB*/), MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // BC1 | |
{ MTLPixelFormat(132/*BC2_RGBA*/), MTLPixelFormat(133/*BC2_RGBA_sRGB*/), MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // BC2 | |
{ MTLPixelFormat(134/*BC3_RGBA*/), MTLPixelFormat(135/*BC3_RGBA_sRGB*/), MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // BC3 | |
@@ -2917,8 +2936,9 @@ void writeString(bx::WriterI* _writer, const char* _str) | |
desc.mipmapLevelCount = ti.numMips; | |
desc.sampleCount = 1; | |
desc.arrayLength = ti.numLayers; | |
+#ifndef OLD_MACOS | |
desc.swizzle = tfi.m_mapping; | |
- | |
+#endif | |
if (s_renderMtl->m_iOS9Runtime | |
|| s_renderMtl->m_macOS11Runtime) | |
{ |
Try this revised version, which applies cleanly to 0.255 and fixes the MTLPixelFormatBGR5A1Unorm thing.
https://gist.github.com/rb6502/f27ae0c6f3ec961d229baee77caf5dcc
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I’m getting a error:‘MTLPixelFormatBGR5A1Unorm’ is unavailable: not available on macOS
This is with NOWERROR=1 specified on the make command