forked from MeloNX/MeloNX
CAMetalLayer usage from background thread fix
This commit is contained in:
parent
abbb3bb0c3
commit
2d1a357d1b
@ -484,23 +484,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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user