History log of /external/mesa3d/src/gallium/state_trackers/nine/volume9.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0444ef0832be74cd79fec026d552c5ffcff2cd41 15-Mar-2017 Axel Davy <axel.davy@ens.fr> st/nine: Resolve deadlock in surface/volume dtors when using csmt

Surfaces and Volumes can be freed in the worker thread.

Without this patch, pending_uploads_counter could be non-zero
in the Surfaces or Volumes dtor, leading to deadlock.
Instead decrease properly the counter before releasing the
item.

Also avoid another potential deadlock if the item is not
properly unlocked: Do not call UnlockRect which will cause deadlock,
but free directly using the deadlock safe
nine_context_get_pipe_multithread.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99246

CC: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Tested-by: James Harvey <lothmordor@gmail.com>
(cherry picked from commit bd85bb51c717a1858157c73adcb689e3986b2134)
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
1e64be6f91652e7e5ba60c86c379ee41bb7e4f81 04-Dec-2016 Axel Davy <axel.davy@ens.fr> st/nine: Do not wait for DEFAULT lock for volumes when we can

If the volumes (and the texture container) are not referenced,
then they are no pending operations on them. We can lock directly.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
7089d88199d607d8a135a9605f14ec6393134205 04-Dec-2016 Axel Davy <axel.davy@ens.fr> st/nine: Bind destination for surface/volume uploads

Will enable to use the bind count as an information for
whether the surface/volume is used in the worker thread.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
d4a9b21feb890c149f0aa44b0bb6ea63a9932925 04-Dec-2016 Axel Davy <axel.davy@ens.fr> st/nine: Use nine_context_box_upload for volumes

Use nine_context_box_upload for uploads:
. systemmem volume to default volume
. managed volume internal content to its resource.

Check the uploads are executed before any action
that can alter the data, that is LockBox and
volume destruction.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
31262bbce085c69ef7a654528f509cb37415b41f 12-Nov-2016 Axel Davy <axel.davy@ens.fr> st/nine: use get_pipe_acquire/release when possible

Use the acquire/release semantic when we don't need
to wait for any pending command.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
c7237e2c5c9935d80f04f2793bde9489ca6bda9d 28-Oct-2016 Axel Davy <axel.davy@ens.fr> st/nine: Access pipe_context via NineDevice9_GetPipe

Except for nine_ff and nine_state.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
b2f17e5f62e43ab6fd07d8752d0fc27f89f8aa37 06-Dec-2016 Axel Davy <axel.davy@ens.fr> st/nine: Silent warnings with guid_str

In non-debug build, the variables are unused,
and thus trigger a compilation warning.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
fe7bb46134162c9a9a18832f1746991aa78121e8 22-Oct-2016 Axel Davy <axel.davy@ens.fr> st/nine: Fix mistake in Volume9 UnlockBox

In the format fallback path,
the height was used instead of the depth.

CC: "12.0 13.0" <mesa-stable@lists.freedesktop.org>

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
942778099ea597ee6b04ebdc74f506667fc7782c 21-Oct-2016 Axel Davy <axel.davy@ens.fr> st/nine: Use align_calloc instead of align_malloc

We are not sure exactly what needs to be 0 initialized,
but we are missing some cases. 0 initialize all our current
aligned allocation.

Fixes Tree of Savior visual issues.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.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/volume9.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/volume9.c
f2eacef33de8d7b136b485927cb10f15d7439d48 14-Sep-2016 Patrick Rudolph <siro@das-labor.org> st/nine: Print interface id in NineVolume9_GetContainer

To ease debugging print interface id.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
1ffe77e7bb2486ea74cda077ed2a9622b758395c 16-Jul-2016 Marek Olšák <marek.olsak@amd.com> gallium: split transfer_inline_write into buffer and texture callbacks

to reduce the call indirections with u_resource_vtbl.

The worst call tree you could get was:
- u_transfer_inline_write_vtbl
- u_default_transfer_inline_write
- u_transfer_map_vtbl
- driver_transfer_map
- u_transfer_unmap_vtbl
- driver_transfer_unmap

That's 6 indirect calls. Some drivers only had 5. The goal is to have
1 indirect call for drivers that care. The resource type can be determined
statically at most call sites.

The new interface is:
pipe_context::buffer_subdata(ctx, resource, usage, offset, size, data)
pipe_context::texture_subdata(ctx, resource, level, usage, box, data,
stride, layer_stride)

