History log of /external/mesa3d/src/gallium/state_trackers/nine/iunknown.h
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/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