Seungha Yang
3e08cdeebe
d3d12memory: Do not wait external fence on map()
...
Only wait for external fence if upload or download is required.
Waiting for external fence in case of d3d12 mapping is caller's
responsibility
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6749 >
2024-04-28 12:49:07 +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
c95725bb79
d3d12memory: Use explicit type for GST_MAP_D3D12 define
...
C++ compiler will complain about different type between int and GstMapFlags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6749 >
2024-04-28 12:49:07 +00:00
Seungha Yang
87f43c25cc
d3d12frame: Extract external fence from memory and wait helper function
...
Adding gst_d3d12_frame_fence_{gpu,cpu}_wait() methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6749 >
2024-04-28 12:49:07 +00:00
Seungha Yang
478e49dd73
d3d12: Update copy_texture_region() method
...
Pass external fence value if any and allow passing fence
data so that dependent resources can be released
once copy is done
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6749 >
2024-04-28 12:49:07 +00:00
Seungha Yang
d8aa2eea83
d3d12commandqueue: Add execute_wait_and_command_lists() method
...
... so that GPU-side waiting and executing can be scheduled at once
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6749 >
2024-04-28 12:49:07 +00:00
Seungha Yang
ebb64dfd0d
d3d12memory: Add get_external_fence() method
...
Required for caller to wait external fence without map() method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6749 >
2024-04-28 12:49:07 +00:00
Seungha Yang
00924d4820
d3d12bufferpool: Sync all memory objects on acquire_buffer()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6749 >
2024-04-28 12:49:07 +00:00
Seungha Yang
b12b04eeef
d3d12utils: Fix documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6699 >
2024-04-21 12:06:03 +00:00
Seungha Yang
6efeeb8300
d3d12device: Add device-removed-reason property
...
Adding new property in order to notify users of device removed status.
Once device removed status is detected, application should release
all ID3D12Device objects corresponding to the adapter, including
GstD3D12Device object. Otherwise D3D12CreateDevice() call for the
adapter will fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6699 >
2024-04-21 12:06:03 +00:00
Seungha Yang
cd97275a19
d3d12device: Hold d3d11on12 device to be shared
...
d3d11on12 device seems to be occupying a bit of GPU memory
Hold the instance in GstD3D12Device so that it can be shared
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6697 >
2024-04-20 04:16:41 +09:00
Seungha Yang
13d892d336
d3d12: Move gst_d3d12_buffer_copy_into method to library
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
b242f5d2ec
d3d12converter: Port to GstD3D12Frame
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
cb670f8110
d3d12: Add GstD3D12Frame struct and helper method
...
Adding GstD3D12Frame struct with map, unmap, and copy methods.
This new struct is equivalent to GstVideoFrame but gst_d3d12_frame_map()
method will extract D3D12 specific resource handles from memory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
8b88fcd18b
d3d12memory: Implement copy method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
448a461a40
d3d12converter: Simplify root signature build
...
D3DX12SerializeVersionedRootSignature() helper method will translate
RS 1.1 into 1.0 version if needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6557 >
2024-04-08 13:24:20 +00:00
Seungha Yang
f59c43c50f
d3d12device: Fix typo in object name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6549 >
2024-04-06 01:14:56 +09:00
Seungha Yang
ce34e63605
d3d12memory: Add support for d3d11 texture caching
...
Would be useful for various D3D11 interop use cases
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6499 >
2024-04-02 03:43:59 +09:00
Seungha Yang
7d0e90b7bc
d3d12: Move core part to gst-libs
...
Move buffer pool, converter, and device abstraction layer to
public library
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:50 +00:00