backends/drm: clear format list before parsing IN_FORMATS property

Otherwise we add the same modifiers every time the properties get updated,
which bloats the list and reduces performance over time
This commit is contained in:
Xaver Hugl 2023-11-23 14:18:06 +01:00
parent 8408dcfad0
commit 593be99207

View file

@ -100,6 +100,7 @@ bool DrmPlane::updateProperties()
m_possibleCrtcs = p->possible_crtcs; m_possibleCrtcs = p->possible_crtcs;
// read formats from blob if available and if modifiers are supported, and from the plane object if not // read formats from blob if available and if modifiers are supported, and from the plane object if not
m_supportedFormats.clear();
if (inFormats.isValid() && inFormats.immutableBlob() && gpu()->addFB2ModifiersSupported()) { if (inFormats.isValid() && inFormats.immutableBlob() && gpu()->addFB2ModifiersSupported()) {
drmModeFormatModifierIterator iterator{}; drmModeFormatModifierIterator iterator{};
while (drmModeFormatModifierBlobIterNext(inFormats.immutableBlob(), &iterator)) { while (drmModeFormatModifierBlobIterNext(inFormats.immutableBlob(), &iterator)) {