Starting a new thread for OGLES2 discussions. Please discuss only ogles2.library related matters, OpenGL ES 2.0 API questions, GLSL recipes and things like that, thank you.
The latest public OGLES2 version is 3.3 (30.4.2022).
Edited by Capehill on 2019/3/28 17:49:06 Edited by Capehill on 2019/3/28 18:59:10 Edited by Capehill on 2019/4/1 19:14:35 Edited by Capehill on 2019/4/3 17:36:00 Edited by Capehill on 2019/4/7 16:32:46 Edited by Capehill on 2019/7/4 8:47:52 Edited by Capehill on 2019/7/9 8:52:41 Edited by Capehill on 2019/9/14 18:53:06 Edited by Capehill on 2019/12/29 12:00:58 Edited by Capehill on 2020/1/5 17:30:16 Edited by Capehill on 2020/5/13 8:07:15 Edited by Capehill on 2021/3/28 18:31:55 Edited by Capehill on 2021/4/21 14:45:36 Edited by Capehill on 2022/8/29 8:09:07 Edited by Capehill on 2022/10/2 19:22:18 Edited by Capehill on 2022/10/3 16:45:14 Edited by Capehill on 2022/10/3 16:56:24
OpenGL ES 2 version 2.3 for Warp3D Nova / AmigaOS4 is on my FTP for testers to test now!
- Support for GL_MIN and GL_MAX / GL_MIN_EXT and GL_MAX_EXT blend equations.
- Consequently added GL_EXT_blend_minmax to the extensions string.
- GL_QUAD_STRIP is now sort of supported, by simply switching to triangle strips internally.
- by default the lib's internal compatibility patcher kicks in if your GLSL lacks a #version tag. In rare cases this may fail and if it does it will now try again using the unpatched GLSL instead. This is usually more desirable than to globally disable the patcher on context creation.
- the glslangvalidator_redux tool has been updated to reflect that new behaviour.
- Critical fix: one of the 32bit-step-hashers had a problem with small data-packets; it would eventually produce the same hash for similar data, which would result in geometry becoming distorted or being falsely positioned, stuff like that. Actually the symptoms were pretty much like those of the bug fixed in the previous version 2.2. Thanks again to Capehill for reporting and for providing a very nice tiny test program for it! Luckily this was also the reason for a certain sky-box-issue reported by kas1e and which I failed to pinpoint until now, thanks to him too!
- Fix: if the library was told to automatically handle the output window, eventual window-border overdraw was possible. Thanks again to Capehill for reporting and providing a test-prog and to Hans for additional information.
- !don't forget to download the new include-folder too!
Blitting over window borders on window minimize. Mantis ticket opened
Fixed. Since 2.3 is still "hot" and Matthew didn't update it yet, I put the fix in there without increasing the version number (lib date has been updated though).
@Capehill Now all SDL apps which use gl4es do not have anymore that overlaping of window's borders about which i told in the SDL2 thread. Foobillard, lf3 and all the games now reacts correctly once you resize it. So those reports for SDL2 about can be forgotten then.
Regarding OpenGL ES 2.0 test programs: they seem to use the original version aglCreateContextTags, maybe could be updated to use aglCreateContextTags2?
Diamonds and Dust title texts (the blue ones) are still broken.
Fixed as of version 2.4:
OpenGL ES 2 version 2.4 for Warp3D Nova / AmigaOS4 is on my FTP for testers to test now! No April fool hoax, we got a fresh version for real again
- Fix: I forgot to enforce a Nova submission if a user-supplied VBO was modified and if this VBO was already marked as being queued for rendering. The effects could vary. Capehill reported it as missing letters in one of his games (in fact those letters weren't really missing, but had mutated to others which were now being drawn twice ), thanks again!
- Fix: glMapBufferOES now issues a Nova submission flush in such a case too, if the access-mode is not GL_READ_ONLY.
- performance: some more branch hints, one redundant Nova VBOSetArray call removed.
- version set to 2.4 (1.4.2019)
EDIT: 2.4 has been updated again, I had added a fresh bug but luckily Capehill immediately smelled it Fixed.
- Fix: I forgot to enforce a Nova submission if a user-supplied VBO was modified and if this VBO was already marked as being queued for rendering. The effects could vary. Capehill reported it as missing letters in one of his games (in fact those letters weren't really missing, but had mutated to others which were now being drawn twice ), thanks again!
That one confirmed for sure.
Also tested all games,etc : all works as expected.
@Capehill
Quote:
Regarding OpenGL ES 2.0 test programs: they seem to use the original version aglCreateContextTags, maybe could be updated to use aglCreateContextTags2?
Once Daniel made those "2" versions of functions, i start to use them when adding gl4es into SDL1/SDL2, so all my tests already with it.
Btw, you may also add to the list of apps which use ogles2 (via gl4es as well) these:
OpenGL ES 2 version 2.5 for Warp3D Nova / AmigaOS4 is on my FTP for testers to test now!
- Fixed a very subtle OpenGL specs violation in glVertexAttrib which could result in crashs in certain use-cases because it would make the library to try to copy from a nullptr. This fixes the crash in the game Fricking Shark reported by kas1e. Fun fact, no kidding: back in 2016 I placed this comment behind the critical line of code which had to be removed now:
// FIXME: is that correct?! I don't think so
EDIT, little addon: - Further speedup of the lib's internal ubyte8->float32 copy-conversion. kas1e reported 2+ fps in his Q3 tests (84.4 vs. 86.6). Not too shabby.
@Daniel Confirmed ! Thanks a lot !:) At least and because of that bug and of some others, we have glSnoop from Capehill which can trace/debug ogles2.library as well as warp3dnova.
@Capehill You probabaly can add glSnoop to the list of ogles2 apps too :)
@kas1e Please check out the FTP. I made an alternative lib version which probably speeds up the lib's internal ubyte8-VA-workaround a bit more. A bit. Don't expect too much, but maybe it's good enough for a few fps here and there.
@Daniel May i suggest if you doenst mind with every ogles2 release, include not only ogles2.library and libogles2.a , but also ogles2.library.debug , which will be the same ogles2.library just contain debug symbols.
Currently Hans with warp3dnova also do it like this (and Mattew add it to Enhancer as well), will be handy to have the same with ogles2 as default too. For you it will be imho better if any of us will create bug reports with proper stack traces, etc
@kas1e Yes, will do. Don't get hyped and don't overestimate the value of this though:
for example 99% of all invalid vertex-pointers will end up crashing (if crashing) at the same location, namely inside one of the hashers when drawing, because that's where they are touched first, although the root of evil is maybe a pointer-assignment hundreds of frames ago or a forgotten VA disable or whatever. Same thing with most other stuff, most is "delayed".
Therefore pretty much the only real good thing is and remains to provide me with small isolated test programs, like those Capehill came up with recently. Without those the crash-site info alone (even incl. function params or whatever) would have left me in the dark.
I know it's not part of the ES 2.0 API but is there any chance of adding support for GL_TEXTURE_BASE_LEVEL and GL_TEXTURE_MAX_LEVEL? I could then add mipmapping to the texture atlas in AmiCraft.