gstreamer/subprojects/gst-plugins-bad/docs/libs/cuda/index.md
Seungha Yang cdaa798ac7 cuda: Add methods to enable stream ordered allocation
Adding prefer-stream-ordered-alloc property to GstCudaContext.
If stream ordered allocation buffer pool option is not configured
and this property is enabled, buffer pool will enable the stream
ordered allocation. Otherwise it will follow default behavior.

If GST_CUDA_ENABLE_STREAM_ORDERED_ALLOC env is set,
default behavior is enabling the stream ordered allocation.
Otherwise sync alloc/free method will be used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7427>
2024-09-11 17:15:14 +00:00

34 lines
1.3 KiB
Markdown

# Cuda library
This library should be linked to by getting cflags and libs from
gstreamer-cuda-{{ gst_api_version.md }}.pc
> NOTE: This library API is considered *unstable*
## Environment variables
The GStreamer CUDA library inspects following environment variables
**`GST_CUDA_CRITICAL_ERRORS`. (Since: 1.24)**
This environment variable can be set to a comma-separated list of CUresult
values (see CUDA driver API documentation). GStreamer CUDA library will
abort when the user registered error is detected. This environment can be useful
when unrecoverable CUDA error happens. Thus in-process error recovery
(e.g., relaunching new pipeline) is not expected to work, and therefore
the process should be relaunched.
Example: `GST_CUDA_CRITICAL_ERRORS=2,700`
As a result of the above example, if `CUDA_ERROR_OUT_OF_MEMORY(2)` or
`CUDA_ERROR_ILLEGAL_ADDRESS(700)` error is detected in GStreamer CUDA library,
the process will be aborted.
**`GST_CUDA_ENABLE_STREAM_ORDERED_ALLOC`. (Since: 1.26)**
As of 1.26, GStreamer CUDA library supports stream ordered CUDA allocation
(e.g., cuMemAllocAsync). The new allocation method is disabled by default
unless it's explicitly requested via buffer pool option.
This environment variable can be used to change the default behavior
so that the stream ordered allocation can be used by default.