Skip to content

Rendered applications are warped when rendered on one GPU and displayed on another (intel + nvidia) #4035

@tarek-y-ismail

Description

@tarek-y-ismail

Applying the workaround in #4125 to get the compositor to launch on atomic-kms + gbm-kms, some applications appear to warp when rendered. The warping is fixed it the texture width is a multiple of 8, and increases the further you get from it.

Image

This only occurs if the application is rendered on the intel GPU and is displayed on the nvidia GPU. In this case, the texture data is passed on via DMABUF through a common format texture (RGBA8888), and then uploaded to OpenGL on nvidia display GPU.

Dumping the textures at various points (intel GPU EGLImage, common EGLImage, nvidia EGLImage pre-upload, and nvidia texture post-upload) shows no warping whatsoever. The texture is read via glReadPixels.

One known workaround is to force the width of the common and imported textures to be a multiple of 8.

If the app is rendered on the nvidia GPU, it displays correctly on both monitors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    TriagedTriage into JIRA to plan it in

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions