970556292b37fb9f7a64460a964e7a88503dcab6 |
|
05-Jan-2017 |
Axel Davy <axel.davy@ens.fr> |
st/nine: Protect dtors with mutex 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 <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
1843e36b03ed04d24a8baaac81eda3a84e676c72 |
|
03-Dec-2016 |
Axel Davy <axel.davy@ens.fr> |
st/nine: Do not bind the container if forward is false This doesn't make sense to bind the container in that specific case. Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
2fc8ef1401d455e3861bb233f09de4158d56a6be |
|
03-Dec-2016 |
Axel Davy <axel.davy@ens.fr> |
st/nine: Comment and simplify iunknown The behaviour is a bit less obscure now. Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
14875ebd83fe746fc8c42496c385cc261e495dd2 |
|
03-Dec-2016 |
Axel Davy <axel.davy@ens.fr> |
st/nine: Fix NineUnknown_Detach We don't bind the container in AddRef. Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
0a5252d25b3e65c29c3c231cec46fed8ca7dedb0 |
|
26-Oct-2016 |
Axel Davy <axel.davy@ens.fr> |
st/nine: Use atomics for nine_bind 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 <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
4117f5e1ab3e87313a0ec9ad2358aa6614a99d63 |
|
16-Sep-2016 |
Patrick Rudolph <siro@das-labor.org> |
st/nine: Implement {Set/Get/Free}PrivateData in iunknown Implement {Set/Get/Free}PrivateData in iunknown to get rid of duplicated code in resource9 and volume9. Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
3e9d01ff3989963f10d6dfa567c23afcaef3f6e8 |
|
05-Mar-2016 |
Axel Davy <axel.davy@ens.fr> |
st/nine: Increase minor d3dadapter9drm ABI 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 <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
77d6c11f8fa87ba1070028cb036807dc8a115633 |
|
07-Feb-2016 |
Axel Davy <axel.davy@ens.fr> |
st/nine: Align stack for entry points 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 <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9 |
|
21-Jul-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
gallium: replace INLINE with inline 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 <imirkin@alum.mit.edu> Acked-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|
fdd96578ef2dfe9c4ad5aab5858036298d444a64 |
|
04-Aug-2011 |
Joakim Sindholt <opensource@zhasha.com> |
nine: Add state tracker nine for Direct3D9 (v3) 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 <jfonseca@vmware.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Axel Davy <axel.davy@ens.fr> Signed-off-by: David Heidelberg <david@ixit.cz>
/external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
|