Hello everyone!
I've been recently porting my Direct3D engine to OpenGL so it could run on platforms other than Windows, but it didn't work as intended. After a lot of debugging (using ApiTrace) I'd decided to try to run it on Ubuntu and guess what? It worked exactly like I wanted it to. Earlier this afternoon I tried to use llvmpipe (a software rasterizer) on Windows and it ran just like it did on Ubuntu.
Most objects seem to be rendered at the same place (maybe it's (0,0,0)?) and all of them have the same color so I'm thinking it may be a problem with the uniform buffers, but ApiTrace doesn't give any related error and the values seem OK.
This is how it looks like with llvmpipe:
[attachment=33261:Should.png]
This is how it looks like without it:
[attachment=33262:Windows.png]
I don't know if ApiTrace .trace files are machine independent, but I'm including one in case someone has time to take a look at it:
[attachment=33267:Test.zip]
Now, there's something very important that I should say. My laptop has Intel integrated graphics which is known to have very crappy OpenGL drivers on Windows (supports 3.1), but the MESA driver on Ubuntu is much better (supports 3.3 core). Also, when on Windows it runs on a OpenGL 3.1 context, but on Ubuntu and when using llvmpipe it runs on a OpenGL 3.3 core context. I don't know if that could make a difference.
Does someone have any idea of what it could be? Could it be a driver bug? Could MESA drivers be allowing something that shouldn't be?
Thank you for reading. Best regards.