1Name 2 3 GREMEDY_frame_terminator 4 5Name Strings 6 7 GL_GREMEDY_frame_terminator 8 9Contributors 10 11 Yaki Tebeka 12 13Contact 14 15 Yaki Tebeka, Graphic Remedy (yaki 'at' gremedy.com) 16 17Status 18 19 Implemented by gDEBugger (Version 3.2 or later) 20 21Version 22 23 Last Modified Date: September 20, 2007 24 Author Revision: 1.0 25 26Number 27 28 345 29 30Dependencies 31 32 OpenGL 1.0 is required. 33 34 The extension is written against the OpenGL 1.5 Specification. 35 36Overview 37 38 This extension defines a mechanism that enables marking the end 39 of render frames within the OpenGL stream. 40 41 When debugging or profiling an OpenGL application, the debuggers 42 and profilers needs to know when a render frame is ended. This 43 is important for frame per second measurements, statistical analysis, 44 marking and clearing stream loggers logs, performance counters 45 sampling and more. 46 47 When an application uses off screen buffers, the debugger / profiler 48 cannot be guaranteed that the application will call a certain function at 49 the end of each off-screen frame (e.g: SwapBuffers / glClear / etc). 50 This extension enables the application to notify the debugger / profiler 51 whenever a render frame is ended. 52 53 This extension is mainly useful for debuggers and profilers. It is not 54 expected that standard drivers would implement this extension. The main 55 point of having this extension is to allow applications to have a clean 56 way of accessing this functionality only when they are run under the 57 control of a debugger / profiler, without having to recompile or change 58 the application source code. 59 60IP Status 61 62 No known IP claims 63 64Issues 65 66 (1) Should it be legal to call this inside Begin/End? 67 68 RESOLVED: no. 69 70 A render frame cannot end within a Begin/End block. 71 72New Procedures and Functions 73 74 void FrameTerminatorGREMEDY(void); 75 76New Types 77 78 None 79 80New Tokens 81 82 None 83 84Additions to Chapter 2 of the OpenGL 1.5 Specification 85(OpenGL Operation) 86 87 None 88 89Additions to Chapter 3 of the OpenGL 1.5 Specification (Rasterization) 90 91 None 92 93Additions to Chapter 4 of the OpenGL 1.5 Specification (Per-Fragment 94Operations and the Frame Buffer) 95 96 None 97 98Additions to Chapter 5 of the OpenGL 1.5 Specification 99(Special Functions) 100 101 Add section 5.8 on page 212 102 103 5.8 Frame Terminator 104 105 The command 106 107 void FrameTerminatorGREMEDY(void); 108 109 can be used to insert a frame terminator marker into the command stream. 110 This frame terminator marker can be used by appropriate debugging tools / 111 profiling tools / profiling drivers for frame per second measurements, 112 statistical analysis, marking and clearing stream loggers logs, performance 113 counters sampling and more. This command has no influence on the rendered 114 image or the OpenGL state. 115 116 117Additions to Chapter 6 of the OpenGL 1.5 Specification (State and State 118Requests) 119 120 None 121 122Additions to Appendix A of the OpenGL 1.5 Specification (Invariance) 123 124 None 125 126Additions to the AGL/EGL/GLX/WGL Specifications 127 128 None 129 130GLX Protocol 131 132 None 133 134Dependencies on EXT_extension_name 135 136 None 137 138Errors 139 140 The error INVALID_OPERATION is generated if any of the commands 141 defined in this extension is executed between the execution of Begin 142 and the corresponding execution of End. 143 144New State 145 146 None 147 148New Implementation Dependent State 149 150 None 151 152Sample Code 153 154 None 155 156Revision History 157 158 1.0, 09/20/07 yt: - Initial revision 159