+ chain->num_drm_modifiers = 0;
+ chain->drm_modifiers = 0;
+
+ /* Use explicit DRM format modifiers when both the server and the driver
+ * support them.
+ */
+ if (chain->display->dmabuf && chain->base.wsi->supports_modifiers) {
+ struct u_vector *modifiers;
+ switch (chain->drm_format) {
+ case WL_DRM_FORMAT_ARGB8888:
+ modifiers = &chain->display->modifiers.argb8888;
+ break;
+ case WL_DRM_FORMAT_XRGB8888:
+ modifiers = &chain->display->modifiers.xrgb8888;
+ break;
+ default:
+ modifiers = NULL;
+ break;
+ }
+
+ if (modifiers) {
+ chain->drm_modifiers = u_vector_tail(modifiers);
+ chain->num_drm_modifiers = u_vector_length(modifiers);
+ }
+ }
+