URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b921da3b74d71598c47da2bc46e445e3813d7933
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:39:05 2017 +0200

    radeonsi: use a threaded context even for debug contexts
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1a6d9e087a2171ae4d0f2ac2697ba4042fbad4c1
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:39:05 2017 +0200

    radeonsi: record and dump time of flush
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b07569ad8b7bbe6ea33c984013a2f2607cd7ddaf
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:39:01 2017 +0200

    ddebug: optionally handle transfer commands like draws
    
    Transfer commands can have associated GPU operations.
    
    Enabled by passing GALLIUM_DDEBUG=transfers.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=18fd2a859de51353187f993ea2852bebe1ea5734
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:39:01 2017 +0200

    ddebug: dump context and before/after times of draws
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba2f2b6f2aa05dab01389cf27a5001d0d43adcb4
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:39:00 2017 +0200

    ddebug: generalize print_named_xxx via a PRINT_NAMED macro
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c9fefa062b369056eb4c3ef82b529b0acc4cc88a
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:59 2017 +0200

    ddebug: rewrite to always use a threaded approach
    
    This patch has multiple goals:
    
    1. Off-load the writing of records in 'always' mode to another thread
       for performance.
    
    2. Allow using ddebug with threaded contexts. This really forces us to
       move some of the "after_draw" handling into another thread.
    
    3. Simplify the different modes of ddebug, both in the code and in
       the user interface, i.e. GALLIUM_DDEBUG. In particular, there's
       no 'pipelined' anymore, since we're always pipelined; and 'noflush'
       is replaced by 'flush', since we no longer flush by default.
    
    4. Fix the fences in pipelining mode. They previously relied on writes
       via pipe_context::clear_buffer. However, on radeonsi, those could
       (quite reasonably) end up in the SDMA buffer. So we use the newly
       added PIPE_FLUSH_{TOP,BOTTOM}_OF_PIPE fences instead.
    
    5. Improve pipelined mode overall, using the finer grained information
       provided by the new fences.
    
    Overall, the result is that pipelined mode should be more useful, and
    using ddebug in default mode is much less invasive, in the sense that
    it changes the overall driver behavior less (which is kind of crucial
    for a driver debugging tool).
    
    An example of the new hang debug output:
    
      Gallium debugger active.
      Hang detection timeout is 1000ms.
      GPU hang detected, collecting information...
    
      Draw #   driver  prev BOP  TOP  BOP  dump file
      -------------------------------------------------------------
      2          YES      YES    YES  NO   
/home/nha/ddebug_dumps/shader_runner_19919_00000000
      3          YES      NO     YES  NO   
/home/nha/ddebug_dumps/shader_runner_19919_00000001
      4          YES      NO     YES  NO   
/home/nha/ddebug_dumps/shader_runner_19919_00000002
      5          YES      NO     YES  NO   
