blob: febceac7749888b9b7f9336d1a935ca05ae24c8a [file] [log] [blame]
Name
ARB_conditional_render_inverted
Name Strings
GL_ARB_conditional_render_inverted
Contact
Brian Paul, VMware Inc. (brianp 'at' vmware.com)
Contributors
Brian Paul, VMware
Daniel Rakos, AMD
Notice
Copyright (c) 2014 The Khronos Group Inc. Copyright terms at
http://www.khronos.org/registry/speccopyright.html
Specification Update Policy
Khronos-approved extension specifications are updated in response to
issues and bugs prioritized by the Khronos OpenGL Working Group. For
extensions which have been promoted to a core Specification, fixes will
first appear in the latest version of that core Specification, and will
eventually be backported to the extension document. This policy is
described in more detail at
https://www.khronos.org/registry/OpenGL/docs/update_policy.php
Status
Complete.
Approved by the ARB on June 26, 2014.
Ratified by the Khronos Board of Promoters on August 7, 2014.
Version
Date: June 9, 2014
Revision: 5
Number
ARB Extension #161
Dependencies
OpenGL 3.0 is required.
The extension is written against the OpenGL 4.4 Specification, Core
Profile, March 19, 2014.
Overview
This extension adds new modes to BeginConditionalRender which invert
the condition used to determine whether to draw or not.
IP Status
No known IP claims.
New Procedures and Functions
None.
New Tokens
Accepted by the <mode> parameter of BeginConditionalRender:
QUERY_WAIT_INVERTED 0x8E17
QUERY_NO_WAIT_INVERTED 0x8E18
QUERY_BY_REGION_WAIT_INVERTED 0x8E19
QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
Additions to Chapter 10 of the OpenGL 4.4 (Core Profile) Specification (Vertex Specification and Drawing Commands)
Modify Section 10.10, Conditional Rendering
(add before the errors section for BeginConditionalRender on p. 339)
If <mode> is QUERY_WAIT_INVERTED, QUERY_NO_WAIT_INVERTED,
QUERY_BY_REGION_WAIT_INVERTED, or QUERY_BY_REGION_NO_WAIT_INVERTED
then the condition used to determine whether or not to render subsequent
drawing commands is negated with respect to QUERY_WAIT, QUERY_NO_WAIT,
QUERY_BY_REGION_WAIT, or QUERY_BY_REGION_NO_WAIT, respectively. If <mode>
is QUERY_NO_WAIT_INVERTED or QUERY_BY_REGION_NO_WAIT_INVERTED
the GL may choose to unconditionally execute the subsequent rendering
commands without waiting for the query to complete.
Additions to the AGL/EGL/GLX/WGL Specifications
None.
Dependencies
None.
New State
None.
New Implementation Dependent State
None.
Issues
(1) Why is this extension necessary?
RESOLVED: A competing graphics API supports this feature. This
extension will allow one to easier implement that API's features
on top of OpenGL. Also, with the GL_ARB_transform_feedback_overflow_query
extension, it's not obvious whether conditional rendering should
discard drawing if a transform feedback buffer overflow occurs or
doesn't occur. This extension allows both possibilities.
(2) Should there be QUERY_NO_WAIT_INVERTED and
QUERY_BY_REGION_NO_WAIT_INVERTED queries?
RESOLVED: Yes. Suppose we issue a SAMPLES_PASSED query and begin
conditional rendering with QUERY_NO_WAIT_INVERTED. If the query
it not ready yet, the GL might render the subsequent primitives even
if they might have been visible. There may be a non-obvious use for
this.
(3) What gets inverted, the condition or the behavior?
DISCUSSION: For QUERY_WAIT_INVERTED and QUERY_BY_REGION_WAIT_INVERTED
it doesn't really matter, but for the other two modes there are two
possibilities:
(a) Inverted condition, in which case the GL renders subsequent
primitives if the query is not complete yet.
(b) Inverted behavior, in which case the GL discards subsequent
primitives if the query is not complete yet.
RESOLVED: We chose option (a). The condition is inverted.
Revision History
Revision 5, 2014/06/09 (Jon Leech)
- Assign enums per bug 12362
Revision 4, 2014/04/25 (Daniel Rakos)
- Renamed to ARB_conditional_render_inverted.
- Removed suffixes.
- Resolved isues (2) and (3).
Revision 3, 2014/04/16 (Daniel Rakos)
- Renamed extension to EXT_conditional_render_inverted.
- Marked issue (2) unresolved, changed the behavior for incomplete
queries, and added issue (3).
- Clarified language regarding what gets inverted and how issue (2)
affects the behavior.
Revision 2, 2014/04/10 (Brian Paul)
- Added issue (2) to justify QUERY_NO_WAIT_INVERTED_EXT.
Revision 1, 2014/02/03 (Brian Paul)
- Initial revision.