[Mesa-dev] [RFC] glsl: bump default glsl version to 130 if EXT_gpu_shader4 used
Timothy Arceri
tarceri at itsqueeze.com
Wed May 16 00:11:19 UTC 2018
On 16/05/18 09:41, Marek Olšák wrote:
> On Tue, May 15, 2018 at 4:59 PM, Jason Ekstrand <jason at jlekstrand.net
> <mailto:jason at jlekstrand.net>> wrote:
>
> On Tue, May 15, 2018 at 1:38 PM, Marek Olšák <maraeo at gmail.com
> <mailto:maraeo at gmail.com>> wrote:
>
> On Tue, May 15, 2018 at 4:09 PM, Ilia Mirkin
> <imirkin at alum.mit.edu <mailto:imirkin at alum.mit.edu>> wrote:
>
> On Tue, May 15, 2018 at 3:54 PM, Marek Olšák
> <maraeo at gmail.com <mailto:maraeo at gmail.com>> wrote:
> > On Tue, May 15, 2018 at 3:36 PM, Ilia Mirkin <imirkin at alum.mit.edu <mailto:imirkin at alum.mit.edu>> wrote:
> >>
> >> The extension is totally different... it adds things like "unsigned
> >> int", and a ton of texture*/shadow* variants. If it helps this one
> >> shader compile, that's a coincidence. IMO it's dangerous to start
> >> throwing things like this in.
> >
> >
> > That's why it prints a warning. The extension isn't exposed.
>
> It bumps the GLSL version to 1.30 though, which e.g. makes
> "in" and
> "out" a keyword. And a bunch of other stuff like that. Just
> seems
> dangerous.
>
>
> It may seem dangerous, but not after you consider that it
> changes a compile failure into "some behavior" and a warning.
> That is pretty safe, because you'll either get a compile failure
> again, or you'll get correct behavior as if a subset of the
> extension was exposed. Either case is harmless.
>
>
> This does seem really sketchy. It's a spec violation because we are
> required to fail the shader compile for unknown extensions. And
> it's letting a shader through even though we know it's likely to die
> in a fire later on due to the fact that we only implement 30% of
> gpu_shader4. On top of that, the best justification we can come up
> with is a broken app that assumes gpu_shader4 but doesn't actually
> use it.
>
>
> The best justification that we actually have is that there is an app
> which uses GLSL 1.20 + EXT_gpu_shader4 but actually only needs GLSL 1.30.
>
> Marek
I did consider just using force_glsl_version, maybe we should just do
that for now. Old extensions like these are going to haunt us for a
while I think. I was trying to get Doom (2016) running yesterday and it
seems it uses bits from EXT_direct_state_access.
More information about the mesa-dev
mailing list