History log of /external/mesa3d/src/gallium/state_trackers/nine/nine_lock.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/nine_lock.c
03888e8a46be7943378f0a09cea3f404ba623101 16-Sep-2016 Patrick Rudolph <siro@das-labor.org> st/nine: Remove volume9 {Set/Get/Free}PrivateData functions

Remove {Set/Get/Free}PrivateData in volume9.
Functionality has been implement in IUnknown interface.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_lock.c
485cba7eb4f53ccd40a24d229cb7307ce4be27de 16-Sep-2016 Patrick Rudolph <siro@das-labor.org> st/nine: Switch {Set/Get/Free}PrivateData functions

Switch {Set/Get/Free}PrivateData function to introduced IUnknown functions.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_lock.c
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/nine_lock.c
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/nine_lock.c