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 b09f362191
commit cd24276a7d

View File

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