DrmBgraDisplayOp
🚧 Documentation is under development
The Holoscan SDK guide is currently under active development. Some sections may be incomplete or change without notice.
Questions? Contact RidgeRun or email to support@ridgerun.com.
-
Overview
-
Build, Run, and Validate
-
Core Concepts
-
Operators and Graphs
-
Tensor Data and Memory
-
Interprocess Communication
-
-
Application and Operator Development
- Building an HSDK Application
- Writing a Minimal Operator
- Typed Parameters and Configuration
- Reading, Writing, and Forwarding Data
- Writing Tensor Operators
- Complete Operator Patterns
- Authoring Runtime Behavior
- Runtime Parameter Updates
- Lifecycle Callbacks and Restart Control
- Performance and Debugging
- SDK Source Map
-
Operator Reference
-
Core Operators
-
Holoscan Camera
-
Holoscan RidgeRun
- Overview
- Build and Installation
- ArgusCameraOp
- V4L2SourceOp
- V4L2UserPtrSourceOp
- BgraToPlanarTensorOp
- RawBayerToBgraOp
- RawBayerToYoloTensorOp
- YuyvToBgraOp
- TensorRtInferenceOp
- DrmDisplayOp
- DrmBgraDisplayOp
- X11DisplayOp
- CudaCompositorOp
- DepthColorizerOp
- FakesinkOp
- FrameSkipperOp
- InterprocessSrcOp
- TestPatternOp
-
-
Migration from Holoscan 4.x
-
Examples
-
Core
-
Holoscan Camera
-
Holoscan RidgeRun
-
-
Benchmark and Use Cases
-
Holoscan vs GStreamer
- Overview
-
Capture and Display
-
Capture and Inference
- Compare the workloads
- Implemented Applications
- Framework Selection
- Interprocess
-
DrmBgraDisplayOp
DrmBgraDisplayOp presents a CUDA BGRA tensor through an exclusive DRM/KMS output. It is the terminal display operator for Argus and raw Bayer pipelines that already produce BGRA.
Input arguments
| Argument | Default and meaning |
|---|---|
width, height
|
Positive dimensions of the BGRA input and display image. |
device
|
/dev/dri/card0 by default.
|
connector_id
|
0 selects the first suitable connector; a nonzero value requests a specific connector.
|
mode
|
Empty by default; an explicit mode can be supplied when the automatic selection is not desired. |
Ports and data contract
| Port | Memory | Queue | Trigger | Contract |
|---|---|---|---|---|
input
|
CUDA device, contiguous | SDK default | OnEach
|
U8 rank-3 tensor with shape [height, width, 4] in BGRA order. Terminal display sink with no Holoscan output.
|
ArgusCameraOp -> DrmBgraDisplayOp V4L2UserPtrSourceOp -> RawBayerToBgraOp -> DrmBgraDisplayOp
Build
Follow Holoscan RidgeRun Build and Installation for the module build and installation. The operator-specific include, target, and runtime requirements are listed below.
Include drm_bgra_display/drm_bgra_display.hpp and link holoscan::drm_bgra_display. The operator requires CUDA and libdrm on Jetson aarch64.
Example
The output of ArgusCameraOp or RawBayerToBgraOp already has the required BGRA layout:
auto display = graph.op<DrmBgraDisplayOp>(
"display", width, height, "/dev/dri/card0", 0U, "1920x1080");
graph.add_flow(convert->output, display->input);
The connector and mode are selected during start(). The input dimensions must match the configured display mode. The operator uses two scanout buffers and waits for a page-flip event before reusing the previous buffer, so a slow display can apply backpressure to the terminal stage.
When CUDA DMABUF import is available, the display path can write the scanout buffer without a host staging copy. On Orin, the implementation also supports a CUDA-registered framebuffer mapping and falls back to a mapped host copy when direct import is not available. These paths are implementation details that affect measurements; they do not change the required input contract.