In general it might not be a bad idea to group GL specific data into a separate struct, but IWineD3DSurfaceImpl is currently the only thing that bothers. It doesn't get it quite right either, since e.g. the PBO isn't in glDescriptor either.