blob: d3956889a7bc6c74024782bae21ce24aa3dbf24a [file] [log] [blame]
Name
AMD_shader_trinary_minmax
Name Strings
GL_AMD_shader_trinary_minmax
Contact
Graham Sellers, AMD (graham.sellers 'at' amd.com)
Status
Shipping
Version
Last Modified Date: 10/01/2012
Author Revision: 2
Number
428
Dependencies
OpenGL 2.0 or ARB_shader_objects is required.
This extension is written against the OpenGL Shading Language
Specification, Version 4.30.
Overview
This extension introduces three new trinary built-in functions to the
OpenGL Shading Languages. These functions allow the minimum, maximum
or median of three inputs to be found with a single function call. These
operations may be useful for sorting and filtering operations, for example.
By explicitly performing a trinary operation with a single built-in
function, shader compilers and optimizers may be able to generate better
instruction sequences for perform sorting and other multi-input functions.
IP Status
None.
New Procedures and Functions
None.
New Tokens
None.
Additions to Chapter 2 of the OpenGL Shading Language (GLSL) Specification,
version 4.30, (Overview of OpenGL Shading)
None.
Additions to Chapter 3 of the OpenGL Shading Language (GLSL) Specification,
version 4.30, (Basics)
None.
Additions to Chapter 4 of the OpenGL Shading Language (GLSL) Specification,
version 4.30, (Variables and Types)
None.
Additions to Chapter 5 of the OpenGL Shading Language (GLSL) Specification,
version 4.30, (Operators and Expressions)
None.
Additions to Chapter 6 of the OpenGL Shading Language (GLSL) Specification,
version 4.30, (Statement Structure)
None.
Additions to Chapter 7 of the OpenGL Shading Language (GLSL) Specification,
version 4.30 (Built-in variables)
None.
Additions to Chapter 8 of the OpenGL Shading Language (GLSL) Specification,
version 4.30 (Built-in functions)
In Section 8.3, "Common Functions", add to the table of functions, p.133:
+---------------------------------------------------+--------------------------------------------------------+
| Syntax | Description |
+---------------------------------------------------+--------------------------------------------------------+
| genType min3(genType x, genType y, genType z) | Returns the per-component minimum value of x, y, and z |
| genIType min3(genIType x, genIType y, genIType z) | Returns the per-component minimum value of x, y, and z |
| genUType min3(genUType x, genUType y, genUType z) | Returns the per-component minimum value of x, y, and z |
+---------------------------------------------------+--------------------------------------------------------+
| genType max3(genType x, genType y, genType z) | Returns the per-component maximum value of x, y, and z |
| genIType max3(genIType x, genIType y, genIType z) | Returns the per-component maximum value of x, y, and z |
| genUType max3(genUType x, genUType y, genUType z) | Returns the per-component maximum value of x, y, and z |
+---------------------------------------------------+--------------------------------------------------------+
| genType mid3(genType x, genType y, genType z) | Returns the per-component median value of x, y, and z |
| genIType mid3(genIType x, genIType y, genIType z) | Returns the per-component median value of x, y, and z |
| genUType mid3(genUType x, genUType y, genUType z) | Returns the per-component median value of x, y, and z |
+---------------------------------------------------+--------------------------------------------------------+
Additions to Chapter 9 of the OpenGL Shading Language (GLSL) Specification,
version 4.30, (Shading Language Grammar)
None.
Additions to the AGL/GLX/WGL Specifications
None.
GLX Protocol
None.
Errors
None.
Issues
1) Should the trinary min and max functions be given new names (min3, max3)
or simply overload the existing min and max functions?
RESOLVED: Use new names.
Revision History
Rev. Date Author Changes
---- -------- -------- -----------------------------------------
2 10/01/2012 gsellers Update to GLSL 4.30. Ready to post.
1 11/01/2012 gsellers Initial Revision