Hi,

The three patches seem ok.
Thanks,

Reviewed-by: Axel Davy <davyax...@gmail.com>



I assume you don't have push rights. I will push in a few days if nobody complains.

Yours,

Axel Davy


On 06/11/2018 09:27, Andre Heider wrote:
This fixes various crashes and hangs when using nine's 'thread_submit'
feature.

On 64bit, the thread function's data argument would just be NULL.
On 32bit, the data argument would be garbage depending on the compiler
flags (in my case -march>=core2).

Fixes: f3fa7e3068512d ("st/nine: Use WINE thread for threadpool")
Cc: mesa-sta...@lists.freedesktop.org
Signed-off-by: Andre Heider <a.hei...@gmail.com>
---
  src/gallium/state_trackers/nine/threadpool.c | 14 +++++++++++++-
  1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/nine/threadpool.c 
b/src/gallium/state_trackers/nine/threadpool.c
index cc62fd2579..19721aab2d 100644
--- a/src/gallium/state_trackers/nine/threadpool.c
+++ b/src/gallium/state_trackers/nine/threadpool.c
@@ -37,6 +37,7 @@
  #include "os/os_thread.h"
  #include "threadpool.h"
+/* POSIX thread function */
  static void *
  threadpool_worker(void *data)
  {
@@ -76,6 +77,15 @@ threadpool_worker(void *data)
      return NULL;
  }
+/* Windows thread function */
+static DWORD NINE_WINAPI
+wthreadpool_worker(void *data)
+{
+    threadpool_worker(data);
+
+    return 0;
+}
+
  struct threadpool *
  _mesa_threadpool_create(struct NineSwapChain9 *swapchain)
  {
@@ -87,7 +97,9 @@ _mesa_threadpool_create(struct NineSwapChain9 *swapchain)
      pthread_mutex_init(&pool->m, NULL);
      pthread_cond_init(&pool->new_work, NULL);
- pool->wthread = NineSwapChain9_CreateThread(swapchain, threadpool_worker, pool);
+    /* This uses WINE's CreateThread, so the thread function needs to use
+     * the Windows ABI */
+    pool->wthread = NineSwapChain9_CreateThread(swapchain, wthreadpool_worker, 
pool);
      if (!pool->wthread) {
          /* using pthread as fallback */
          pthread_create(&pool->pthread, NULL, threadpool_worker, pool);


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to