25 lines
957 B
Diff
25 lines
957 B
Diff
diff --git a/src/renderer/RenderDevice.cpp b/src/renderer/RenderDevice.cpp
|
|||
|
|
index 1fedf4e..3ccc87f 100644
|
||
|
|
--- a/src/renderer/RenderDevice.cpp
|
||
|
|
+++ b/src/renderer/RenderDevice.cpp
|
||
|
|
@@ -2168,10 +2168,19 @@ void RenderDevice::WaitForVSync(const bool asynchronous)
|
||
|
|
m_vsyncCount++;
|
||
|
|
m_presentTimestampReference = usec();
|
||
|
|
};
|
||
|
|
+#ifndef __EMSCRIPTEN__
|
||
|
|
if (asynchronous)
|
||
|
|
std::thread(lambda).detach(); // Reuse thread ? (we always at most one running at a time)
|
||
|
|
else
|
||
|
|
lambda();
|
||
|
|
+#else
|
||
|
|
+ // vpinball-wasm: a single-threaded Emscripten build (no -pthread /
|
||
|
|
+ // SharedArrayBuffer) cannot construct real std::thread workers - run
|
||
|
|
+ // synchronously inline instead. This only updates m_vsyncCount/timestamp
|
||
|
|
+ // bookkeeping (the real vblank-wait branches above are already excluded
|
||
|
|
+ // for __STANDALONE__ builds), so synchronous execution is equivalent.
|
||
|
|
+ lambda();
|
||
|
|
+#endif
|
||
|
|
}
|
||
|
|
|
||
|
|
#if defined(ENABLE_BGFX)
|