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>;
    ranges;

    frontbuff_reserved: framebuffer@3ee48000 {
        no-map;
        reg = <0x0 0x3ee48000 0x0 0x900000>;
    };
    backbuff_reserved: framebuffer@3f248000 {
        no-map;
        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

Language:
English Edit question
Status:
Answered
For:
Ubuntu xorg-server Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Manfred Hampl (m-hampl) said :
#1

I guess you better ask such questions at XOrg.
https://www.x.org/wiki/

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.