Seungha Yang
72895ed0fa
d3d12: Always allocate output texture using shared heap
...
... if downstream preference is unknown (e.g., no proposed
buffer pool by downstream), so that produced textures can be
shareable with other APIs such as d3d11 or vulkan, or other processes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7193 >
2024-07-18 14:17:43 +00:00
Seungha Yang
b37bfc02f5
d3d12: Remove unnecessary event handles
...
null event NT handle to ID3D12Fence::SetEventOnCompletion()
will block the calling CPU thread already, thus it has no point that
creating an event NT handle in order to immediate wait for fence at CPU-side.
Note that passing a valid event NT handle to the fence API might be useful
when we need to wait for the fence value later (or timeout is required),
or want to wait for multiple fences at once via WaitForMultipleObjects().
But it's not a considered use case for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7176 >
2024-07-16 19:17:15 +00:00
Seungha Yang
dd4d85272e
d3d12converter: Fix Y410 conversion
...
Adding format conversion helper and use compute shader in case that
output format does not support RTV.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7088 >
2024-06-23 10:53:18 +00:00
Seungha Yang
2ec7d82bd7
d3d12: Move fence setter helper method to gst-libs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:48 +00:00
Seungha Yang
fa7c4a2e39
d3d12converter: Update API signature
...
Always use device's main direct queue, and control gpu waiting
behavior by using boolean value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:48 +00:00
Seungha Yang
f6eb3a01c0
d3d12memory: Hide fence value from header
...
Instead of exposing fence value to wait in header, user setter/getter
methods.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
289bc1d440
d3d12: Remove notify_com and notify_mini_object helper methods
...
Use private macros instead of exposing multiple APIs for the same thing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
713ea313f8
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 >
2024-06-19 13:19:47 +00:00
Seungha Yang
2a14793ee1
d3d12converter: Add support for GPU-side external fence waiting
...
Ideally, GPU waiting should be scheduled just before executing command list.
But handling the case outside of converter is a bit complicated.
Under an assumption that constructed command list will be executed
immediately, schedules GPU-side waiting inside of conversion method
to simplify the flow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6749 >
2024-04-28 12:49:07 +00:00
Seungha Yang
abeccdd6bc
d3d12: Make resource getter methods consistent
...
Returns COM pointer directly everywhere
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:49 +00:00
Seungha Yang
0527f27204
d3d12: Add a helper method for device equality check
...
GstD3D12Device object itself is not singltons anymore but
underlying private struct is singltons.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:49 +00:00
Seungha Yang
bbdfa00b7b
d3d12: Add support for cross-compile
...
... and fix bunch of GCC reported warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6435 >
2024-03-25 11:41:25 +00:00
Seungha Yang
18091f0115
d3d12memory: Update for API interop
...
Add support for destroy notify in case of wrapped memory, and
allow setting external fence for interop
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6428 >
2024-03-22 20:01:16 +09:00
Seungha Yang
393fb4733c
d3d12: Use native device handle if possible
...
Various abstraction objects such as command queue/list/allocator
can be constructed without GstD3D12Device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6395 >
2024-03-19 12:03:55 +00:00
Seungha Yang
e1ecd1de2f
d3d12: Simplify fence data setup
...
Adding COM and GstMiniObject specific methods to skip passing
free function pointer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5895 >
2024-01-09 13:52:44 +00:00
Seungha Yang
996346f8d3
d3d12converter: Don't map output buffer with write flag
...
Conversion will happen when constructed command list is executed,
not by converter element. Thus this object should not map output buffer
with write flag which will result in error if multiple threads
are building commands for the same output target frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
f4fe17d8d2
d3d12converter: Add support for blending
...
Create new PSO if blend state update is required
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
660f2d7d27
d3d12: Add convert element
...
Implement converter object with convert element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00