Archived
1
0
forked from MeloNX/MeloNX

CAMetalLayer usage from background thread fix

This commit is contained in:
Daniil Vinogradov 2025-02-17 14:36:51 +01:00
parent abbb3bb0c3
commit 2d1a357d1b

View File

@ -484,23 +484,21 @@ class Ryujinx {
func repeatuntilfindLayer() {
DispatchQueue.global(qos: .background).async {
Task { @MainActor in
while self.metalLayer == nil {
let layer = self.getMetalLayer(nil)
if layer != nil {
DispatchQueue.main.async {
self.metalLayer = layer
}
self.metalLayer = layer
break
}
Thread.sleep(forTimeInterval: 0.1)
try await Task.sleep(nanoseconds: 100_000_000)
}
}
}
@MainActor
func getMetalLayer(_ window: OpaquePointer?) -> CAMetalLayer? {
var window = window
if window == nil {