I was planning on adding a new fb ioctl to allow us to create fbs with specific surface format types. We could either enumerate all of the ones we support (a list which will grow as drivers and devices are added) or try to factor out commit bits into a separate surface struct:
struct drm_mode_surface { enum components; /* YUV, VUY, RGB, BGR, ARGB, ... */ int depth; enum packing; /* some list of packing types? */ ... };
Any reason for not just using the Video4Linux 2 formats here, they've been enumerating video formats for some time already.