On 10 July 2018 at 16:57, David Airlie <airl...@redhat.com> wrote: > > > On Tue, Jul 10, 2018 at 4:44 PM, Gert Wollny <gert.wol...@collabora.com> > wrote: >> >> Am Dienstag, den 10.07.2018, 09:19 +1000 schrieb Dave Airlie: >> > >> > Just FYI in future please don't push mesa patches until the renderer >> > side patch has landed, this is to avoid the abi accidentally >> > diverging around the caps. >> Sure, I'll keep that in mind, and sorry for rushing to push this. >> >> However, this actually points to a bigger problem: Given that the >> mesa/virgl driver is completely separate from the host virglrenderer, >> how do we ensure in a real world application that host and guest agree >> on the abi? There is this 'version' in the >> vrend_renderer_fill_caps_common and the 'max_version' in the caps, but >> the first one is not used at all, and the second is not used beyond >> signalling the availability of caps set 2. Maybe we should define some >> algorithm to bump that latter number so the client can see what values >> in the caps were actually filled by the host? >> > > We already deal with ABI at runtime. The problem is diverging the virgl_hw.h > file. > > One copy of that file needs to be master and we only add to the end of the > caps v2 > struct, but the version that is the master copy is the one in virglrenderer. > So if > we end up pushing patches to mesa first, and someone pushes another change > to virglrenderer we get incompatible overlap.
Just in case I didn't answer what you wondered, we use the size of the caps v2 to denote what the two sides support, so a older versions gets a smaller size, and the newer caps get default values, and new version we don't copy after the size the renderer expects. Dave. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev