diff options
Diffstat (limited to 'src/gallium/frontends/vallium/val_execute.c')
-rw-r--r-- | src/gallium/frontends/vallium/val_execute.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/frontends/vallium/val_execute.c b/src/gallium/frontends/vallium/val_execute.c index dd4cc3acfc9..50fb28b2d99 100644 --- a/src/gallium/frontends/vallium/val_execute.c +++ b/src/gallium/frontends/vallium/val_execute.c @@ -2509,7 +2509,7 @@ VkResult val_execute_cmds(struct val_device *device, struct val_cmd_buffer *cmd_buffer) { struct rendering_state state; - + struct pipe_fence_handle *handle = NULL; memset(&state, 0, sizeof(state)); state.pctx = queue->ctx; state.blend_dirty = true; @@ -2518,7 +2518,12 @@ VkResult val_execute_cmds(struct val_device *device, /* create a gallium context */ val_execute_cmd_buffer(cmd_buffer, &state); - state.pctx->flush(state.pctx, fence ? &fence->handle : NULL, 0); + state.pctx->flush(state.pctx, fence ? &handle : NULL, 0); + if (fence) { + mtx_lock(&device->fence_lock); + fence->handle = handle; + mtx_unlock(&device->fence_lock); + } state.start_vb = -1; state.num_vb = 0; state.pctx->set_vertex_buffers(state.pctx, 0, PIPE_MAX_ATTRIBS, NULL); |