• Mike Blumenkrantz's avatar
    zink: implement threaded context · d179c5d2
    Mike Blumenkrantz authored
    this includes:
    * async buffer mapping/replacement
    * async queue submission
    * async (threaded) gallium flush handling
    the main churn here is from handling async gallium flushes, which involves
    creating multiple gallium fences (zink_tc_fence) for each zink fence (zink_fence).
    a tc fence may begin waiting for completion at any time, even before the zink_fence
    has had its cmdbuf(s) submitted, so handling this type of desync ends up needing
    almost a complete rewrite of the existing queue architecture
    Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
    Part-of: <mesa/mesa!9935>