Module: Mesa
Branch: master
Commit: bdf035ea6f784b90a6cbfd4ce16f3188ab15b2d3
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bdf035ea6f784b90a6cbfd4ce16f3188ab15b2d3

Author: Axel Davy <axel.d...@ens.fr>
Date:   Wed Mar 15 22:53:36 2017 +0100

st/nine: Use atomics for available_texture_mem

Resource dtor can be executed in the worker thread.
Use atomic to avoid threading safety issues.

CC: "17.0" <mesa-sta...@lists.freedesktop.org>
Signed-off-by: Axel Davy <axel.d...@ens.fr>
Tested-by: James Harvey <lothmor...@gmail.com>

---

 src/gallium/state_trackers/nine/resource9.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/nine/resource9.c 
b/src/gallium/state_trackers/nine/resource9.c
index c583724174..852801624a 100644
--- a/src/gallium/state_trackers/nine/resource9.c
+++ b/src/gallium/state_trackers/nine/resource9.c
@@ -79,7 +79,7 @@ NineResource9_ctor( struct NineResource9 *This,
         if (This->info.target != PIPE_BUFFER) {
             This->size = util_resource_size(&This->info);
 
-            This->base.device->available_texture_mem -= This->size;
+            p_atomic_add(&This->base.device->available_texture_mem, 
-This->size);
             if (This->base.device->available_texture_mem <=
                     This->base.device->available_texture_limit) {
                 return D3DERR_OUTOFVIDEOMEMORY;
@@ -111,7 +111,7 @@ NineResource9_dtor( struct NineResource9 *This )
 
     /* NOTE: size is 0, unless something has actually been allocated */
     if (This->base.device)
-        This->base.device->available_texture_mem += This->size;
+        p_atomic_add(&This->base.device->available_texture_mem, This->size);
 
     NineUnknown_dtor(&This->base);
 }

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to