diff options
author | Axel Davy <[email protected]> | 2014-11-17 16:58:29 +0100 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2014-11-18 02:02:54 +0000 |
commit | 7f565845a1f3ec871cccee88e2acf6be2e429797 (patch) | |
tree | e6aa710a658af3c40561d3a7bd495ef45a3f3b81 /src/gallium/state_trackers/nine/swapchain9.h | |
parent | 948e6c522827b64cfd9b02eb3ab34e7d1f145017 (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.h | 7 |
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 ) { |