> + DRM_MODE_ATOMIC_ASYNC_NOT_SUPP_PLANE, I don't think it makes sense to have an enum value for this, the per-plane support for async pageflips should be reported to the compositor in a way that doesn't require atomic tests. Once that's done, trying to do async flips with it is just invalid API usage.
> + DRM_MODE_ATOMIC_ASYNC_MODIFIER_NOT_SUPP, Same here, there's already a drm property for async-capable format+modifiers on each plane, so this falls under invalid API usage. One more thing I noticed for the failure codes: I think it would be better if INVALID_API_USAGE and unspecified errors would be split, with the latter being the default error code. Afaict with the current version the compositor would be told it's using the API wrong when it's just a normal test failure that the driver hasn't added a more specific error code for yet. INVALID_API_USAGE would then just be for actual "you should know better than to try this" cases, which should never happen in correct compositor operation. Other than that, the API looks good to me. I'll put together a KWin implementation soon. - Xaver