/home/nha/ddebug_dumps/shader_runner_19919_00000003
    
      Done.
    
    We can see that there were almost certainly 4 draws in flight when
    the hang happened: the top-of-pipe fence was signaled for all 4 draws,
    the bottom-of-pipe fence for none of them. In virtually all cases,
    we'd expect the first draw in the list to be at fault, but due to the
    GPU parallelism, it's possible (though highly unlikely) that one of
    the later draws causes a component to get stuck in a way that prevents
    the earlier draws from making progress as well.
    
    (In the above example, there were actually only 3 draws truly in flight:
    the last draw is a blit that waits for the earlier draws; however, its
    top-of-pipe fence is emitted before the cache flush and wait, and so
    the fact that the draw hasn't truly started yet can only be seen from a
    closer inspection of GPU state.)
    
    Acked-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e8bb8758ddfa884b55abf8648af9cb7239bc1f66
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:58 2017 +0200

    ddebug: use an atomic increment when numbering files
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d6710fe874cce4c01d48279e25210279a06c7543
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:58 2017 +0200

    dd/util: extract dd_get_debug_filename_and_mkdir
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8491fcafab2e5e534c5b38606eef4873adac4987
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:57 2017 +0200

    gallium/u_dump: add and use util_dump_transfer_usage
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b8033a4a7e52a4db4d60ce6e70fb30c9a9224fe
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:56 2017 +0200

    gallium/u_dump: add util_dump_ns
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f4a03b08acc58945d717324e88b3d2bcec5d354
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:55 2017 +0200

    gallium/u_dump: export util_dump_ptr
    
    Change format to %p while we're at it.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=125a915052757f906c872e3fa2952e455bb646f3
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:54 2017 +0200

    radeonsi: implement PIPE_FLUSH_{TOP,BOTTOM}_OF_PIPE
    
    v2: use uncached system memory for the fence, and use the CPU to
        clear it so we never read garbage when checking the fence
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e4627ac8fb5422e98311724cce04f31b65cc2b3e
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:53 2017 +0200

    radeonsi: document some subtle details of fence_finish & fence_server_sync
    
    v2: remove the change to si_fence_server_sync, we'll handle that more
        robustly
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=14b9fa75e4c35ccccb767004ba19212901aae404
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:53 2017 +0200

    gallium: add pipe_context::callback
    
    For running post-draw operations inside the driver thread. ddebug will
    use it.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2bdfbb0e5380f63f044151a12e149745fa672a77
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:52 2017 +0200

    gallium/u_threaded: implement pipe_context::set_log_context
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=244536d3d6b40c1763d1e2b3e7676665afa69101
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:51 2017 +0200

    gallium/u_threaded: avoid syncs for get_query_result
    
    Queries should still get marked as flushed when flushes are executed
    asynchronously in the driver thread.
    
    To this end, the management of the unflushed_queries list is moved into
    the driver thread.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=609a230375cae7710b2a9f40a42341b4cd853a3e
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:50 2017 +0200

    gallium/u_threaded: implement asynchronous flushes
    
    This requires out-of-band creation of fences, and will be signaled to
    the pipe_context::flush implementation by a special TC_FLUSH_ASYNC flag.
    
    v2:
    - remove an incorrect assertion
    - handle fence_server_sync for unsubmitted fences by
      relying on the improved cs_add_fence_dependency
    - only implement asynchronous flushes on amdgpu
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=11b380ed0c61344b461ad2d1b66bf81e2c46b84b
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:50 2017 +0200

    gallium/u_threaded: mark queries flushed only for non-deferred flushes
    
    The driver uses (and must use) the flushed flag of queries as a hint that
    it does not have to check for synchronization with currently queued up
    commands. Deferred flushes do not actually flush queued up commands, so
    we must not set the flushed flag for them.
    
    Found by inspection.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=78a4750d9155bf810348e2b2bf05ee3366f56f43
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:49 2017 +0200

    radeonsi: move fence functions to si_fence.c
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6dbc804a87aef34db138c607ba435d701703bc6
Author: Nicolai Hähnle <[email protected]>
Date:   Thu Nov 9 14:00:22 2017 +0100

    winsys/amdgpu: handle cs_add_fence_dependency for deferred/unsubmitted 
fences
    
    The idea is to fix the following interleaving of operations
    that can arise from deferred fences:
    
     Thread 1 / Context 1          Thread 2 / Context 2
     --------------------          --------------------
     f = deferred flush
     <------- application-side synchronization ------->
                                   fence_server_sync(f)
                                   ...
                                   flush()
     flush()
    
    We will now stall in fence_server_sync until the flush of context 1
    has completed.
    
    This scenario was unlikely to occur previously, because applications
    seem to be doing
    
     Thread 1 / Context 1          Thread 2 / Context 2
     --------------------          --------------------
     f = glFenceSync()
     glFlush()
     <------- application-side synchronization ------->
                                   glWaitSync(f)
    
    ... and indeed they probably *have* to use this ordering to avoid
    deadlocks in the GLX model, where all GL operations conceptually
    go through a single connection to the X server. However, it's less
    clear whether applications have to do this with other WSI (i.e. EGL).
    Besides, even this sequence of GL commands can be translated into
    the Gallium-level sequence outlined above when Gallium threading
    and asynchronous flushes are used. So it makes sense to be more
    robust.
    
    As a side effect, we no longer busy-wait on submission_in_progress.
    
    We won't enable asynchronous flushes on radeon, but add a
    cs_add_fence_dependency stub anyway to document the potential
    issue.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e5c9cf5902e31d3e038c565588527be35434306
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:48 2017 +0200

    gallium: add PIPE_FLUSH_{TOP,BOTTOM}_OF_PIPE bits
    
    These bits are intended to be used by the ddebug hang detection and are
    named in analogy to the Vulkan stage bits (and the corresponding Radeon
    pipeline event).
    
    Hang detection needs fences on the granularity of individual commands,
    which nothing else really covers. The closest alternative would have
    been PIPE_QUERY_GPU_FINISHED, but (a) queries are a per-context object
    and we really want a per-screen object, (b) queries don't offer a
    wait with timeout, and (c) in any case, PIPE_QUERY_GPU_FINISHED is
    meant to imply that GPU caches are flushed, which the new bits
    explicitly aren't.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea6df1ce37a53f039a28782114062b1ab7cebab4
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:47 2017 +0200

    gallium: add PIPE_FLUSH_ASYNC and PIPE_FLUSH_HINT_FINISH
    
    Also document some subtleties of pipe_context::flush.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3a8013de8ca854d21225be00f123ccf63f9060f
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:46 2017 +0200

    util/u_queue: add util_queue_fence_wait_timeout
    
    v2:
    - style fixes
    - fix missing timeout handling in futex path
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1a364878431c8c5f4fd38b40b9766449e49f552
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:45 2017 +0200

    threads: update for late C11 changes
    
    C11 threads were changed to use struct timespec instead of xtime, and
    thrd_sleep got a second argument.
    
    See http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1554.htm and
    
