Revert "MetalViewController: run a no-op DisplayLink at the target framerate so iOS won't switch to a slower rate"
This reverts commit 6010182592.
This commit is contained in:
1 parent
4e44136f51
commit
39b2621e30
1 file changed
-19
@@ -18,7 +18,6 @@
|
|||||||
MetalView *_metalView;
|
MetalView *_metalView;
|
||||||
MetalVideoRenderer *_renderer;
|
MetalVideoRenderer *_renderer;
|
||||||
MetricsHandler _metricsHandler;
|
MetricsHandler _metricsHandler;
|
||||||
CADisplayLink *_displayLink;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (nonnull instancetype)initWithFrame:(CGRect)bounds framerate:(float)framerate enableHdr:(BOOL)enableHdr metricsHandler:(MetricsHandler)metricsHandler {
|
- (nonnull instancetype)initWithFrame:(CGRect)bounds framerate:(float)framerate enableHdr:(BOOL)enableHdr metricsHandler:(MetricsHandler)metricsHandler {
|
||||||
@@ -91,20 +90,6 @@
|
|||||||
// Initialize the renderer-dependent view properties.
|
// Initialize the renderer-dependent view properties.
|
||||||
view.metalLayer.pixelFormat = renderer.colorPixelFormat;
|
view.metalLayer.pixelFormat = renderer.colorPixelFormat;
|
||||||
view.metalLayer.maximumDrawableCount = 3;
|
view.metalLayer.maximumDrawableCount = 3;
|
||||||
|
|
||||||
// We need a no-op displaylink timer or iOS can decide to run at 60fps
|
|
||||||
// The overhead from this should be minimal.
|
|
||||||
_displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(displayLinkHandler:)];
|
|
||||||
if (@available(iOS 15.0, tvOS 15.0, *)) {
|
|
||||||
_displayLink.preferredFrameRateRange = CAFrameRateRangeMake(_framerate, _framerate, _framerate);
|
|
||||||
} else {
|
|
||||||
_displayLink.preferredFramesPerSecond = _framerate;
|
|
||||||
}
|
|
||||||
[_displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)displayLinkHandler:(CADisplayLink *)link {
|
|
||||||
// Rendering does not use DisplayLink, this exists to fool iOS into keeping us running at the desired framerate
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)waitToRenderTo:(nonnull CAMetalLayer *)layer {
|
- (void)waitToRenderTo:(nonnull CAMetalLayer *)layer {
|
||||||
@@ -139,10 +124,6 @@
|
|||||||
|
|
||||||
Log(LOG_I, @"[MetalViewController] viewDidDisappear");
|
Log(LOG_I, @"[MetalViewController] viewDidDisappear");
|
||||||
|
|
||||||
if (_displayLink) {
|
|
||||||
[_displayLink invalidate];
|
|
||||||
}
|
|
||||||
|
|
||||||
[_renderer shutdown];
|
[_renderer shutdown];
|
||||||
_renderer = nil;
|
_renderer = nil;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user