[QUOTE=CarstenT;1292488]The problems appear on my /new/ and modern ultrabook running on win10 pro using an intel family cpu (somewhere displaying number 5300).
As for a host of my own opengl works saved over time, they seems to have one thing in common:
they display nothing on the screen except perhaps the first line: gl_clear_color(some_color) .
I’ve run the extensions-viewer and it finds support up to and including ver 4.4. …
there seems to be errors in the shaders. …
it does not make much sense (referring to ‘FragUserData’ and ‘aTexture’ … not variables that I can recognise).[/QUOTE]
Ok, so you’re switching from an old NVidia GeForce GPU to an Intel HD Graphics 5300 GPU embedded in your CPU which has OpenGL 4.4 drivers installed (though we’re not sure whether that’s OpenGL 4.4 Core Profile, or OpenGL 4.4 Compatibility Profile).
Doing a quick websearch for the shader error fragments you mentioned, I see:
[ul]
[li]Anti Aliasing and LightScatteringFilter [/li][li]‘texture2D’ : function is removed in Forward Compatibile context #13 [/li][li]Crash on startup, OpenGL.error.NullFunctionError (windows, playscii 0.5.1) [/li][/ul]
The common thread being folks running on their embedded Intel GPU with Intel drivers seem to have this problem, but when they flip to an NVidia GPU with NVidia drivers the problem goes away.
A piece of the error messages listed gives a clue:
WARNING: 0:52: 'texture2D' : function is deprecated and not available in Core Profile context
or
ERROR: 0:15: 'texture2D' : function is removed in Forward Compatibile context
So, it may be that you are (as you indicated) creating a forward-compatible or core context, and your shaders are using deprecated or removed OpenGL features. That seems like the best bet. Alternatively, it could be that your shaders are buggy, the drivers don’t support the compatibility profile very well, or the driver may have a bug.
If you want the widest OpenGL feature support possible, create a GL context with the “compatibility profile”. NVidia and AMD have wide support for this across all OpenGL versions. Other vendors have more limited support. You should check into your Intel’s GL drivers and determine the maximum “core profile” version your drivers support as well as the maximum “compatibility profile” version they support, and write your code accordingly.
doesn’t forward-compatible mean that my code will be rock-solid once it meets future gpu’s ? … what else should it mean?
I can see that interpretation. But what it actually gives you is the maximum number of “old OpenGL features” disabled. The idea is that if you accidentally use a feature deprecated in some OpenGL version, it might be removed in a future version. So “forward compatible” doesn’t even let you get started using it when you are writing the code. It makes it completely unavailable.
For more on Forward-compatibile Contexts, see this link: OpenGL_Context#Forward_compatibility