Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 5 of 5

Thread: GLIntercept 1.1 - now with ARB_debug_output

  1. #1
    Senior Member OpenGL Pro sqrt[-1]'s Avatar
    Join Date
    Jun 2002
    Location
    Australia
    Posts
    1,006

    Post GLIntercept 1.1 - now with ARB_debug_output

    A new version of GLIntercept has been released:
    http://code.google.com/p/glintercept/

    This includes more bug fixes for using a core OpenGL profile, but mostly adds support for the ARB_debug_output extension.
    See an example and more screen shots here: http://code.google.com/p/glintercept/wiki/Screenshots

    Here are the options for the plugin
    Code :
    //////////////////////////////////////////////////////////////
    // Force setting of debug context via wglCreateContextAttribsARB
    // (ARB_debug_output extension is typically only available in a debug context)
    //////////////////////////////////////////////////////////////
     
    ForceDebugMode = True;
     
    //////////////////////////////////////////////////////////////
    // If debug messages are added to the OpenGL function log
    //////////////////////////////////////////////////////////////
     
    LogToFunctionLog = True;
     
    //////////////////////////////////////////////////////////////
    // If debug messages are added to the error log 
    // (and output window in visual studio)
    //////////////////////////////////////////////////////////////
     
    LogToErrorLog = True;
     
    //////////////////////////////////////////////////////////////
    // If a debugger breakpoint is issued on every debug message
    // when running under a debugger. Stepping through some 
    // assembly (Visual studio - F10) may be necessary to return 
    // to a valid stack frame to see the code causing the message.
    //////////////////////////////////////////////////////////////
     
    BreakOnMessage = False;
     
    //////////////////////////////////////////////////////////////
    // Control of what level of debug messages to log.
    // Options are the same as specified via glDebugMessageControlARB.
    // 
    //  Multiple rules of the syntax:
    //
    //  RuleName = (Source, Type, Severity, Enabled)
    //  {
    //    ids = (a,b,c);
    //  }
    //
    //  Where:
    //   Source is one of ("Dont Care", "OpenGL","Windows","Shader Compiler","Third Party","Application","Other")
    //   Type is one of ("Dont Care", "Error", "Deprecated behavior", "Undefined behavior", "Portability", "Performance", "Message")
    //   Severity is one of ("Dont Care","High","Medium", "Low")
    //   Enabled is "True" or "False"
    //   ids [Optional] is a list of the message ids to change
    //
    // If no rules are specified, the default rules or application
    // setting are used.
    //////////////////////////////////////////////////////////////
     
    MessageControl
    {
      // Enable all messages by default
      AllMessages = ("Dont Care", "Dont Care", "Dont Care", True)
     
      // Example of disabling an OpenGL message number (note the "Don't Care" for severity)
      //DisableRule = ("OpenGL", "Message", "Dont Care", False)
      //{
      //  ids = (131185);
      //}    
     
    }

    You can also hide the ARB_debug_output extension from the application if you want to by also using the extension override settings in the gliConfig.ini file

    Code :
          ExtensionOverride = ("GLExtOverride/GLExtOverride.dll")
          {
            RemoveExtensions = ("GL_ARB_debug_output");
          }

    Let me know if any issues.
    Last edited by sqrt[-1]; 08-04-2012 at 05:41 AM.

  2. #2
    Super Moderator Frequent Contributor Groovounet's Avatar
    Join Date
    Jul 2004
    Posts
    936
    Hi,

    I forgot whether I suggested it already or not but a feature that I would love to see in GLIntercept is an overloaded version of glValidateProgram and glValidateProgramPipeline adding tests preventing "silent errors". For example, checking that the vertex shader input interface matches the vertex array object's vertex format. Typically if the vertex shader declares a vertex input that is not backed by a vertex attribute, the rendering can't possibly be correct.

    I have some code doing some of this in my OpenGL samples. I can send it to you but it remains only a subset of what an overloaded glValidateProgram* function could do. I'll be pleased to provide more code over time.

    I'll try to remember to get back to you on this after Siggraph!

  3. #3
    Senior Member OpenGL Pro sqrt[-1]'s Avatar
    Join Date
    Jun 2002
    Location
    Australia
    Posts
    1,006
    Sure, if you can provide the code I can easily slot it into a plugin.

  4. #4
    Senior Member OpenGL Pro sqrt[-1]'s Avatar
    Join Date
    Jun 2002
    Location
    Australia
    Posts
    1,006
    FYI: I did a presentation at a local game engine meetup on GLIntercept today
    http://www.youtube.com/watch?v=76vf7M88zq0

  5. #5
    Intern Contributor nigels's Avatar
    Join Date
    Apr 2000
    Location
    Texas, USA
    Posts
    85
    Quote Originally Posted by sqrt[-1] View Post
    FYI: I did a presentation at a local game engine meetup on GLIntercept today
    http://www.youtube.com/watch?v=76vf7M88zq0
    Nice video. Thanks for the link.

    - Nigel
    ---
    Regal - as OpenGL ought to be

Posting Permissions

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