dpu_fetch_layer
Overview
The DPU Fetch Layer example shows how to use the DPU driver to display multiple layers. The DPU unit fetch_layer and fetch_warp support multiple layers, they are both used in this example.
In this example, the screen is divided to two parts, the left part is for content stream, fetch_layer is used in this stream. The right part is for safty stream fetch_warp is used in this stream. In a fetch unit, the sub-layers could not be alpha blended to another, so when the sub-layers overlay, the layer with larger sub-layer index is shown.
The DPU unit layer_blend supports alpha blend, this function is enabled in the content stream. The fetch_layer output is blend to const_frame output.
If this example runs success, rectangles and diamonds will move in the screen.
The DPU path is configured like this:
Multi-Layer * * Multi-Layer *
Frame buffer * * Frame buffer *
| |
v v
+—————–+ +—————–+ +—————–+ +—————–+ | | | | | | | | | FetchLayer0 | | Const Frame 0 | | FetchWarp2 | | Const Frame 4 | | | | | | | | | +—————–+ +—————–+ +—————–+ +—————–+ | | | | | v | v | +—————–+ | +—————–+ | | | | | | +————>| LayerBlend 0 | +————>| LayerBlend 2 | | | | | +—————–+ +—————–+ | | v v +—————–+ +—————–+ | | | | | ExtDst 0 or 1 | | ExtDst 4 or 5 | | | | | +—————–+ +—————–+ | | Safety stream | v Content Stream | +—————–+ | | | +———————————>| FrameGen 0 or 1 | | | +—————–+ | v