v2: fix whitespace, correct ilo's behavior

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Acked-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
23e2a235dceaf1f2a7a3cf08e3c34c5068f8cc78 07-Mar-2016 Axel Davy <axel.davy@ens.fr> st/nine: Remove one useless function output

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
258ca1823c322661122d2d033c8b7facd3eb7767 07-Mar-2016 Axel Davy <axel.davy@ens.fr> st/nine: Add format fallback with conversion to volumes

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.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/volume9.c
6cba347530433c61b218d2b897fb57f33835b37b 26-Jan-2016 Axel Davy <axel.davy@ens.fr> st/nine: SCRATCH does support all formats

Add new argument to d3d9_to_pipe_format_checked to
be able to bypass format support checks. This argument
is set to TRUE when the requested Pool is SCRATCH.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
77a5871c1dfcc2cf3032e873a5c7e4a2e7093889 26-Jan-2016 Axel Davy <axel.davy@ens.fr> st/nine: Do not set resource usage for SYSTEMMEM

We do not create a resource for SYSTEMMEM textures,
thus we do not need to set resource usage.

The only exception is vertexbuffer SYSTEMMEM, since
we do use a pipe resource for them.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
94d91c67077a5efd13b9505fe01a3c80ccb37bc9 28-Jan-2016 Axel Davy <axel.davy@ens.fr> st/nine: Use align_free when needed

Use align_free to free memory allocated
with align_malloc.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
7f58ba45a8ef043fba98cdd56c122fe5e3091332 31-Aug-2015 Patrick Rudolph <siro@das-labor.org> st/nine: Fix Volumetexture9_LockBox

Check for valid locked box dimensions.

Fixes failing wine tests device.c test_lockbox_invalid.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
f396cd43ab148ff77b8df3344610ee6f2224d21d 14-May-2015 Axel Davy <axel.davy@ens.fr> st/nine: Fix Lock Checks for Compressed textures

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
48d895aa4b2475ef0af234b832d92d0ac4a47761 13-May-2015 Patrick Rudolph <siro@das-labor.org> st/nine: Return NULL pointer in lock error cases

Tests showed, that in case of errors, the pBits pointer is set to NULL.
The pBits field isn't set to NULL in case of an already locked object.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
b75f830166eaf294e43746f1bf5630f7f2dcf30f 03-May-2015 Axel Davy <axel.davy@ens.fr> st/nine: Simplify NineVolume9_CopyVolume

We had only one usage for this function.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
3f36ad732c7fbe8fd38aa852c3699101fdd5041d 05-May-2015 Axel Davy <axel.davy@ens.fr> st/nine: Simplify Volume9 dirty region tracking

Similar to what was done for Surface9, track the dirty region
only in VolumeTexture9.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
886227d363b7e889e2a9162c27059e2a9fe79cb7 12-May-2015 Patrick Rudolph <siro@das-labor.org> st/nine: Align texture memory

Align texture memory on 32 byte boundry to allow
SSE/AVX memcpy to work on locked rects.

This fixes some crashes with games using SSE.

Reviewed-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
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/volume9.c
7a7758c5525fa90bf7c546acc58a9ea41f7d320b 19-Feb-2015 Axel Davy <axel.davy@ens.fr> st/nine: D3DUSAGE_AUTOGENMIPMAP is forbidden for volumes

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
4c2247ac60f426a6441f964f2204af9f8dc04dc5 19-Feb-2015 Axel Davy <axel.davy@ens.fr> st/nine: Remove impossible cases with Managed textures

Copying to/from a Managed texture is forbidden.
Rendering to a Managed texture is forbidden.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
e558ce98f2b01e11ff79c29efaea2877121ae04a 19-Feb-2015 Axel Davy <axel.davy@ens.fr> st/nine: Encapsulate variables for MANAGED resource

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
27e438e35630819914bd42c5aa27fe6e53ebe491 10-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Refactor format d3d9 to pipe conversion

Move the checks of whether the format is supported
into a common place.
The advantage is that allows to handle when a d3d9
format can be mapped to several formats, and that
cards don't support all of them.

Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
dfeca90419ac50e0776a3fdb102a2975c8075391 07-Jan-2015 Patrick Rudolph <siro@das-labor.org> st/nine: Do not leak private data in volume9.

This->data was allocated by nine, but not freed.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.c
7f74b9d47928979fdad445db1e0f249688c62991 25-Nov-2014 Stanislaw Halik <sthalik@misaki.pl> st/nine: call DBG() at more external entry points

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Stanislaw Halik <sthalik@misaki.pl>
/external/mesa3d/src/gallium/state_trackers/nine/volume9.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/volume9.c