aboutsummaryrefslogtreecommitdiff
path: root/mesalib/docs/specs/EXT_shader_integer_mix.spec
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/docs/specs/EXT_shader_integer_mix.spec')
-rw-r--r--mesalib/docs/specs/EXT_shader_integer_mix.spec138
1 files changed, 138 insertions, 0 deletions
diff --git a/mesalib/docs/specs/EXT_shader_integer_mix.spec b/mesalib/docs/specs/EXT_shader_integer_mix.spec
new file mode 100644
index 000000000..92cec64dc
--- /dev/null
+++ b/mesalib/docs/specs/EXT_shader_integer_mix.spec
@@ -0,0 +1,138 @@
+Name
+
+ EXT_shader_integer_mix
+
+Name Strings
+
+ GL_EXT_shader_integer_mix
+
+Contact
+
+ Matt Turner (matt.turner 'at' intel.com)
+
+Contributors
+
+ Matt Turner, Intel
+ Ian Romanick, Intel
+
+Status
+
+ Shipping
+
+Version
+
+ Last Modified Date: 09/12/2013
+ Author Revision: 6
+
+Number
+
+ TBD
+
+Dependencies
+
+ OpenGL 3.0 or OpenGL ES 3.0 is required. This extension interacts with
+ GL_ARB_ES3_compatibility.
+
+ This extension is written against the OpenGL 4.4 (core) specification
+ and the GLSL 4.40 specification.
+
+Overview
+
+ GLSL 1.30 (and GLSL ES 3.00) expanded the mix() built-in function to
+ operate on a boolean third argument that does not interpolate but
+ selects. This extension extends mix() to select between int, uint,
+ and bool components.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ None.
+
+Additions to Chapter 8 of the GLSL 4.40 Specification (Built-in Functions)
+
+ Modify Section 8.3, Common Functions
+
+ Additions to the table listing common built-in functions:
+
+ Syntax Description
+ --------------------------- --------------------------------------------------
+ genIType mix(genIType x, Selects which vector each returned component comes
+ genIType y, from. For a component of a that is false, the
+ genBType a) corresponding component of x is returned. For a
+ genUType mix(genUType x, component of a that is true, the corresponding
+ genUType y, component of y is returned.
+ genBType a)
+ genBType mix(genBType x,
+ genBType y,
+ genBType a)
+
+Additions to the AGL/GLX/WGL Specifications
+
+ None.
+
+Modifications to The OpenGL Shading Language Specification, Version 4.40
+
+ Including the following line in a shader can be used to control the
+ language features described in this extension:
+
+ #extension GL_EXT_shader_integer_mix : <behavior>
+
+ where <behavior> is as specified in section 3.3.
+
+ New preprocessor #defines are added to the OpenGL Shading Language:
+
+ #define GL_EXT_shader_integer_mix 1
+
+Interactions with ARB_ES3_compatibility
+
+ On desktop implementations that support ARB_ES3_compatibility,
+ GL_EXT_shader_integer_mix can be enabled (and the new functions
+ used) in shaders declared with '#version 300 es'.
+
+GLX Protocol
+
+ None.
+
+Errors
+
+ None.
+
+New State
+
+ None.
+
+New Implementation Dependent State
+
+ None.
+
+Issues
+
+ 1) Should we allow linear interpolation of integers via a non-boolean
+ third component?
+
+ RESOLVED: No.
+
+ 2) Should we allow mix() to select between boolean components?
+
+ RESOLVED: Yes. Implementing the same functionality using casts would be
+ possible but ugly.
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- -------- -------- ---------------------------------------------
+ 6 09/12/2013 idr After discussions in Khronos, change vendor
+ prefix to EXT.
+
+ 5 09/09/2013 idr Add ARB_ES3_compatibility interaction.
+
+ 4 09/06/2013 mattst88 Allow extension on OpenGL ES 3.0.
+
+ 3 08/28/2013 mattst88 Add #extension/#define changes.
+
+ 2 08/26/2013 mattst88 Change vendor prefix to MESA. Add mix() that
+ selects between boolean components.
+ 1 08/26/2013 mattst88 Initial revision