Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Page 3 of 3 FirstFirst 123
Results 21 to 28 of 28

Thread: NVIDIA releases OpenGL 4.1 drivers

  1. #21
    Super Moderator Frequent Contributor Groovounet's Avatar
    Join Date
    Jul 2004
    Posts
    935

    Re: NVIDIA releases OpenGL 4.1 drivers

    Hi,

    Here is a series bugs I encounter:
    1 - nVidia drivers doesn't support precision qualifier for input and output varyings.

    2 - gl_ViewportIndex isn't supported.

    3 - nVidia drivers behave weirdly with precision qualifiers. On one side there are more of less discard, on other side there are interpreted as int8_t or int16_t which are defined in GL_NV_vertex_attrib_integer_64bit but I don't use it.

    4 - I have a misleading warning with the following simple shader:
    0(21) : warning C7050: "GeomColor" might be used before being initialized

    Code :
    #version 400 core
     
    layout(triangles, invocations = 6) in;
     
    in vec3 VertColor[];
    layout(stream = 0) out vec3 GeomColor;
     
    uniform mat4 MVP;
     
    void main()
    {	
    	for(int i = 0; i < gl_in.length(); ++i)
    	{
    		gl_Position = MVP * (gl_in[i].gl_Position + vec4(vec2(0.0), - 0.3 + float(0.1) * float(gl_InvocationID), 0.0));
    		GeomColor = (vec3(gl_InvocationID + 1) / 6.0 + VertColor[i]) / 2.0; 
    		EmitVertex();
    	}
    	EndPrimitive();
    }

    It is followed by a invalid operation error at draw call.

    5 - More misleading errors with a simple control shader:
    Code :
    #version 400 core
     
    layout(vertices = 4) out;
     
    in vert
    {
    	vec4 Color;
    } Vert[];
     
    out cont
    {
    	vec4 Color;
    } Cont[];
     
    void main()
    {	
    	gl_TessLevelInner[0] = 16.0;
    	gl_TessLevelInner[1] = 16.0;
    	gl_TessLevelOuter[0] = 8.0;
    	gl_TessLevelOuter[1] = 8.0;
    	gl_TessLevelOuter[2] = 8.0;
    	gl_TessLevelOuter[3] = 8.0;
    	gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
    	Cont[gl_InvocationID].Color = Vert[gl_InvocationID].Color;
    }

    0(14) : error C5121: multiple bindings to output semantics
    "ATTR0"
    0(14) : error C5121: multiple bindings to output semantics "ATTR0"
    0(14) : error C5121: multiple bindings to output semantics "ATTR0"

    Yes, I have it 3 times...

    6 - More geometry shader issue:
    Code :
    #version 410 core
     
    // Declare all the semantics
    #define ATTR_POSITION	0
    #define ATTR_COLOR		3
    #define ATTR_TEXCOORD	4
     
    #define VERT_POSITION	0
    #define VERT_COLOR		3
    #define VERT_TEXCOORD	4
    #define VERT_INSTANCE	7
     
    #define GEOM_COLOR		3
     
    #define FRAG_COLOR		0
    #define FRAG_RED		0
    #define FRAG_GREEN		1
    #define FRAG_BLUE		2
    #define FRAG_ALPHA		3
     
    layout(triangles, invocations = 6) in;
     
    layout(location = VERT_COLOR) in vec3 Color[];
    layout(location = GEOM_COLOR, stream = 0) out vec3 GeomColor;
     
    uniform mat4 MVP;
     
    void main()
    {	
    	for(int i = 0; i < gl_in.length(); ++i)
    	{
    		gl_Position = MVP * (gl_in[i].gl_Position + vec4(vec2(0.0), - 0.3 + float(0.1) * float(gl_InvocationID), 0.0));
    		GeomColor = (vec3(gl_InvocationID + 1) / 6.0 + Color[i]) / 2.0; 
    		EmitVertex();
    	}
    	EndPrimitive();
    }

    which generates the message: (0) fatal error C9999: *** exception during compilation ***

    Actually, I didn't manage to run any gemetry shader code...

    ***Outch***

  2. #22
    Super Moderator Frequent Contributor Groovounet's Avatar
    Join Date
    Jul 2004
    Posts
    935

    Re: NVIDIA releases OpenGL 4.1 drivers

    Shared uniform buffer across a block array isn't supported:
    http://www.opengl.org/discussion_boa...984#Post281984

  3. #23
    Junior Member Newbie
    Join Date
    Oct 2008
    Posts
    26

    Re: NVIDIA releases OpenGL 4.1 drivers

    what hardware and driver version do I need to be able to use the es2 profile extension (http://developer.download.nvidia.com...s2_profile.txt).

    So far, I've tried downloading the latest driver available for my linux laptop (I have a 9400M, when downloading off the nvidia site, it reported 256.53 as the latest driver for that chip) and I'm not seeing the extension reported via glxinfo.

    what hw / driver version do I need?
    thanks

  4. #24
    Junior Member Newbie
    Join Date
    Oct 2008
    Posts
    26

    Re: NVIDIA releases OpenGL 4.1 drivers

    Quote Originally Posted by Tom Flynn
    what hardware and driver version do I need to be able to use the es2 profile extension (http://developer.download.nvidia.com...s2_profile.txt).

    So far, I've tried downloading the latest driver available for my linux laptop (I have a 9400M, when downloading off the nvidia site, it reported 256.53 as the latest driver for that chip) and I'm not seeing the extension reported via glxinfo.

    what hw / driver version do I need?
    thanks
    nevermind, posted too soon. Had to grab the driver from here: http://developer.nvidia.com/object/opengl_driver.html

    with this driver installed, I now see the extension reported on my 9400M. Time to use it ...

  5. #25
    Junior Member Newbie
    Join Date
    Oct 2008
    Posts
    26

    Re: NVIDIA releases OpenGL 4.1 drivers

    Ok, I was able to create an ES2 context. I verified that if I use an OpenGL call not legal in ES2, that I get an OpenGL error (the same call with a GL3 context does not report an error). Good. That solves half the problem. Thank you

    However, it does seem as though getting an ES2 context is not enough to enforce that GLSL compilation is restricted to the GLSL that is valid for ES2. (I was able to use roundEven() and other calls that aren't in the ES2 GLSL spec). Is there a way to enforce restricting the compiler to only compile GLSL that is valid for ES2?

  6. #26
    Senior Member OpenGL Guru
    Join Date
    May 2009
    Posts
    4,948

    Re: NVIDIA releases OpenGL 4.1 drivers

    I was able to use roundEven() and other calls that aren't in the ES2 GLSL spec
    Then that would be a driver bug. The EXT_create_context_ES2_profile extension is very clear on this:

    Quote Originally Posted by The Spec
    2) May an OpenGL ES 2.0 "profile" include OpenGL functionality
    introduced by OpenGL 2.1 and later versions?

    PROPOSED: NO, except in the form of extensions that are themselves
    defined relative to OpenGL ES 2.0. This restriction is intended to
    make it difficult to create ill-defined conglomerations of OpenGL ES
    and OpenGL features and to eliminate subjective interpretations of
    what it means to subset a GL extension for implementation against
    OpenGL ES.

  7. #27
    Member Regular Contributor
    Join Date
    Nov 2003
    Location
    Germany
    Posts
    293

    Re: NVIDIA releases OpenGL 4.1 drivers

    hi,
    are there any news when a new OpenGL 4.1 beta or release driver will be released which addresses some of the more serious reported issues? ([1] gives a nice overview)

    I hit a brick wall on my current project when trying to use viewport arrays due to the missing gl_ViewportIndex variable.

    [1] http://www.g-truc.net/post-0321.html

  8. #28
    Member Regular Contributor
    Join Date
    Nov 2003
    Location
    Germany
    Posts
    293

    Re: NVIDIA releases OpenGL 4.1 drivers

    Quote Originally Posted by Chris Lux
    hi,
    are there any news when a new OpenGL 4.1 beta or release driver will be released which addresses some of the more serious reported issues? ([1] gives a nice overview)

    I hit a brick wall on my current project when trying to use viewport arrays due to the missing gl_ViewportIndex variable.

    [1] http://www.g-truc.net/post-0321.html
    FYI, the latest official beta driver (260.63) exposes OpenGL 4.1 but also has these problems (so it is not really a OpenGL 4.1 driver).

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •