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 2 of 2 FirstFirst 12
Results 11 to 20 of 20

Thread: Latest OpenGL AMD/NV driver bugs (with repro code) (part II)

  1. #11
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    941
    Quote Originally Posted by Alfonse Reinheart View Post
    According to section 4.4.4, it is a color-renderable format, and therefore you should not get GL_INVALID_ENUM. What is and is not color-renderable does not change between implementations. That's what the spec says.

    Being color-renderable does not mean that you can stick it in an FBO and have any guarantees of it working.
    Okay, Alfonse, to understand what I mean:
    I didn't say that GL_RGB9_E5 should generate a GL_INVALID_ENUM error, it shouldn't. I'm just saying it's not a required renderable format.
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

  2. #12
    Junior Member Regular Contributor malexander's Avatar
    Join Date
    Aug 2009
    Location
    Ontario
    Posts
    249
    WORKAROUND:

    glBindFramebuffer(GL_FRAMEBUFFER, 0);
    glClearBuffer(GL_COLOR, GL_BACK, color);
    I think a better workaround, that would work on both AMD and Nvidia cards, is:

    Code :
    glBindFramebuffer(GL_FRAMEBUFFER, 0);
    glClearColor(color[0], color[1], color[2], color[3]);
    glClear(GL_COLOR_BUFFER_BIT);

  3. #13
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    941
    Quote Originally Posted by Closed View Post
    1. Program queries, that generates GL_INVALID_ENUM on AMD:

    glGetProgramiv(glProgram, GL_GEOMETRY_INPUT_TYPE, &val);
    glGetProgramiv(glProgram, GL_GEOMETRY_OUTPUT_TYPE, &val);
    glGetProgramiv(glProgram, GL_GEOMETRY_VERTICES_OUT, &val);
    glGetProgramiv(glProgram, GL_GEOMETRY_SHADER_INVOCATIONS, &val);

    // where glProgram is valid GL program object
    It's not enough that you have a valid program, the program has to be linked and must contain a geometry shader, otherwise INVALID_OPERATION is generated.

    Quote Originally Posted by The Spec
    If GEOMETRY_VERTICES_OUT, GEOMETRY_INPUT_TYPE, GEOMETRY_OUTPUT_TYPE, or GEOMETRY_SHADER_INVOCATIONS are queried for a program which has not been linked successfully, or which does not contain objects to form a geometry shader, then an INVALID_OPERATION error is generated.
    Btw, I've checked one of my earlier codes and GL_GEOMETRY_SHADER_INVOCATIONS seem to work properly. Returns invocation count or generates INVALID_OPERATION in case of the condition above.

    Are you sure that the error you've observed was INVALID_ENUM?
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

  4. #14
    Super Moderator Frequent Contributor Groovounet's Avatar
    Join Date
    Jul 2004
    Posts
    936
    My little finger is telling me that internal AMD drivers already have fixes for what you reported

    Keep reporting your bugs because chances are that nobody reported this issue before.

    Here is the best place for that. This effort will straighten the OpenGL community!

    Quote Originally Posted by Closed View Post
    Hi all! There are some latest bugs in AMD/NV OpenGL driver:

    1. Program queries, that generates GL_INVALID_ENUM on AMD:

    glGetProgramiv(glProgram, GL_GEOMETRY_INPUT_TYPE, &val);
    glGetProgramiv(glProgram, GL_GEOMETRY_OUTPUT_TYPE, &val);
    glGetProgramiv(glProgram, GL_GEOMETRY_VERTICES_OUT, &val);
    glGetProgramiv(glProgram, GL_GEOMETRY_SHADER_INVOCATIONS, &val);

    // where glProgram is valid GL program object

    2. Global queries, that generates GL_INVALID_ENUM on AMD:

    glGetIntegerv(GL_MAX_VERTEX_IMAGE_UNIFORMS, &val);
    glGetIntegerv(GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS, &val);
    glGetIntegerv(GL_MAX_TESS_EVALUATION_IMAGE_UNIFORM S, &val);
    glGetIntegerv(GL_MAX_GEOMETRY_IMAGE_UNIFORMS, &val);
    glGetIntegerv(GL_MAX_FRAGMENT_IMAGE_UNIFORMS, &val);
    glGetIntegerv(GL_MAX_COMBINED_IMAGE_UNIFORMS, &val);

    3. Internal format queries, that generates GL_INVALID_ENUM on AMD:

    glGetInternalformativ(any_target, GL_SRGB8, GL_NUM_SAMPLE_COUNTS / GL_SAMPLES, ...);
    glGetInternalformativ(any_target, GL_SRGB8_ALPHA8, GL_NUM_SAMPLE_COUNTS / GL_SAMPLES, ...);
    glGetInternalformativ(any_target, GL_RGB9_E5, GL_NUM_SAMPLE_COUNTS / GL_SAMPLES, ...);

    // NOTE: all this formats are renderable

    4. Very old NV glClearBuffer bug:

    // leads to GL_INVALID_VALUE on NV with message: <drawbuffer> exceeds the maximum number of supported draw buffers

    glBindFramebuffer(GL_FRAMEBUFFER, 0);
    glClearBufferfv(GL_COLOR, GL_BACK, color);

    // WORKAROUND (but out of spec)

    glBindFramebuffer(GL_FRAMEBUFFER, 0);
    glClearBufferfv(GL_COLOR, 0, color);

    P.S. I hate AMD :/ Very slow, very buggy driver...

    P.P.S. to be continued...

  5. #15
    Junior Member Newbie Closed's Avatar
    Join Date
    Sep 2011
    Location
    Moscow
    Posts
    8
    Quote Originally Posted by aqnuep View Post
    It's not enough that you have a valid program, the program has to be linked and must contain a geometry shader...
    Yes of cause, I'm not so stupid

    Quote Originally Posted by aqnuep View Post
    Are you sure that the error you've observed was INVALID_ENUM?
    Yep, I'm sure!
    Last edited by Closed; 07-25-2012 at 10:56 AM.

  6. #16
    Junior Member Newbie Closed's Avatar
    Join Date
    Sep 2011
    Location
    Moscow
    Posts
    8
    Quote Originally Posted by Groovounet View Post
    My little finger is telling me that internal AMD drivers already have fixes for what you reported
    In AMD Catalyst 12.7 beta (OGL version 4.2.11740) this is not fixed, except for GL_GEOMETRY_SHADER_INVOCATIONS (this query is working now, phew)

  7. #17
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    941
    Quote Originally Posted by Closed View Post
    In AMD Catalyst 12.7 beta (OGL version 4.2.11740) this is not fixed, except for GL_GEOMETRY_SHADER_INVOCATIONS (this query is working now, phew)
    Just be patient...
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

  8. #18
    Junior Member Newbie Closed's Avatar
    Join Date
    Sep 2011
    Location
    Moscow
    Posts
    8
    Quote Originally Posted by aqnuep View Post
    Just be patient...
    Standard situation for AMD... all posted bugs are very-very-very old...

  9. #19
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    941
    Quote Originally Posted by Closed View Post
    Standard situation for AMD... all posted bugs are very-very-very old...
    Personally, I've never seen these particular bugs reported by anyone on this forum. Also, I hardly believe you've sent any bug reports to the vendors themselves.
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

  10. #20
    Senior Member OpenGL Guru
    Join Date
    May 2009
    Posts
    4,732
    Standard situation for AMD... all posted bugs are very-very-very old...
    The age of a bug is from the date it's reported, not the date it's been seen. It's simply not reasonable to expect someone to fix a bug that they don't know about.

Posting Permissions

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