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