<div dir="ltr">From 275d93c9ab0f533fa70d698726afc8adaaefb664 Mon Sep 17 00:00:00 2001<br>From: Adeniyi Mayokun <<a href="mailto:adeniyimayokun17@gmail.com">adeniyimayokun17@gmail.com</a>><br>Date: Wed, 14 Mar 2018 05:35:20 +0100<br>Subject: [PATCH] wined3d use SwitchToThread waits in wined3d_pause<br><br>---<br> dlls/wined3d/cs.c | 11 +++++++----<br> 1 file changed, 7 insertions(+), 4 deletions(-)<br><br>diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c<br>index 480717c06a..ca8b40c0af 100644<br>--- a/dlls/wined3d/cs.c<br>+++ b/dlls/wined3d/cs.c<br>@@ -494,7 +494,7 @@ void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *sw<br>      * IDXGIDevice1 allows tuning this. */<br>     while (pending > 1)<br>     {<br>-        wined3d_pause();<br>+        wined3d_pause(i++);<br>         pending = InterlockedCompareExchange(&cs->pending_presents, 0, 0);<br>     }<br> }<br>@@ -2589,10 +2589,13 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, enu<br>     return wined3d_cs_queue_require_space(&cs->queue[queue_id], size, cs);<br> }<br> <br>-static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id queue_id)<br>+static void wined3d_cs_mt_finish(struct wined3d_cs)<br> {<br>-    if (cs->thread_id == GetCurrentThreadId())<br>-        return wined3d_cs_st_finish(cs, queue_id);<br>+<br>+    int i = 0;<br>+<br>+        if (cs->thread_id == GetCurrentThreadId())<br>+                return wined3d_cs_st_finish(cs);<br> <br>     while (cs->queue[queue_id].head != *(volatile LONG *)&cs->queue[queue_id].tail)<br>         wined3d_pause();<br>-- <br>2.14.1<br><br><br></div>