http://en.cppreference.com/w/c/thread/{thrd_sleep,cnd_timedwait,mtx_timedlock}
    
    Note that cnd_timedwait is spec'd to be relative to TIME_UTC / 
CLOCK_REALTIME.
    
    v2: Fix Windows build errors. Tested with a default Appveyor config
        that uses Visual Studio 2013. Judging from Brian's email and
        random internet sources, Visual Studio 2015 does have timespec
        and timespec_get, hence the _MSC_VER-based guard which I have
        not tested.
    
    Cc: Jose Fonseca <[email protected]>
    Cc: Brian Paul <[email protected]>
    Reviewed-by: Marek Olšák <[email protected]> (v1)

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c50743f61c533fe8bfed0a432ef74fcf6b4cea24
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:44 2017 +0200

    gallium: remove unused and deprecated u_time.h
    
    Cc: Jose Fonseca <[email protected]>
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=222a2fb99859f3ac237def59d40413bb1a464f11
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:44 2017 +0200

    util: move os_time.[ch] to src/util
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f76a6cb337f979fb26d3233d7e0ff208ec8885bb
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:43 2017 +0200

    radeonsi: always use async compiles when creating shader/compute states
    
    With Gallium threaded contexts, creating shader/compute states is
    effectively a screen operation, so we should not use context state.
    
    In particular, this allows us to avoid using the context's LLVM
    TargetMachine.
    
    This isn't an issue yet because u_threaded_context filters out non-async
    debug callbacks, and we disable threaded contexts for debug contexts.
    However, we may want to change that in the future.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b650fc09c3a35ca624aad5fe4b5c34867708f116
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:42 2017 +0200

    radeonsi: fix potential use-after-free of debug callbacks
    
    Found by inspection.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dd7c273e873f20474e2af1959ab2928292020941
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:39 2017 +0200

    radeonsi: move pipe debug callback to si_context
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=185061aef41401bead9e5d15aa00ffa2fcf7ef8c
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:41 2017 +0200

    u_queue: add util_queue_finish for waiting for previously added jobs
    
    Schedule one job for every thread, and wait on a barrier inside the job
    execution function.
    
    v2: avoid alloca (fixes Windows build error)
    
    Reviewed-by: Marek Olšák <[email protected]> (v1)

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f0d3a4de75fdb865c058aba8614f0fe6ba5f0969
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:40 2017 +0200

    util: move pipe_barrier into src/util and rename to util_barrier
    
    The #if guard is probably not 100% equivalent to the previous PIPE_OS
    check, but if anything it should be an over-approximation (are there
    pthread implementations without barriers?), so people will get either
    a good implementation or compile errors that are easy to fix.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=28c95cdb299f56c8224446368fb464b7b1d44a6c
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:38 2017 +0200

    gallium: add async debug message forwarding helper
    
    v2: use util_vasprintf for Windows portability
    
    Reviewed-by: Marek Olšák <[email protected]> (v1)

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=637240d824051b8b99f35c165cabe31106612f2a
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:36 2017 +0200

    st/mesa: guard sampler views changes with a mutex
    
    Some locking is unfortunately required, because well-formed GL programs
    can have multiple threads racing to access the same texture, e.g.: two
    threads/contexts rendering from the same texture, or one thread destroying
    a context while the other is rendering from or modifying a texture.
    
    Since even the simple mutex caused noticable slowdowns in the piglit
    drawoverhead micro-benchmark, this patch uses a slightly more involved
    approach to keep locks out of the fast path:
    
    - the initial lookup of sampler views happens without taking a lock
    - a per-texture lock is only taken when we have to modify the sampler
      view(s)
    - since each thread mostly operates only on the entry corresponding to
      its context, the main issue is re-allocation of the sampler view array
      when it needs to be grown, but the old copy is not freed
    
    Old copies of the sampler views array are kept around in a linked list
    until the entire texture object is deleted. The total memory wasted
    in this way is roughly equal to the size of the current sampler views
    array.
    
    Fixes non-deterministic memory corruption in some
    dEQP-EGL.functional.sharing.gles2.multithread.* tests, e.g.
    
