summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine/swapchain9.h
diff options
context:
space:
mode:
authorAxel Davy <[email protected]>2014-11-17 16:58:29 +0100
committerEmil Velikov <[email protected]>2014-11-18 02:02:54 +0000
commit7f565845a1f3ec871cccee88e2acf6be2e429797 (patch)
treee6aa710a658af3c40561d3a7bd495ef45a3f3b81 /src/gallium/state_trackers/nine/swapchain9.h
parent948e6c522827b64cfd9b02eb3ab34e7d1f145017 (diff)
nine: Implement threadpool
DRI_PRIME setups have different issues due the lack of dma-buf fences support in the drivers. For DRI3 DRI_PRIME, a race can appear, making tearings visible, or worse showing older content than expected. Until dma-buf fences are well supported (and by all drivers), an alternative is to send the buffers to the server only when rendering has finished. Since waiting the rendering has finished in the main thread has a performance impact, this patch uses an additional thread to offload the wait and the sending of the buffers to the server. Acked-by: Jose Fonseca <[email protected]> Reviewed-by: David Heidelberg <[email protected]> Signed-off-by: Axel Davy <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/nine/swapchain9.h')
-rw-r--r--src/gallium/state_trackers/nine/swapchain9.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/nine/swapchain9.h b/src/gallium/state_trackers/nine/swapchain9.h
index 566f78ab0ed..2afd6ab2954 100644
--- a/src/gallium/state_trackers/nine/swapchain9.h
+++ b/src/gallium/state_trackers/nine/swapchain9.h
@@ -28,6 +28,8 @@
#include "d3dadapter/d3dadapter9.h"
+#include "threadpool.h"
+
struct NineDevice9;
struct NineSurface9;
struct nine_winsys_swapchain;
@@ -68,7 +70,12 @@ struct NineSwapChain9
struct NineSurface9 *zsbuf;
D3DGAMMARAMP gamma;
+
+ struct threadpool *pool;
+ struct threadpool_task **tasks;
+ BOOL enable_threadpool;
};
+
static INLINE struct NineSwapChain9 *
NineSwapChain9( void *data )
{