d3d12compositor: Fix critical warnings
compositor will record rendering commands using multiple threads (i.e., blending commands are recoded using thread pool, and background one is recorded on aggregate thread). And there can be temporary refcount increase (so not writable). Updates fence once all rendering commands have been submitted. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9157>
This commit is contained in:
parent
b6628e5b92
commit
343cde7f87
@ -2344,11 +2344,6 @@ gst_d3d12_compositor_draw_background (GstD3D12Compositor * self)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
auto fence = gst_d3d12_device_get_fence_handle (self->device,
|
||||
D3D12_COMMAND_LIST_TYPE_DIRECT);
|
||||
gst_d3d12_buffer_set_fence (priv->generated_output_buf, fence,
|
||||
bg_render->fence_val, FALSE);
|
||||
|
||||
if (bg_render->vertex_index_upload) {
|
||||
gst_d3d12_fence_data_push (fence_data,
|
||||
FENCE_NOTIFY_COM (bg_render->vertex_index_upload.Detach ()));
|
||||
@ -2423,11 +2418,12 @@ gst_d3d12_compositor_aggregate_frames (GstVideoAggregator * vagg,
|
||||
}
|
||||
|
||||
fence_val = pad_priv->ctx->fence_val;
|
||||
gst_d3d12_buffer_set_fence (priv->generated_output_buf,
|
||||
fence, fence_val, FALSE);
|
||||
}
|
||||
GST_OBJECT_UNLOCK (self);
|
||||
|
||||
gst_d3d12_buffer_set_fence (priv->generated_output_buf,
|
||||
fence, fence_val, FALSE);
|
||||
|
||||
if (ret != GST_FLOW_OK)
|
||||
return ret;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user