Commit c45c33a5a2b75e791de14e845c994f414c77cc51 gallium: Remove manual defining of PIPE_FORMAT enum values. breaks virgl, because virglrenderer holds a copy of that format list that must be in sync with the mesa version, so it would be nice to revert this. Adding a format translation to the virgl driver seems to me as a rather ugly option, and if we do it that it should be something that is done at the beginning of a release cycle.
IMO that should just be backed out. PIPE_FORMAT enum values are used in TGSI code streams.
Gallium is a private interface. Exposing Gallium externally is a mistake and misuse of the interface. There is nothing to do here.
https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1738 should fix it for now, as long as nobody renames format, if people do that we'd have to rewrite the shaders like we in some other cases.
Fixed with bba4d2f442f33bc68a4573a6f1f559f277d7ec51
(In reply to Ilia Mirkin from comment #1) > IMO that should just be backed out. PIPE_FORMAT enum values are used in TGSI > code streams. I think the eventual goal is to unify PIPE_FORMAT_* and MESA_FORMAT_*, so I guess some further shuffling could happen.. do formats encoded in TGSI ever constitute some ABI?
(In reply to Rob Clark from comment #5) > (In reply to Ilia Mirkin from comment #1) > > IMO that should just be backed out. PIPE_FORMAT enum values are used in TGSI > > code streams. > > I think the eventual goal is to unify PIPE_FORMAT_* and MESA_FORMAT_*, so I > guess some further shuffling could happen.. do formats encoded in TGSI ever > constitute some ABI? You can argue it either way. Virgl uses (used?) this, presumably svga does too. The format is encoded in the TGSI ops for image declarations, and perhaps in the ops themselves too (due to bindless). Whether TGSI forms a more permanent ABI or not ... up to us. I see it as a strong point of TGSI that it has this fairly stable well-defined wire format, but I also don't have the energy to fight it out.
(In reply to Ilia Mirkin from comment #6) > (In reply to Rob Clark from comment #5) > > (In reply to Ilia Mirkin from comment #1) > > > IMO that should just be backed out. PIPE_FORMAT enum values are used in TGSI > > > code streams. > > > > I think the eventual goal is to unify PIPE_FORMAT_* and MESA_FORMAT_*, so I > > guess some further shuffling could happen.. do formats encoded in TGSI ever > > constitute some ABI? > > You can argue it either way. Virgl uses (used?) this, presumably svga does > too. The format is encoded in the TGSI ops for image declarations, and > perhaps in the ops themselves too (due to bindless). > > Whether TGSI forms a more permanent ABI or not ... up to us. I see it as a > strong point of TGSI that it has this fairly stable well-defined wire > format, but I also don't have the energy to fight it out. looks like svga does not handle images (yet?).. but it does some amount of translating the tgsi, so I guess it could remap encoded formats to some stable over-the-wire format. But virgl does, and seems to pass the tgsi straight thru. Which makes me suspect it is still broken for shaders that use images :-/
Virgl sends the TGSI as text so I think we are save. At least Dave and me we run the patches through piglit and the virglrenderer CI on a hardware host (the fdo one only used softpipe) and there all passes as expected.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.