![]() ![]() nVidia’s drivers are touching things that aren’t referenced. This won’t cause a crash, even though str2 is pointing who knows where. Note to carry this on further than it needs to be, but that’s like writing this code: If your app is written in a C-like language, I expect it to crash. ![]() If you pass a pointer to the GL (glVertexAttribPointer) and then ask to dereference the pointer (glEnableVertexAttribArray) and the pointer is invalid, what do you expect to happen? “These error semantics apply only to GL errors, not to system errors such as memory access errors.” ![]() If anything, it’s an interesting difference in the drivers. I’ll have more later when I know if this is the real reason. Is what the driver is doing right or wrong? It’s certainly checking data it will never use, but then again, I shouldn’t be enabling data without setting a pointer to it. I got away with this for a long time, until I ran into a user with that setup.įor instance, I might have A, B, and C all enabled, only A & B have offsets into the VBO set, but only A & B are used in the shader, or referenced at all. The drivers must be doing some kind of pre-flight check, and that’s causing the access violation. But here’s the interesting part: The IDs aren’t hooked up to any attributes in the shader code. I’ve got some enables that are leaking to shaders where no AttribPointer call is made – because – as it always is – I was getting a bit too aggressive with the optimizations. It has to do with glEnableVertexAttribArray and glVertexAttribPointer. Should crash right away if you have a PC/nVidia setup.Īs always, the minute I post this, I think I’ve found the problem, but will need to verify with my users, hopefully by tomorrow. You can find the latest PC build at the url above. The shader compile correctly, and all the locations have proper integers. Has anybody encountered this? Is there a way to get further debug information? I’m sure it’s something simple the PC nVidia drivers are doing differently, maybe they require things to be set in a certain order?įurther notes: No built-in variables are used, all vertex, uv, matrixes, etc, are passed in by vertex arrays or uniforms. Sadly, I don’t have this configuration, and debug code to my users isn’t getting me anywhere. On nVidia, it always crashes, the first shader call (against a glDrawArrays), with pretty much any shader, no matter how simple. It works on iOS (es2), OS X with Intel GPU, nVidia, or ATI(AMD) cards, and on the PC with ATI(AMD) or Intel GPU. The editor is all fixed function, it works everywhere. I’m the author of an open source, cross-platform freeware 3D engine dim3 ( Two components: the engine and the editor. ![]()
0 Comments
Leave a Reply. |