blob: 0d73d0671c1b8c4e1d050f706655f066e9369ae0 [file] [log] [blame]
Name
EXT_draw_transform_feedback
Name Strings
GL_EXT_draw_transform_feedback
Contact
Mark Callow (khronos 'at' callow.im)
Notice
Copyright (c) 2016 The Khronos Group Inc. Copyright terms at
http://www.khronos.org/registry/speccopyright.html
Status
Complete
IP Status
No known IP issues
Version
Date: Oct 14, 2016
Revision: 2
Number
OpenGL ES Extension #272
Dependencies
Requires OpenGL ES 3.2.
Written based on the wording of the OpenGL ES 3.2 specification
(June 15th, 2016).
Overview
This extension adds the DrawTransformFeedback commands. These
were omitted from OpenGL ES 3.0 because the number of vertices
captured by transform feedback could never be different than
the number drawn during capture. The addition of geometry shaders
in OpenGL ES 3.2 broke that assumption but, due to an oversight,
DrawTransformFeedback et al were not reinstated. The
DrawTransformFeedback commands unlock the full potential of
geometry shaders.
Issues
None
New Procedures and Functions
void DrawTransformFeedbackEXT( enum mode, uint id );
void DrawTransformFeedbackInstancedEXT( enum mode, uint id, sizei instancecount );
New Tokens
None
Additions to Chapter 1-11 of the OpenGL ES 3.2 specification
None
Additions to Chapter 12 of the OpenGL 3.2 Specification (Fixed-
Function Vertex Post-Processing)
Add new section 12.1.3 Transform Feedback Draw Operations
When transform feedback is active, the values of output variables
or transformed vertex attributes are captured into the buffer
objects attached to the current transform feedback object.
After transform feedback is complete, subsequent rendering
operations may use the contents of these buffer objects (see
section 6). The number of vertices captured during transform
feedback is stored in the transform feedback object and may be
used in conjunction with the commands
void DrawTransformFeedbackEXT( enum mode, uint id );
void DrawTransformFeedbackInstancedEXT( enum mode, uint id,
sizei instancecount );
to replay the captured vertices.
Calling DrawTransformFeedbackInstancedEXT is equivalent
to calling DrawArraysInstanced with mode as specified, first
set to zero, count set to the number of vertices captured the
last time transform feedback was active on the transform feedback
object named id, and instancecount as specified.
Calling DrawTransformFeedbackEXT is equivalent to calling
DrawTransformFeedbackInstancedEXT with instancecount set to
one.
Note that the vertex count is from the number of vertices
recorded during the transform feedback operation. If no
outputs are recorded, the corresponding vertex count will be
zero.
No error is generated if the transform feedback object named
by id is active; the vertex count used for the rendering operation
is set by the previous EndTransformFeedback command.
Errors
An INVALID_VALUE error is generated if id is not the name of a
transform feedback object.
An INVALID_VALUE error is generated if instancecount is negative.
An INVALID_OPERATION error is generated if EndTransformFeedback
has never been called while the object named by id was bound.
Additions to Chapters 13-21 of the OpenGL 3.2 Specification
None
Additions to the EGL/AGL/GLX/WGL Specifications
None
GLX Protocol
n/a
New State
None
Revision History
Rev. Date Author Changes
---- -------- --------- -----------------------------------------
0 09/14/16 markc Initial draft.
1 09/27/16 markc Add suffices. Remove vestiges of
"stream". Change overview to plural.
2 10/14/16 markc Change to EXT.
# vim:ai:ts=4:sts=4:sw=4:expandtab:textwidth=70