I'd say that currently playing the Windows version using Whisky or Crossover runs better than native, using Msync and D3DMetal (GPTK), and with better image quality due to using FSR 2 instead 1.
Using a Mac Mini M1 16GB with settings:
1080p, triple buffering, capped to 30 fps, FSR 2 Balanced, Lowest preset then: texture high, filter AF2x, AO, Bloom, Depth field Circular.
The only drawback is some audio issues as is a wine known issue when CPU is busy, so disabled dynamic crowds and lowered audio output quality on MIDI settings as described here:
Distorted sound in Source gamesThen seems the Mac version is like the GPTK one but with code compiled for native ARM, which even does not make a big difference as they run very close in CPU usage (with same settings) but for the wine audio issue that seems to be fixed in newer (but Whisky/Crossover uses an older one).
Probably many users think this, but using Metal 2 targeting Intel Macs is just harming a lot the Apple Silicon version.
Analyzed the performance with Metal HUD and my results are these (quoting):
8 hours of BG3 on Intel and M1 macOSTested with the Metal HUD and noticed abnormal GPU time (greater than Presentation time), and with Monitor CPU underusage, far from 100% while the GPU is very close to 100%, while is supposed to be a CPU-bound type game at least on PC.
BG3 uses Metal 2.1 instead 3 (for Intel compatibility), and in any case those numbers makes me think there is an API communication issue, this is not optimized for Metal just translated from PC. If we look other games optimized like Lies of P or RE Village, GPU time is under Presentation time, and in the case of RE both numbers are very the same, that is the best (GPU working all the frame time but not delaying it).
As example of this, lowering resolution to even 240p on the Monastery only increases about 4-5 fps compared to 800p, so most of the time the GPU is rendering nothing just waiting for drawing commands as the Monastery is an area with a lot smalls elements to render, so is a nice place to test for API overhead issues.