| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 | 
							- Name
 - 
 -     MESA_shader_debug
 - 
 - Name Strings
 - 
 -     GL_MESA_shader_debug
 - 
 - Contact
 - 
 -     Brian Paul (brian.paul 'at' tungstengraphics.com)
 -     Michal Krol (mjkrol 'at' gmail.com)
 - 
 - Status
 - 
 -     XXX - Not complete yet!!!
 - 
 - Version
 - 
 -     Last Modified Date: July 30, 2006
 -     Author Revision: 0.2
 -     $Date: 2006/07/30 14:28:38 $ $Revision: 1.2 $
 - 
 - Number
 - 
 -     TBD
 - 
 - Dependencies
 - 
 -     OpenGL 1.0 is required.
 - 
 -     The ARB_shader_objects extension is required.
 - 
 -     The ARB_shading_language_100 extension is required.
 - 
 -     The extension is written against the OpenGL 1.5 specification.
 - 
 -     The extension is written against the OpenGL Shading Language 1.10
 -     Specification.
 - 
 - Overview
 - 
 -     This extension introduces a debug object that can be attached to
 -     a program object to enable debugging. Vertex and/or fragment shader,
 -     during execution, issue diagnostic function calls that are logged
 -     to the debug object's log. A separate debug log for each shader type
 -     is maintained. A debug object can be attached, detached and queried
 -     at any time outside the Begin/End pair. Multiple debug objects can
 -     be attached to a single program object.
 - 
 - IP Status
 - 
 -     None
 - 
 - Issues
 - 
 -     None
 - 
 - New Procedures and Functions
 - 
 -     handleARB CreateDebugObjectMESA(void)
 -     void ClearDebugLogMESA(handleARB obj, enum logType, enum shaderType)
 -     void GetDebugLogMESA(handleARB obj, enum logType, enum shaderType,
 -                          sizei maxLength, sizei *length,
 -                          charARB *debugLog)
 -     sizei GetDebugLogLengthMESA(handleARB obj, enum logType,
 -                                 enum shaderType)
 - 
 - New Types
 - 
 -     None
 - 
 - New Tokens
 - 
 -     Returned by the <params> parameter of GetObjectParameter{fi}vARB:
 - 
 -         DEBUG_OBJECT_MESA                               0x8759
 - 
 -     Accepted by the <logType> argument of ClearDebugLogMESA,
 -     GetDebugLogLengthMESA and GetDebugLogMESA:
 - 
 -         DEBUG_PRINT_MESA                                0x875A
 -         DEBUG_ASSERT_MESA                               0x875B
 - 
 - Additions to Chapter 2 of the OpenGL 1.5 Specification
 - (OpenGL Operation)
 - 
 -     None
 - 
 - Additions to Chapter 3 of the OpenGL 1.5 Specification (Rasterization)
 - 
 -     None
 - 
 - Additions to Chapter 4 of the OpenGL 1.5 Specification (Per-Fragment
 - Operations and the Frame Buffer)
 - 
 -     None
 - 
 - Additions to Chapter 5 of the OpenGL 1.5 Specification
 - (Special Functions)
 - 
 -     None
 - 
 - Additions to Chapter 6 of the OpenGL 1.5 Specification (State and State
 - Requests)
 - 
 -     None
 - 
 - Additions to Appendix A of the OpenGL 1.5 Specification (Invariance)
 - 
 -     None
 - 
 - Additions to Chapter 1 of the OpenGL Shading Language 1.10 Specification
 - (Introduction)
 - 
 -     None
 - 
 - Additions to Chapter 2 of the OpenGL Shading Language 1.10 Specification
 - (Overview of OpenGL Shading)
 - 
 -     None
 - 
 - Additions to Chapter 3 of the OpenGL Shading Language 1.10 Specification
 - (Basics)
 - 
 -     None
 - 
 - Additions to Chapter 4 of the OpenGL Shading Language 1.10 Specification
 - (Variables and Types)
 - 
 -     None
 - 
 - Additions to Chapter 5 of the OpenGL Shading Language 1.10 Specification
 - (Operators and Expressions)
 - 
 -     None
 - 
 - Additions to Chapter 6 of the OpenGL Shading Language 1.10 Specification
 - (Statements and Structure)
 - 
 -     None
 - 
 - Additions to Chapter 7 of the OpenGL Shading Language 1.10 Specification
 - (Built-in Variables)
 - 
 -     None
 - 
 - Additions to Chapter 8 of the OpenGL Shading Language 1.10 Specification
 - (Built-in Functions)
 - 
 -     Add a new section 8.10 "Debug Functions":
 - 
 -     Debug functions are available to both fragment and vertex shaders.
 -     They are used to track the execution of a shader by logging
 -     passed-in arguments to the debug object's log. Those values can be
 -     retrieved by the application for inspection after shader execution
 -     is complete.
 - 
 -     The text, if any, produced by any of these functions is appended
 -     to each debug object that is attached to the program object.
 -     There are different debug log types
 - 
 -     Add a new section 8.10.1 "Print Function":
 - 
 -     The following printMESA prototypes are available.
 - 
 -         void printMESA(const float value)
 -         void printMESA(const int value)
 -         void printMESA(const bool value)
 -         void printMESA(const vec2 value)
 -         void printMESA(const vec3 value)
 -         void printMESA(const vec4 value)
 -         void printMESA(const ivec2 value)
 -         void printMESA(const ivec3 value)
 -         void printMESA(const ivec4 value)
 -         void printMESA(const bvec2 value)
 -         void printMESA(const bvec3 value)
 -         void printMESA(const bvec4 value)
 -         void printMESA(const mat2 value)
 -         void printMESA(const mat3 value)
 -         void printMESA(const mat4 value)
 -         void printMESA(const sampler1D value)
 -         void printMESA(const sampler2D value)
 -         void printMESA(const sampler3D value)
 -         void printMESA(const samplerCube value)
 -         void printMESA(const sampler1DShadow value)
 -         void printMESA(const sampler2DShadow value)
 - 
 -     The printMESA function writes the argument <value> to the "debug
 -     print log" (XXX DEBUG_PRINT_MESA?). Each component is written in
 -     text format (XXX format!) and is delimited by a white space (XXX 1
 -     or more?).
 - 
 -     Add a new section 8.10.2 "Assert Function":
 - 
 -     The following assertMESA prototypes are available.
 - 
 -         void assertMESA(const bool condition)
 -         void assertMESA(const bool condition, const int cookie)
 -         void assertMESA(const bool condition, const int cookie,
 -                         const int file, const int line)
 - 
 -     The assertMESA function checks if the argument <condition> is
 -     true or false. If it is true, nothing happens. If it is false,
 -     a diagnostic message is written to the "debug assert log".
 -     The message contains the argument <file>, <line>, <cookie> and
 -     implementation dependent double-quoted string, each of this
 -     delimited by a white space. If the argument <cookie> is not present,
 -     it is meant as if it was of value 0. If the arguments <file> and
 -     <line> are not present, they are meant as if they were of values
 -     __FILE__ and __LINE__, respectively. The following three calls
 -     produce the same output, assuming they were issued from the same
 -     file and line.
 - 
 -         assertMESA (false);
 -         assertMESA (false, 0);
 -         assertMESA (false, 0, __FILE__, __LINE__);
 - 
 -     The diagnostic message examples follow.
 - 
 -         1 89 0 ""
 -         1 45 333 "all (lessThanEqual (fragColor, vec4 (1.0)))"
 -         1 66 1 "assertion failed in file 1, line 66, cookie 1"
 - 
 - Additions to Chapter 9 of the OpenGL Shading Language 1.10 Specification
 - (Shading Language Grammar)
 - 
 -     None
 - 
 - Additions to Chapter 10 of the OpenGL Shading Language 1.10
 - Specification (Issues)
 - 
 -     None
 - 
 - Additions to the AGL/EGL/GLX/WGL Specifications
 - 
 -     None
 - 
 - GLX Protocol
 - 
 -     None
 - 
 - Errors
 - 
 -     TBD
 - 
 - New State
 - 
 -     TBD
 - 
 - New Implementation Dependent State
 - 
 -     TBD
 - 
 - Sample Code
 - 
 -     TBD
 - 
 - Revision History
 - 
 -     29 May 2006
 -         Initial draft. (Michal Krol)
 -     30 July 2006
 -         Add Overview, New Procedures and Functions, New Tokens sections.
 -         Add sections 8.10.1, 8.10.2 to GLSL spec.
 
 
  |