aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine/iunknown.h
Commit message (Collapse)AuthorAgeFilesLines
* st/nine: Add parameter to start with bindAxel Davy2018-09-251-0/+1
| | | | | | | Add a parameter to start new object with a bind instead of a refcount. Signed-off-by: Axel Davy <[email protected]>
* st/nine: Protect dtors with mutexAxel Davy2017-01-121-0/+3
| | | | | | | | | | | | | | | | | | | | | When the flag D3DCREATE_MULTITHREAD is set, a global mutex is used to protect nine calls. However for performance reasons, AddRef and Release didn't hold the mutex, and instead used atomics. Unfortunately at item release, the item can be destroyed, and that destruction path should be protected by a mutex (at least for some objects). Without this patch, it is possible an app thread is in a dtor while another thread is making gallium nine calls. It is possible that two threads are using the same gallium pipe, which is forbiden. The problem has been made worse with csmt, because it can cause hang, since nine_csmt_process is not threadsafe. Fixes Hitman hang, and possibly others. Signed-off-by: Axel Davy <[email protected]>
* st/nine: Do not bind the container if forward is falseAxel Davy2016-12-201-7/+5
| | | | | | This doesn't make sense to bind the container in that specific case. Signed-off-by: Axel Davy <[email protected]>
* st/nine: Comment and simplify iunknownAxel Davy2016-12-201-14/+16
| | | | | | The behaviour is a bit less obscure now. Signed-off-by: Axel Davy <[email protected]>
* st/nine: Fix NineUnknown_DetachAxel Davy2016-12-201-2/+1
| | | | | | We don't bind the container in AddRef. Signed-off-by: Axel Davy <[email protected]>
* st/nine: Use atomics for nine_bindAxel Davy2016-12-201-2/+3
| | | | | | | | | nine_bind didn't need atomics up to now, because it's use what always within a protected mutex. We need to use atomics because with the next patches several threads may use nine_bind. Signed-off-by: Axel Davy <[email protected]>
* st/nine: Implement {Set/Get/Free}PrivateData in iunknownPatrick Rudolph2016-10-101-0/+20
| | | | | | | | Implement {Set/Get/Free}PrivateData in iunknown to get rid of duplicated code in resource9 and volume9. Signed-off-by: Patrick Rudolph <[email protected]> Reviewed-by: Axel Davy <[email protected]>
* st/nine: Increase minor d3dadapter9drm ABIAxel Davy2016-05-181-1/+3
| | | | | | | | | | | Version 0.1 allows to assume that the second element of the IDirect3D* structures will be a pointer to the internal nine vtable. This is useful if the gallium nine user wants to wrap some interfaces. Signed-off-by: Axel Davy <[email protected]>
* st/nine: Align stack for entry pointsAxel Davy2016-02-121-4/+5
| | | | | | | | | | For 32 bits, incoming stack is 4-byte aligned. We need to realign the stack to 16-byte at some point, or there are issues later (crash with SSE, llvm, etc). This patch chooses to align the stack at API entry points. Signed-off-by: Axel Davy <[email protected]>
* gallium: replace INLINE with inlineIlia Mirkin2015-07-211-6/+6
| | | | | | | | | | | | | | | | Generated by running: git grep -l INLINE src/gallium/ | xargs sed -i 's/\bINLINE\b/inline/g' git grep -l INLINE src/mesa/state_tracker/ | xargs sed -i 's/\bINLINE\b/inline/g' git checkout src/gallium/state_trackers/clover/Doxyfile and manual edits to src/gallium/include/pipe/p_compiler.h src/gallium/README.portability to remove mentions of the inline define. Signed-off-by: Ilia Mirkin <[email protected]> Acked-by: Marek Olšák <[email protected]>
* nine: Add state tracker nine for Direct3D9 (v3)Joakim Sindholt2014-11-181-0/+153
Work of Joakim Sindholt (zhasha) and Christoph Bumiller (chrisbmr). DRI3 port done by Axel Davy (mannerov). v2: - nine_debug.c: klass extended from 32 chars to 96 (for sure) by glennk - Nine improvements by Axel Davy (which also fixed some wine tests) - by Emil Velikov: - convert to static/shared drivers - Sort and cleanup the includes - Use AM_CPPFLAGS for the defines - Add the linker garbage collector - Restrict the exported symbols (think llvm) v3: - small nine fixes - build system improvements by Emil Velikov v4: [Emil Velikov] - Do no link against libudev. No longer needed. Acked-by: Jose Fonseca <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Axel Davy <[email protected]> Signed-off-by: David Heidelberg <[email protected]>