dEQP-EGL.functional.sharing.gles2.multithread.simple.images.texture_source.create_texture_render
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d20c660a9831c367d98ed2fea25e5276e6466f2
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:34 2017 +0200

    st/mesa: re-arrange st_finalize_texture
    
    Move the early-out for surface-based textures earlier. This narrows the
    scope of the locking added in a follow-up commit.
    
    Fix one remaining case of initializing a surface-based texture
    without properly finalizing it.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0dcf30e55091a0c78fc84d98f5ea36286f3f1961
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:33 2017 +0200

    gallium: clarify the constraints on sampler_view_destroy
    
    r600 expects the context that created the sampler view to still be alive
    (there is a per-context list of sampler views).
    
    svga currently bails when the context of destruction is not the same as
    creation.
    
    The GL state tracker, which is the only one that runs into the
    multi-context subtleties (due to share groups), already guarantees that
    sampler views are destroyed before their context of creation is destroyed.
    
    Most drivers are context-agnostic, so the warning message in
    pipe_sampler_view_release doesn't really make sense.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0f54ee6072d067027c389d61abc7aea8956b2c1e
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:32 2017 +0200

    radeonsi: reduce the scope of sel->mutex in si_shader_select_with_key
    
    We only need the lock to guard changes in the variant linked list. The
    actual compilation can happen outside the lock, since we use the ready
    fence as a guard.
    
    v2: fix double-unlock
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f493c79eee01724152b6e56c71b81303e3bc54e
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:32 2017 +0200

    radeonsi: use ready fences on all shaders, not just optimized ones
    
    There's a race condition between si_shader_select_with_key and
    si_bind_XX_shader:
    
      Thread 1                         Thread 2
      --------                         --------
      si_shader_select_with_key
        begin compiling the first
        variant
        (guarded by sel->mutex)
                                       si_bind_XX_shader
                                         select first_variant by default
                                         as state->current
                                       si_shader_select_with_key
                                         match state->current and early-out
    
    Since thread 2 never takes sel->mutex, it may go on rendering without a
    PM4 for that shader, for example.
    
    The solution taken by this patch is to broaden the scope of
    shader->optimized_ready to a fence shader->ready that applies to
    all shaders. This does not hurt the fast path (if anything it makes
    it faster, because we don't explicitly check is_optimized).
    
    It will also allow reducing the scope of sel->mutex locks, but this is
    deferred to a later commit for better bisectability.
    
    Fixes 
dEQP-EGL.functional.sharing.gles2.multithread.simple.buffers.bufferdata_render
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d1ff0826370cb1cfbcf741c8eb35caf1fddd7d52
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:31 2017 +0200

    u_queue: add a futex-based implementation of fences
    
    Fences are now 4 bytes instead of 96 bytes (on my 64-bit system).
    
    Signaling a fence is a single atomic operation in the fast case plus a
    syscall in the slow case.
    
    Testing if a fence is signaled is the same as before (a simple comparison),
    but waiting on a fence is now no more expensive than just testing it in
    the fast (already signaled) case.
    
    v2:
    - style fixes
    - use p_atomic_xxx macros with the right barriers
    
    Acked-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=574c59d4f935cccfa18f7054c660200f8be791ad
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:30 2017 +0200

    u_queue: add util_queue_fence_reset
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b9d5ece557bc4ac1d69cc133dc533bb5a863dde
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:29 2017 +0200

    u_queue: export util_queue_fence_signal
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b20f955bc17960736f333006dd8c2f0c9aa20e68
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:29 2017 +0200

    u_queue: group fence functions together
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0a7f17cf5b591330a257ed0485f759d4e600972c
Author: Nicolai Hähnle <[email protected]>
Date:   Fri Nov 3 15:19:57 2017 +0100

    util/u_atomic: add p_atomic_xchg
    
    The closest to it in the old-style gcc builtins is __sync_lock_test_and_set,
    however, that is only guaranteed to work with values 0 and 1 and only
    provides an acquire barrier. I also don't know about other OSes, so we
    provide a simple & stupid emulation via p_atomic_cmpxchg.
    
    Reviewed-by: Marek Olšák <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4b2a951c8b4c1315c06cb4d58dbc787949daa4c
Author: Nicolai Hähnle <[email protected]>
Date:   Sun Oct 22 17:38:26 2017 +0200

    util: move futex helpers into futex.h
    
    v2: style fixes
    
    Reviewed-by: Marek Olšák <[email protected]> (v1)

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to