Lines Matching full:program
72 representation of a program object. GetProgramBinary allows an
75 offline compiler. The resulting program binary can be reloaded into the
81 shaders and reads back the program binaries. On subsequent runs, only the
82 program binaries need be supplied.
89 program binaries generated online by the GL are interchangeable with those
98 void GetProgramBinary(uint program, sizei bufSize, sizei *length,
101 void ProgramBinary(uint program, enum binaryFormat,
104 void ProgramParameteri(uint program, enum pname, int value);
130 attached to the program. Alternatively, pre-compiled program binary code
131 may be directly loaded into a program object. When a linked program object
136 To set a program object parameter, call
138 void ProgramParameteri(uint program, enum pname, int value)
140 <pname> identifies which parameter to set for <program>. <value> holds the
144 FALSE, and indicates whether a program binary is likely to be retrieved
149 Add section 2.14.3, Program Binaries
153 void GetProgramBinary(uint program, sizei bufSize, sizei *length,
156 returns a binary representation of the program object's compiled and
157 linked executable source, henceforth referred to as its program binary.
159 by <bufSize>. If <bufSize> is less than the number of bytes in the program
165 The number of bytes in the program binary can be queried by calling
166 GetProgramiv with <pname> PROGRAM_BINARY_LENGTH. When a program object's
167 LINK_STATUS is FALSE, its program binary length is zero, and a call
172 void ProgramBinary(uint program, enum binaryFormat,
175 loads a program object with a program binary previously returned from
180 be the length of the program binary as returned by GetProgramBinary or
181 GetProgramiv with <pname> PROGRAM_BINARY_LENGTH. Loading the program
182 binary will fail, setting the LINK_STATUS of <program> to FALSE, if
185 Loading a program binary may also fail if the implementation determines
187 when the program binary was produced such as having been compiled with
190 Language source shaders, and perhaps again retrieve the program binary
193 A program object's program binary is replaced by calls to LinkProgram or
196 LinkProgram and ProgramBinary both set the program object's LINK_STATUS
207 assignments that were in effect when the program was linked before saving
211 information about a previous link or load of that program object is
212 lost. Thus, a failed load does not restore the old state of <program>.
213 The failure does not alter other program state not affected by linking
218 return the number of program binary formats and the list of program binary
222 Any program binary retrieved using GetProgramBinary and submitted using
227 If a GL implementation needs to recompile or otherwise modify program
228 executables based on GL state outside the program, GetProgramBinary is
231 To indicate that a program binary is likely to be retrieved,
236 deferred until after using the program with all non-program state
238 implementations to save additional information in the program binary
239 that would minimize recompilation in future uses of the program binary."
243 Add the following bullet to the state required per program object:
245 * boolean holding the hint to the retrievability of the program binary,
252 Modify section 6.1.16, Shader and Program Objects
257 whether the binary retrieval hint is enabled for <program> is returned.
265 An INVALID_VALUE error is generated if the <program> argument to
267 a program object previously created with CreateProgram.
276 when the program object, <program>, does not contain a valid program
278 enough to contain the entire program binary; or if the value of
283 (table 6.42, Program Object State) add the following:
287 …PROGRAM_BINARY_LENGTH Z+ GetProgramiv 0 Length of program binary …
289 … Z1 GetProgramBinary N/A Binary representation of program 2.14.3
295 …PROGRAM_BINARY_FORMATS 0* x Z GetIntegerv N/A Enumerated program bin…
296 …NUM_PROGRAM_BINARY_FORMATS Z GetIntegerv 0 Number of program bina…
314 // Create new shader/program objects and attach them together.
352 // Retrieve the binary from the program object
359 // Cache the program binary for future runs
383 // Read the program binary
394 // Load the binary into the program object -- no need to link!
404 // Something must have changed since the program binaries
406 // and then retrieve and cache new program binaries once again.
415 RESOLVED: A little. A program binary retrieved with GetProgramBinary
425 that querying the program binary after the full range of state
431 RESOLVED: Shader objects play no part in the specification of program
434 The program binary retrieved by GetProgramBinary is the one installed
441 attached to the program object when ProgramBinary is called?
448 reason is switching back and forth between loading a program object with
449 program binaries, and loading it with compiled GLSL shaders.
454 loading program binaries. A vendor extension must also be present in order
463 needs to retrieve a program binary with an anonymous <binaryFormat> and
464 resupply that same <binaryFormat> when loading the program binary.
468 RESOLVED: Even if a program binary is successfully retrieved with
469 GetProgramBinary and then in a future run the program binary is
471 the program binary load may still fail.
476 associated with the cached program binary, and INVALID_ENUM will be thrown
477 if the cached program binary format is passed into ProgramBinary anyway.
479 Even if the cached program binary format is still valid, ProgramBinary
481 signaling to the app that it needs to recompile and recache its program
486 attribute location used by the program binary?
490 and replaces any program binary loaded prior to LinkProgram. So there is no
491 mechanism to remap an attribute location after loading a program binary.
494 retrieving the program binary. By calling BindAttribLocation followed by
496 followed by a call to GetProgramBinary, the retrieved program binary will
515 specified defaults, or to zero if they aren't specified, when the program
519 9. Should ProgramBinary be expected to load a previously saved program
520 binary even if non-program state has changed enough such that a
525 with the program binary such that if a recompile is necessary it has all
530 indicate to the GL implementation that this program will likely be saved
532 the opportunity to track any state changes made to the program before