Updated list of demos and detailed info
Daniel Monteiro
monteiroquiet at gmail.com
Sun Jul 20 16:11:28 UTC 2025
Thank you for the thorough answer.
> I think simply creating tickets for when demos doesn't run would be a good start.
That's a great idea for a first action. I will compile a list and
create the issue.
I've also noticed that some of the demos expect a file for input. I
wonder if those were supposed to be copied into the build directory
when using the provided instructions. I'm taking note of those and
will devise a patch to fix it (if applicable).
> And some demos needs a non-trivial setup to use. I think the "osdemos" fall under that category, and might warrant better documentation.
It's been a while since I last built osmesa. I tried again over the
week and got lots of outdated recommendations over the web, but
thankfully I still got the command line I got to work (for Android).
Perhaps this could be a second step towards improving things.
> The vast majority of the OpenGL demos in our demos repository are not great examples of good OpenGL programming, simply due to being very dated. Some of them probably promote what's considered bad practice these days.
Let's not forget that some folks are quite happy to glBegin and glEnd;
Some simply need to visualize some mesh processing algorithms and
stuff. But I certainly get why this would not be the best approach for
efficient hardware usage.
In fact, while I use "modern GL" for my silly games, I don't want to
waste much time with shaders and buffers on my offline tools.
As for deciding what's recommended or not, I will certainly need some
input from you guys, after a first pass. Hopefully this will save you
some time when analyzing this.
> 1. Useful utilities / "smoke-tests". These are tools that should be packaged and by default installed, and include tools like (glx|egl|wgl|es2_)info and all the gears variants.
It would be interesting to select demos that highlight different
aspects of the system, so it could be useful for folks to quickly
troubleshoot/fine tune their setups based on the different things
being demoed.
> 2. Programming examples / tech demos. These are more questionable if should be installed by default, and we might want to put them under an installation tag[1] that doesn't get installed by default.
Splitting those two even opens the doors for a more elaborate set of
demos to be constructed, with different cataloguing criteria. Perhaps
even with famous demos from the demoscene?
I also add a third category, based on my original message: good demos
for folks that want to learn while also taking a peek under the hood.
> But all in all, I think it sounds like a good initiative. But yeah, probably very time consuming!
My intention is to use a breadth-first approach, so I can better sort
out what's worth looking more deeply for each demo, as well as fixing
major issues.
> We can host things on GitLab Pages - this is the same as we do for mesa3d.org and docs.mesa3d.org. We could set up e.g demos.mesa3d.org as a catalogue, and it would probably be beneficial to use Sphinx, the same documentation system as we use for docs.mesa3d.org for this. I'm the one who set that up, and can help with it if needed.
>From what I understand, I would need special permissions to fork the
docs repo and create MRs? Should I create an issue for that first?
> In addition, it would probably be a good idea if we could somewhat automatically generate and update the screenshots, otherwise they're doomed to go stale at some point. This would probably involve some scripting to set up a headless display server, run the demos for a bit and capture a screenshot of the window. There's a lot of details to be figured out here, I'm sure!
Not entirely familiar with it, but we could use Piglit for that? Tried
running it locally, but ran out of disk space!
One last thing to point out, that I've noticed while reading the code:
the licensing for some of the demos is a bit unclear to me (and
probably for other, more casual readers). I suppose there's a global
license that applies unless otherwise noted?
Once again, thank you for the detailed answer.
Best regards,
Daniel Monteiro
More information about the mesa-dev
mailing list