From 143efa2f86b32a2f782751949bb6c0df697e1982 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Thu, 20 Jun 2024 00:07:41 +0900 Subject: [PATCH] d3d12commandqueue: Detect device removed event Early return if device removed event is detected Part-of: --- .../gst-libs/gst/d3d12/gstd3d12commandqueue.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/d3d12/gstd3d12commandqueue.cpp b/subprojects/gst-plugins-bad/gst-libs/gst/d3d12/gstd3d12commandqueue.cpp index 3cf40add70..b43110fa23 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/d3d12/gstd3d12commandqueue.cpp +++ b/subprojects/gst-plugins-bad/gst-libs/gst/d3d12/gstd3d12commandqueue.cpp @@ -244,6 +244,11 @@ gst_d3d12_command_queue_execute_command_lists_unlocked (GstD3D12CommandQueue * if (priv->queue_size > 0) { auto completed = priv->fence->GetCompletedValue (); + if (completed == G_MAXUINT64) { + GST_ERROR_OBJECT (queue, "Device removed"); + return DXGI_ERROR_DEVICE_REMOVED; + } + if (completed + priv->queue_size < priv->fence_val) { hr = priv->fence->SetEventOnCompletion (priv->fence_val - priv->queue_size, priv->event_handle);