I've already got >= 13 tests covering various if/else use-cases, so it's likely to be some obscure issue.
Hehehe, the famous last words of every programmer, including me, of course Or as I prefer to say: "it works for me TM"
However, here is a simple freezing vertex-shader example. With "if" it freezes. Without it works. I think it can't be more minimal and obvious.
attribute vec4 vPosition;
uniform float freezer;
void main()
{
gl_Position = vPosition;
// use the following line to experience a Nova freeze
// if(freezer>0.0)
gl_Position.x +=freezer;
}
Here's an archive with two exes with the respective variants plus source (sorry, ugly, my std. messy modified mini test).
EDIT: Digged out my serial cable and this is what I get if I wait a couple of seconds before doing a hard reset:
When using the no-if-no-freeze shader variant then nothing is put on the serial.
RadeonHD.chip version 1.17 Warp3DNova.library version 1.43 Those are the latest versions I got from Matthew. If you have newer ones, please mail them to me.
Cheers, Daniel
Edited by Daytona675x on 2018/2/20 14:02:18 Edited by Daytona675x on 2018/2/20 14:03:04 Edited by Daytona675x on 2018/2/20 14:17:21
@Hans Just strange why it lockups, as it looks very basic. Maybe just all the ifs/else/? code was broken at some point and even didn't works for now in NOVA ?
Just strange why it lockups, as it looks very basic. Maybe just all the ifs/else/? code was broken at some point and even didn't works for now in NOVA ?
Nope.
I run my test suite before every release, and all tests pass, including one that looks remarkably similar to Daniel's test shader (except it's a fragment shader not a vertex one).
I just reran it again, and all tests are passing as expected. I've also had a look at the generated shader assembly, and haven't seen anything wrong yet. Will have more time to analyse it later...
including one that looks remarkably similar to Daniel's test shader (except it's a fragment shader not a vertex one).
Remarkably similar is not identical and fragment- is not vertex-shader
Quote:
I just reran it again, and all tests are passing as expected.
For even more simplicity and so you don't have ogles2 in the middle and no other uniform and no other client code than your own, please do the following (and probably add the result to your list of std. tests): Take your own W3DNHelloTriangle example that ships with Nova. Don't modify anything but the ColourArray2D.vert shader.
Here's the original shader:
#version 140
in vec3 vertPos;
in vec4 vertCol;
out vec4 colour;
Compile it using glslangvalidator -G -o ColourArray2D.vert.spv ColourArray2D.vert (which is what your makefile does), start the triangle-example -> Freeze. Needless to say it's the "if" only. If you remove the condition-check and always do gl_Position.x += vertCol.x , then it works.
Preprepared download of this is available here. Curious what your working test-shaders look like. Can you please put them online?
Yes, create a bug ticket. You can keep it brief and add a link to the first post in this thread about the issue.
Done!
Just hope it can't take long, as it really problem which make it hard to port regal and gl4es. Polaris drivers are good, but well.. Fingers crossed ! :)
I'll add a vertex shader equivalent to my test suite as soon as I can.
Sounds as if there's no vertex-shader-with-if test in your suite at all so far? Okay, that explains why this one slipped through, because if-handling in vertex-shaders is apparently broken so hard that it seems to be impossible to come up with a working one. And it also explains why your other tests pass - because they all miss the topic
As being said: just use your HelloTriangle example with the modified shader as outlined above and already prepared for you, then you have your vertex-shader-equivalent for your test suite, you don't need to waste time coming up with sth. new.
@all In meantime, with fast-hacked sdl1 to be build with gl4es instead of minigl, have first primitive game runs on it !
Through, colors is swapped, so time to deal with Endianes in the gl4es (probably).
Legacy MiniGL original:
GL4ES:
To those ones who think now "wtf, why need all those copies of minigl based apps" : that all for tests. Once all minigl based , but compiled over gl4es will works as over minigl, then it will mean that gl4es ready for some ports which minigl can't do, but gl4es at this time will works without bugs => yeah.
Even if speed will worse, and all will be shit and crap, because of work on gl4es we fix issues in ogles2 and nova, which, will help to all other stuff, even not to gl4es.
And, speed of simple things will not be better, it will be the same. But speed of "heavy" things should be better. In theory :)) As well as can be ported big things which can't be ported on MiniGL.
So, gl4es slower (!) on 10 fps. Through, whole game code of Bloboats its just big chunks of glbegin/glend , and almost no textures, etc => not GPU intensive. We can say it "almost" the same as minigl. For seing real differences, need big, GPU intensive games.
Edited by kas1e on 2018/2/24 22:24:13 Edited by kas1e on 2018/2/24 22:24:57