Closed Bug 1750389 Opened 3 years ago Closed 3 years ago

[NVIDIA] Incorrect DRM modifiers can be used

Categories

(Core :: Widget: Gtk, defect)

Firefox 96
x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
98 Branch
Tracking Status
firefox98 --- fixed

People

(Reporter: elfarto, Assigned: stransky)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

The code in widget/gtk/DMABufSurface.cpp uses the DRM modifiers from the first fd on all the fd's that are imported.

This is incorrect as there are modifiers for each fd. This turns out to be an issue for the nvidia-vaapi-driver when dealing with small texture sizes, where the Y and UV planes will receive different modifiers.

The code should store all the modifiers, and use the correct one when importing.

Can you attach an example how VADRMPRIMESurfaceDescriptor looks like when it's exported by NVIDIA? (output from gdb is fine).
Thanks.

Flags: needinfo?(elfarto)

The code that fills out that structure is located here.

Flags: needinfo?(elfarto)
No longer blocks: egl-linux-dmabuf
Summary: Incorrect DRM modifiers can be used → [NVIDIA] Incorrect DRM modifiers can be used

Recently DMABuf modifiers are not correctly implemented for YUV surfaces - when a modifier is present we use it
for all planes to create EGLImage.
In this patch we import modifiers for all used YUV planes and use them correctly for particular planes.

Assignee: nobody → stransky
Pushed by stransky@redhat.com:
https://hg.mozilla.org/integration/autoland/rev/5834c469b533
[Linux] Use DMABuf modifiers for all planes for YUV surfaces r=emilio

I've tested the patch and it solves the issue I was seeing. Thanks!

Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: