summaryrefslogtreecommitdiffstats
path: root/docs/specs/EXT_shader_integer_mix.spec
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2013-09-12 11:40:00 -0500
committerIan Romanick <[email protected]>2013-09-13 09:56:36 -0500
commitea373f03e8d7783f70c78f700cd80032fd6dc8c4 (patch)
tree4dda0ef09ceae00efe4adf59c0bc2ec538e7aa95 /docs/specs/EXT_shader_integer_mix.spec
parentf4e35f897e148eff3a2fc35fc48150321f8ab177 (diff)
mesa: Rename MESA_shader_integer_mix to EXT_shader_integer_mix
Everyone at the Khronos meeting was as surprised that GLSL didn't already support this as we were. Several vendors said they'd ship it, but there didn't seem to be enough interest to put in the effort to make it ARB or KHR. v2: Fix a couple typos and rename the spec file to EXT_shader_integer_mix.spec. Suggested by Roland. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'docs/specs/EXT_shader_integer_mix.spec')
-rw-r--r--docs/specs/EXT_shader_integer_mix.spec138
1 files changed, 138 insertions, 0 deletions
diff --git a/docs/specs/EXT_shader_integer_mix.spec b/docs/specs/EXT_shader_integer_mix.spec
new file mode 100644
index 00000000000..92cec64dccf
--- /dev/null
+++ b/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