render/drm_format_set: remove special LINEAR case
This was used to make the intersection of INVALID and LINEAR result in LINEAR. We can now just require LINEAR to be in both lists.
This commit is contained in:
parent
d5df8d5cbf
commit
98f2efde98
|
@ -144,18 +144,6 @@ struct wlr_drm_format *wlr_drm_format_intersect(
|
|||
const struct wlr_drm_format *a, const struct wlr_drm_format *b) {
|
||||
assert(a->format == b->format);
|
||||
|
||||
// Special case: if a format only supports LINEAR and the other supports
|
||||
// implicit modifiers, force LINEAR. This will force the allocator to
|
||||
// create a buffer with a linear layout instead of an implicit modifier.
|
||||
if (a->len == 1 && a->modifiers[0] == DRM_FORMAT_MOD_LINEAR &&
|
||||
wlr_drm_format_has(b, DRM_FORMAT_MOD_INVALID)) {
|
||||
return wlr_drm_format_dup(a);
|
||||
}
|
||||
if (b->len == 1 && b->modifiers[0] == DRM_FORMAT_MOD_LINEAR &&
|
||||
wlr_drm_format_has(a, DRM_FORMAT_MOD_INVALID)) {
|
||||
return wlr_drm_format_dup(b);
|
||||
}
|
||||
|
||||
size_t format_cap = a->len < b->len ? a->len : b->len;
|
||||
size_t format_size = sizeof(struct wlr_drm_format) +
|
||||
format_cap * sizeof(a->modifiers[0]);
|
||||
|
|
Loading…
Reference in New Issue