Ping Pong Buffer Implementation in XORG

Asked by Prija Dwivedi on 2021-06-01

My current system configuration is like application gives the frame to XORG and XORG is configured to use simple frame buffer driver(mapped to DDR address).

I need to implement a ping pong buffer utility in such a way that every new frame goes to two different DDR addresses.

I can reserve two block of memory in simple frame buffer driver adding below mentioned code in system-user.dtsi:

chosen {
    framebuffer0: framebuffer@3ee48000 {
        compatible = "simple-framebuffer";
        memory-region = <&frontbuff_reserved &backbuff_reserved>;
        width = <1280>;
        height = <800>;
        stride = <5120>;
        format = "a8r8g8b8";
        status = "okay";


reserved-memory {
    #address-cells = <2>;
    #size-cells = <2>;

    frontbuff_reserved: framebuffer@3ee48000 {
        reg = <0x0 0x3ee48000 0x0 0x900000>;
    backbuff_reserved: framebuffer@3f248000 {
        reg = <0x0 0x3f248000 0x0 0x400000>;
    }; };
But I need some support in how XORG can use these two memory alternatively on every frame/image at runtime

Question information

English Edit question
Ubuntu xorg-server Edit question
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Manfred Hampl (m-hampl) said :

I guess you better ask such questions at XOrg.

Can you help with this problem?

Provide an answer of your own, or ask Prija Dwivedi for more information if necessary.

To post a message you must log in.