Mac: Wait for metal command buffer to finish before presenting drawable

This commit is contained in:
Michael Buckley 2022-10-30 20:02:11 -07:00
parent ae12429a0d
commit a2ebe3f09f
3 changed files with 32 additions and 5 deletions

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="19529" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21225" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies> <dependencies>
<deployment identifier="macosx"/> <deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19529"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21225"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<objects> <objects>

View File

@ -3369,6 +3369,31 @@ void QuitWithFatalError ( NSString *message)
- (void)setCPUOverclockMode:(int)mode - (void)setCPUOverclockMode:(int)mode
{ {
Settings.OverclockMode = mode; Settings.OverclockMode = mode;
switch (mode)
{
default:
case 0:
Settings.OneClockCycle = 6;
Settings.OneSlowClockCycle = 8;
Settings.TwoClockCycles = 12;
break;
case 1:
Settings.OneClockCycle = 6;
Settings.OneSlowClockCycle = 6;
Settings.TwoClockCycles = 12;
break;
case 2:
Settings.OneClockCycle = 4;
Settings.OneSlowClockCycle = 6;
Settings.TwoClockCycles = 8;
break;
case 3:
Settings.OneClockCycle = 3;
Settings.OneSlowClockCycle = 4;
Settings.TwoClockCycles = 6;
break;
}
} }
- (void)setApplySpecificGameHacks:(BOOL)flag - (void)setApplySpecificGameHacks:(BOOL)flag

View File

@ -368,11 +368,13 @@ static void S9xPutImageMetal (int width, int height, uint16 *buffer16)
[renderEncoder drawPrimitives:MTLPrimitiveTypeTriangle vertexStart:0 vertexCount:6]; [renderEncoder drawPrimitives:MTLPrimitiveTypeTriangle vertexStart:0 vertexCount:6];
[renderEncoder endEncoding]; [renderEncoder endEncoding];
[commandBuffer commit];
[commandBuffer waitUntilCompleted];
[commandBuffer presentDrawable:drawable]; [drawable present];
} }
[commandBuffer commit];
} }
void S9xTextMode (void) void S9xTextMode (void)