mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
d3d12device: Use HRESULT return code if possible
Make function signature consistent with that of command queue Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057>
This commit is contained in:
parent
a4c976dd20
commit
713ea313f8
6 changed files with 28 additions and 28 deletions
|
@ -1352,16 +1352,16 @@ gst_d3d12_device_get_command_queue (GstD3D12Device * device,
|
||||||
* Exectues gst_d3d12_command_queue_execute_command_lists ()
|
* Exectues gst_d3d12_command_queue_execute_command_lists ()
|
||||||
* using a #GstD3D12CommandQueue corresponding to @queue_type
|
* using a #GstD3D12CommandQueue corresponding to @queue_type
|
||||||
*
|
*
|
||||||
* Returns: %TRUE if successful
|
* Returns: HRESULT code
|
||||||
*
|
*
|
||||||
* Since: 1.26
|
* Since: 1.26
|
||||||
*/
|
*/
|
||||||
gboolean
|
HRESULT
|
||||||
gst_d3d12_device_execute_command_lists (GstD3D12Device * device,
|
gst_d3d12_device_execute_command_lists (GstD3D12Device * device,
|
||||||
D3D12_COMMAND_LIST_TYPE queue_type, guint num_command_lists,
|
D3D12_COMMAND_LIST_TYPE queue_type, guint num_command_lists,
|
||||||
ID3D12CommandList ** command_lists, guint64 * fence_value)
|
ID3D12CommandList ** command_lists, guint64 * fence_value)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GST_IS_D3D12_DEVICE (device), FALSE);
|
g_return_val_if_fail (GST_IS_D3D12_DEVICE (device), E_INVALIDARG);
|
||||||
|
|
||||||
auto priv = device->priv->inner;
|
auto priv = device->priv->inner;
|
||||||
GstD3D12CommandQueue *queue;
|
GstD3D12CommandQueue *queue;
|
||||||
|
@ -1375,13 +1375,11 @@ gst_d3d12_device_execute_command_lists (GstD3D12Device * device,
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
GST_ERROR_OBJECT (device, "Not supported queue type %d", queue_type);
|
GST_ERROR_OBJECT (device, "Not supported queue type %d", queue_type);
|
||||||
return FALSE;
|
return E_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto hr = gst_d3d12_command_queue_execute_command_lists (queue,
|
return gst_d3d12_command_queue_execute_command_lists (queue,
|
||||||
num_command_lists, command_lists, fence_value);
|
num_command_lists, command_lists, fence_value);
|
||||||
|
|
||||||
return gst_d3d12_result (hr, device);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1474,16 +1472,16 @@ gst_d3d12_device_set_fence_notify (GstD3D12Device * device,
|
||||||
* Exectues gst_d3d12_command_queue_fence_wait ()
|
* Exectues gst_d3d12_command_queue_fence_wait ()
|
||||||
* using a #GstD3D12CommandQueue corresponding to @queue_type
|
* using a #GstD3D12CommandQueue corresponding to @queue_type
|
||||||
*
|
*
|
||||||
* Returns: %TRUE if successful
|
* Returns: HRESULT code
|
||||||
*
|
*
|
||||||
* Since: 1.26
|
* Since: 1.26
|
||||||
*/
|
*/
|
||||||
gboolean
|
HRESULT
|
||||||
gst_d3d12_device_fence_wait (GstD3D12Device * device,
|
gst_d3d12_device_fence_wait (GstD3D12Device * device,
|
||||||
D3D12_COMMAND_LIST_TYPE queue_type, guint64 fence_value,
|
D3D12_COMMAND_LIST_TYPE queue_type, guint64 fence_value,
|
||||||
HANDLE event_handle)
|
HANDLE event_handle)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GST_IS_D3D12_DEVICE (device), FALSE);
|
g_return_val_if_fail (GST_IS_D3D12_DEVICE (device), E_INVALIDARG);
|
||||||
|
|
||||||
auto priv = device->priv->inner;
|
auto priv = device->priv->inner;
|
||||||
GstD3D12CommandQueue *queue;
|
GstD3D12CommandQueue *queue;
|
||||||
|
@ -1497,13 +1495,10 @@ gst_d3d12_device_fence_wait (GstD3D12Device * device,
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
GST_ERROR_OBJECT (device, "Not supported queue type %d", queue_type);
|
GST_ERROR_OBJECT (device, "Not supported queue type %d", queue_type);
|
||||||
return FALSE;
|
return E_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto hr = gst_d3d12_command_queue_fence_wait (queue,
|
return gst_d3d12_command_queue_fence_wait (queue, fence_value, event_handle);
|
||||||
fence_value, event_handle);
|
|
||||||
|
|
||||||
return gst_d3d12_result (hr, device);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
|
|
@ -94,7 +94,7 @@ GstD3D12CommandQueue * gst_d3d12_device_get_command_queue (GstD3D12Devic
|
||||||
D3D12_COMMAND_LIST_TYPE queue_type);
|
D3D12_COMMAND_LIST_TYPE queue_type);
|
||||||
|
|
||||||
GST_D3D12_API
|
GST_D3D12_API
|
||||||
gboolean gst_d3d12_device_execute_command_lists (GstD3D12Device * device,
|
HRESULT gst_d3d12_device_execute_command_lists (GstD3D12Device * device,
|
||||||
D3D12_COMMAND_LIST_TYPE queue_type,
|
D3D12_COMMAND_LIST_TYPE queue_type,
|
||||||
guint num_command_lists,
|
guint num_command_lists,
|
||||||
ID3D12CommandList ** command_lists,
|
ID3D12CommandList ** command_lists,
|
||||||
|
@ -111,7 +111,7 @@ gboolean gst_d3d12_device_set_fence_notify (GstD3D12Devic
|
||||||
GstD3D12FenceData * fence_data);
|
GstD3D12FenceData * fence_data);
|
||||||
|
|
||||||
GST_D3D12_API
|
GST_D3D12_API
|
||||||
gboolean gst_d3d12_device_fence_wait (GstD3D12Device * device,
|
HRESULT gst_d3d12_device_fence_wait (GstD3D12Device * device,
|
||||||
D3D12_COMMAND_LIST_TYPE queue_type,
|
D3D12_COMMAND_LIST_TYPE queue_type,
|
||||||
guint64 fence_value,
|
guint64 fence_value,
|
||||||
HANDLE event_handle);
|
HANDLE event_handle);
|
||||||
|
|
|
@ -2321,9 +2321,9 @@ gst_d3d12_compositor_draw_background (GstD3D12Compositor * self)
|
||||||
|
|
||||||
ID3D12CommandList *cmd_list[] = { cl.Get () };
|
ID3D12CommandList *cmd_list[] = { cl.Get () };
|
||||||
|
|
||||||
if (!gst_d3d12_device_execute_command_lists (self->device,
|
hr = gst_d3d12_device_execute_command_lists (self->device,
|
||||||
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cmd_list,
|
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cmd_list, &priv->bg_render->fence_val);
|
||||||
&priv->bg_render->fence_val)) {
|
if (!gst_d3d12_result (hr, self->device)) {
|
||||||
GST_ERROR_OBJECT (self, "Couldn't execute command list");
|
GST_ERROR_OBJECT (self, "Couldn't execute command list");
|
||||||
gst_d3d12_fence_data_unref (fence_data);
|
gst_d3d12_fence_data_unref (fence_data);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -2412,9 +2412,11 @@ gst_d3d12_compositor_aggregate_frames (GstVideoAggregator * vagg,
|
||||||
GST_LOG_OBJECT (cpad, "Command list prepared");
|
GST_LOG_OBJECT (cpad, "Command list prepared");
|
||||||
|
|
||||||
ID3D12CommandList *cmd_list[] = { pad_priv->ctx->cl.Get () };
|
ID3D12CommandList *cmd_list[] = { pad_priv->ctx->cl.Get () };
|
||||||
if (!gst_d3d12_device_execute_command_lists (self->device,
|
|
||||||
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cmd_list,
|
auto hr = gst_d3d12_device_execute_command_lists (self->device,
|
||||||
&pad_priv->ctx->fence_val)) {
|
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cmd_list,
|
||||||
|
&pad_priv->ctx->fence_val);
|
||||||
|
if (!gst_d3d12_result (hr, self->device)) {
|
||||||
GST_ERROR_OBJECT (self, "Couldn't execute command list");
|
GST_ERROR_OBJECT (self, "Couldn't execute command list");
|
||||||
ret = GST_FLOW_ERROR;
|
ret = GST_FLOW_ERROR;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -2030,8 +2030,9 @@ gst_d3d12_convert_transform (GstBaseTransform * trans, GstBuffer * inbuf,
|
||||||
|
|
||||||
ID3D12CommandList *cmd_list[] = { priv->ctx->cl.Get () };
|
ID3D12CommandList *cmd_list[] = { priv->ctx->cl.Get () };
|
||||||
|
|
||||||
if (!gst_d3d12_device_execute_command_lists (priv->ctx->device,
|
hr = gst_d3d12_device_execute_command_lists (priv->ctx->device,
|
||||||
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cmd_list, &priv->ctx->fence_val)) {
|
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cmd_list, &priv->ctx->fence_val);
|
||||||
|
if (!gst_d3d12_result (hr, priv->ctx->device)) {
|
||||||
GST_ERROR_OBJECT (self, "Couldn't execute command list");
|
GST_ERROR_OBJECT (self, "Couldn't execute command list");
|
||||||
gst_d3d12_fence_data_unref (fence_data);
|
gst_d3d12_fence_data_unref (fence_data);
|
||||||
return GST_FLOW_ERROR;
|
return GST_FLOW_ERROR;
|
||||||
|
|
|
@ -2222,8 +2222,9 @@ gst_d3d12_test_src_create (GstBaseSrc * bsrc, guint64 offset,
|
||||||
|
|
||||||
ID3D12CommandList *cmd_list[] = { priv->ctx->cl.Get () };
|
ID3D12CommandList *cmd_list[] = { priv->ctx->cl.Get () };
|
||||||
|
|
||||||
if (!gst_d3d12_device_execute_command_lists (self->device,
|
hr = gst_d3d12_device_execute_command_lists (self->device,
|
||||||
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cmd_list, &priv->ctx->fence_val)) {
|
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cmd_list, &priv->ctx->fence_val);
|
||||||
|
if (!gst_d3d12_result (hr, self->device)) {
|
||||||
GST_ERROR_OBJECT (self, "Couldn't execute command list");
|
GST_ERROR_OBJECT (self, "Couldn't execute command list");
|
||||||
gst_d3d12_fence_data_unref (fence_data);
|
gst_d3d12_fence_data_unref (fence_data);
|
||||||
return GST_FLOW_ERROR;
|
return GST_FLOW_ERROR;
|
||||||
|
|
|
@ -533,8 +533,9 @@ gst_dwrite_d3d12_render_blend (GstDWriteRender * render, GstBuffer * layout_buf,
|
||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
ID3D12CommandList *cl[] = { priv->cl.Get () };
|
ID3D12CommandList *cl[] = { priv->cl.Get () };
|
||||||
ret = gst_d3d12_device_execute_command_lists (priv->device,
|
hr = gst_d3d12_device_execute_command_lists (priv->device,
|
||||||
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cl, &priv->fence_val);
|
D3D12_COMMAND_LIST_TYPE_DIRECT, 1, cl, &priv->fence_val);
|
||||||
|
ret = gst_d3d12_result (hr, priv->device);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
|
Loading…
Reference in a new issue