Skip to content

Conversation

@bramoosterhuis
Copy link
Contributor

@bramoosterhuis bramoosterhuis commented Sep 26, 2025

  • The compositor now also runs on NVIDIA hardware with the Wayland backend.
  • Buffer handling has been reworked:
    • The client is now fully responsible for buffer allocation, pixel format, and modifier selection.
    • The compositor only allocates a Client slot. Once the client is ready, it offers a DMA-BUF back to the compositor, which is then used to create a texture for rendering on the output buffers.
  • Clients can now offer multiple buffers (up to 4) simultaneously.
  • To support this, ServerBufferType has been moved from the Client object to a new Buffer object.
  • The client must request rendering on the correct ClientBufferType within its own process space. The corresponding ServerBufferType is then selected as the active content buffer for rendering.

related PR
rdkcentral/ThunderClientLibraries#321

@rdkcmf-jenkins
Copy link
Contributor

b'## Copyright scan failure
Commit: d6be4a3
Report detail: https://gist.github.com/rdkcmf-jenkins/94a5714b60739fbb374a9b29156ecff1'

@rdkcmf-jenkins
Copy link
Contributor

b'## Copyright scan failure
Commit: cddd338
Report detail: https://gist.github.com/rdkcmf-jenkins/94ce92b09d9a1acf3544da2b67c03d94'

Copy link
Contributor

@pwielders pwielders left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: Can you remove all cerr streams. They cluther up the CLI, if it is running!

To properly start Thunder with a Westeros compositor, use the following command:

```shell
XDG_RUNTIME_DIR=/run LD_PRELOAD=libwesteros_gl.so WESTEROS_DRM_CARD=/dev/dri/card1 WESTEROS_GL_NO_VBLANK=1 WAYLAND_DISPLAY=wayland-0 Thunder -F
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is violating the "uniform configuration" rule for the Thunder product. We need to look at this in more detail, cause all configuration information should be coming from the json config file and not rely on environment variables set. I guess ,for example, the WESTEROS_DRM_CARD is a piece f informatin that is also in the json config. What if these cinflict ?

drmModeObjectPropertiesPtr properties = drmModeObjectGetProperties(_descriptor, _objectId, static_cast<uint32_t>(_objectType));

if (properties) {
std::cerr << __FILE__ << ":" << __LINE__ << std::endl;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was probably for testing ? Please remove it as this clutters up the CLI if it is running :-)

drmModePropertyBlobPtr result(nullptr);

uint64_t blobId;
std::cerr << __FILE__ << ":" << __LINE__ << std::endl;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above :-)

Remove console output.
@pwielders pwielders merged commit d955e36 into master Oct 8, 2025
48 checks passed
@pwielders pwielders deleted the development/compositor-enhancements branch October 8, 2025 10:42
@github-actions github-actions bot locked and limited conversation to collaborators Oct 8, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants