Review Request 128426: Support OpenGL 3.2 Core profile in FadingNode shaders

David Edmundson david at davidedmundson.co.uk
Tue Jul 12 13:30:01 UTC 2016



> On July 12, 2016, 6:07 a.m., Martin Gräßlin wrote:
> > What about shader variants for GLES? There are also two versions, one being like the old one and one like core. In KWin we can handle this with the same shader code and rewriting e.g. the version statement. Do you know how this is handled in QtQuick?

As I understand it GLES is a subset of GL, so as long as you just stick to using only subset in the first place you don't need two.

I tried to mimc what Qt does exactly. They seem to just have the two:
"normal" and ">3.2 Core" both completely from scratch.
Poke me on IRC and I'll point you to the code locations.
 
The only difference is they have the shaders as embedded Qt resources file and load them by name.


> On July 12, 2016, 6:07 a.m., Martin Gräßlin wrote:
> > src/declarativeimports/core/fadingnode.cpp, line 72
> > <https://git.reviewboard.kde.org/r/128426/diff/1/?file=471592#file471592line72>
> >
> >     varying doesn't exist in core profile. It's "out"

You're right - weird that it threw a fatal error over "attribute" but not this one - when they're both equally deprecated.


- David


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128426/#review97302
-----------------------------------------------------------


On July 11, 2016, 11:34 p.m., David Edmundson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/128426/
> -----------------------------------------------------------
> 
> (Updated July 11, 2016, 11:34 p.m.)
> 
> 
> Review request for KDE Frameworks and Plasma.
> 
> 
> Repository: plasma-framework
> 
> 
> Description
> -------
> 
> Qt has two shaders for all items; one for when running OpenGL3.2+ without backwards compatibility (i.e running CoreProfile) and one that supports more legacy systems. (see
> the shaders directory and the versions ending with _core)
> 
> core profile is only used if explicitly by the app enabled when creating the GL context. 
> 
> Something we don't currently do in Plasma, but a 3d party user could be doing.
> 
> Long term it's also something I want to do in Plasma optionally as it gives a 15Mb memory saving with Mesa.
> 
> This patch updates our material to provide the right shader for the
> given version matching the behavior of
> QSGShaderSourceBuilder::resolveShaderPath which Qt uses internally.
> 
> 
> Diffs
> -----
> 
>   src/declarativeimports/core/fadingnode.cpp 88b7310641f58c2b74fe61d2c5a97847cf7dc3b8 
> 
> Diff: https://git.reviewboard.kde.org/r/128426/diff/
> 
> 
> Testing
> -------
> 
> ran krunner with 
> +    QSurfaceFormat format;
> +    format.setVersion(3,2);
> +    format.setProfile(QSurfaceFormat::CoreProfile);
> +    QSurfaceFormat::setDefaultFormat(format);
> 
> and it still works.
> 
> plasmashell unchanged (so still requesting an GL 2.0 context) also still works.
> 
> 
> Thanks,
> 
> David Edmundson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160712/54ed2a80/attachment.html>


More information about the Plasma-devel mailing list