columbarius
7fd0e8cda5
videoconvert: disable latency recalculation
2023-09-25 00:13:25 +02:00
columbarius
b8cbfe61d0
videoconvert: get running
2023-09-25 00:13:25 +02:00
columbarius
29bcebe4fe
stream: wrap video streams with adapter node
2023-09-25 00:13:25 +02:00
columbarius
d435a36a9f
apply changes from audioadapter to videoadapter
2023-09-25 00:13:25 +02:00
columbarius
3d8054eaf6
vulkan: compute return from process on invalid buffer id
...
Combined with the blit filter the process function of the source is
often called without a valid buffer, which results in a crash. This hack
mitigates this.
2023-09-25 00:10:56 +02:00
columbarius
b2766ad9ca
vulkan: check if vulkan_blit_state is initialized and prepared
2023-09-25 00:10:56 +02:00
columbarius
c76addabd6
vulkan: Support MemPtr as input in blit
2023-09-25 00:10:56 +02:00
columbarius
7e40aec64e
vulkan: Add function to upload data to a staging buffer
2023-09-25 00:10:56 +02:00
columbarius
05f0057f7c
vulkan: Add functions to create staging buffers
2023-09-25 00:10:56 +02:00
columbarius
d17f853b03
vulkan: add enumerate function for dsp and raw
2023-09-25 00:10:56 +02:00
columbarius
e1cee625d5
vulkan: Create vulkan-blit-filter
2023-09-25 00:10:56 +02:00
columbarius
bd08dd056a
vulkan: store formats with modifiers
2023-09-25 00:10:56 +02:00
columbarius
80fa9ee516
vulkan: Add pixel-formats to query format properties
2023-09-25 00:10:56 +02:00
columbarius
439758f681
vulkan: disable modifier properties check
2023-09-25 00:10:56 +02:00
columbarius
50c4fa43d6
vulkan: move format enumeration into utils functions
2023-09-25 00:10:56 +02:00
columbarius
6646a04439
vulkan: fix read_pixels
2023-09-24 00:41:56 +02:00
columbarius
1426809e06
vulkan: use extension VK_EXT_QUEUE_FAMILY_FOREIGN
2023-09-24 00:37:10 +02:00
columbarius
d2847969a0
vulkan: Move vulkan_stream into vulkan-compute-utils
2023-09-23 14:41:24 +02:00
columbarius
61ad58a52d
vulkan: Move vulkan_fence_create to vulkan-utils
2023-09-23 14:41:24 +02:00
columbarius
c744ef3b6d
vulkan: namespace functions in compute-utils to spa_vulkan_compute
2023-08-31 12:18:51 +02:00
columbarius
8bbc1c1abf
vulkan: fix uninitialized writeDescriptor
2023-08-31 10:08:06 +00:00
columbarius
00c475e646
vulkan: download buffer to MemPtr
2023-08-31 10:08:06 +00:00
columbarius
73d6c20225
vulkan: spa_vulkan_use_buffers support datatype MemPtr
2023-08-31 10:08:06 +00:00
columbarius
eea8096b12
vulkan: Track spa_buffers for stream
2023-08-31 10:08:06 +00:00
columbarius
2456d58397
vulkan: Only allocate buffers when DMABUFS are used
2023-08-31 10:08:06 +00:00
columbarius
b8c91f7e54
vulkan: Synchronize in and out buffers
2023-08-31 10:08:06 +00:00
columbarius
412b0c7b49
vulkan: Add dmabuf sync helpers from wlroots
...
These helpers are obtained from the wlroots project at
https://gitlab.freedesktop.org/wlroots/wlroots/
2023-08-31 10:08:06 +00:00
columbarius
2c65eb6c2c
vulkan: vulkan_compute fixate modifier
...
If the modifier for a format is not fixated yet, we will use vulkan to
fixate a modifier, update the parsed format, change the EnumFormats mask
and exit early. This triggers a new enum_params with EnumFormats and a
new set_param for Format.
2023-08-31 10:08:06 +00:00
columbarius
a673c56eea
vulkan: announce SPA_PARAM_BUFFERS wrt. modifiers
2023-08-31 10:08:06 +00:00
columbarius
3274880e8e
vulkan: use capability flags to enumerate formats
2023-08-31 10:08:06 +00:00
columbarius
d549d9e595
vulkan: vulkan_compute enumerate format with modifiers
2023-08-31 10:08:06 +00:00
columbarius
06a1d5151b
vulkan: vulkan_compute initialize base on plugin creation
2023-08-31 10:08:06 +00:00
columbarius
402ed65a79
vulkan: Add {spa_,}vulkan_fixate_modifier
2023-08-31 10:08:06 +00:00
columbarius
35b080ec61
vulkan: split spa_vulkan_use_buffers into separate allocation and import functions
...
This commit add helpers to create and to import a DmaBuf via the
external_dmabuf_info struct.
The import path is based on the image creation of wlroots and the create path is
inspired by the wlroots vulkan allocator MR.
2023-08-31 10:08:06 +00:00
columbarius
2068972bb3
vulkan: Add wait functions
...
vulkan_wait_idle waits until the device is idle and all referenced
objects can be destroyed.
vulkan_wait_fence waits until a fence is triggered by a finished
queueSubmit.
vulkan: wait on fence
2023-08-31 10:08:06 +00:00
columbarius
0bb662f2e7
vulkan: limit supported modifiers with DMABUF_MAX_PLANES
2023-08-31 10:08:06 +00:00
columbarius
58853eb2c7
vulkan: Add function to query format and modifier information
2023-08-31 10:08:06 +00:00
columbarius
cf0e3a35ba
vulkan: Add format convertion functions
2023-08-31 10:08:06 +00:00
columbarius
ea2a2c47c7
vulkan: split vulkan-utils into generic and compute part
...
This commit should just shuffle code around with no functional changes.
The goal is to ease development of simple vulkan nodes by providing
generic helpers.
2023-08-31 10:08:06 +00:00
columbarius
e7b4129944
vulkan: use SPDX tags to specify copyright information
2023-08-31 10:08:06 +00:00
columbarius
e226dccde8
vulkan: log if buffer is added in vulkan-compute-source
2023-08-31 10:08:06 +00:00
columbarius
33f98489d6
pipewire-vulkan: Start vulkan nodes via pipewire proxy server
2023-08-31 10:08:06 +00:00
Felix Yan
feb21a25f0
Correct a typo in pipewire.conf.5.rst.in
2023-08-31 10:04:25 +00:00
Wim Taymans
d2c29760e9
alsa: scale the default period with the rate
...
The default period is based on the default rate and might be too small
when using high samplerates. Scale the rate with the samplerate and make
sure it's a power of 2 to avoid trouble.
Fixes #3444
2023-08-31 12:01:06 +02:00
Wim Taymans
9f30e58ef2
pipe-tunnel: support pipe-source as a driver
...
Use a timer to periodically schedule the pipe-source when configured
as a driver. Adjust the timeout period based on buffer fill levels.
Fixes #3478
2023-08-31 11:41:00 +02:00
Wim Taymans
f25da522a4
pulse-tunnel: fix index after overrun
...
First advance the index, then fix the avail value or else we don't end
up changing the index at all.
2023-08-31 11:39:54 +02:00
Wim Taymans
9f66c42d1f
pipe-tunnel: rework the source
...
Let the source write into a ringbuffer when there is data available.
We then read from the ringbuffer when scheduled and use a dll to keep
the delay constant. We can later make this a driver and use the rate
correction to tweak the timeouts instead of resampling.
See #3478
2023-08-30 18:41:19 +02:00
Wim Taymans
bc15d0c766
pulse-server: support use_system_clock_for_timing
...
Move the pipe-sink to the dummy driver when instructed to use the system
clock.
2023-08-30 18:36:01 +02:00
Wim Taymans
20fdafb7f1
pulse-server: rename a variable to avoid confusion
2023-08-30 18:32:34 +02:00
Wim Taymans
3d0b662c5e
pulse-tunnel: Make sure we send available data
...
Round down the size and avail to the frame size to make sure we always
send aligned frames.
When we don't have the required size, set the buffer to 0 but still send
whatever we have in the ringbuffer or else it stays there until some
unknown time when it gets flushed out again with new data.
2023-08-30 18:27:19 +02:00