And enable it for radeonsi. This may be needed by Android.
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18731>
struct threaded_context *tc = threaded_context(_pipe);
struct pipe_context *pipe = tc->pipe;
- tc_sync(tc);
+ if (!tc->options.unsynchronized_create_fence_fd)
+ tc_sync(tc);
+
pipe->create_fence_fd(pipe, fence, fd, type);
}
* safe to call without synchronizing with driver thread.
*/
bool unsynchronized_get_device_reset_status;
+
+ /* If true, create_fence_fd doesn't access the context in the driver. */
+ bool unsynchronized_create_fence_fd;
};
struct threaded_context {
.create_fence = fd_fence_create_unflushed,
.is_resource_busy = fd_resource_busy,
.unsynchronized_get_device_reset_status = true,
+ .unsynchronized_create_fence_fd = true,
},
&ctx->tc);
si_create_fence : NULL,
.is_resource_busy = si_is_resource_busy,
.driver_calls_flush_notify = true,
+ .unsynchronized_create_fence_fd = true,
},
&((struct si_context *)ctx)->tc);