aboutsummaryrefslogtreecommitdiff
path: root/extensions
diff options
context:
space:
mode:
authorGeoff Lang <geofflang@chromium.org>2013-10-16 11:43:23 -0400
committerGeoff Lang <geofflang@chromium.org>2013-10-30 09:50:57 -0400
commit1ec57f80247020c206480b3f6aadea87a52e9d17 (patch)
tree90b7b320673f94e8e84ed5df93e9e7e40be13aae /extensions
parent6b7440ca15e3acd080d52b11f2e084195fa7f9c9 (diff)
downloadangle-1ec57f80247020c206480b3f6aadea87a52e9d17.tar.gz
Add support for GL_EXT_color_buffer_float.
TRAC #23794 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Diffstat (limited to 'extensions')
-rw-r--r--extensions/EXT_color_buffer_float.txt230
1 files changed, 230 insertions, 0 deletions
diff --git a/extensions/EXT_color_buffer_float.txt b/extensions/EXT_color_buffer_float.txt
new file mode 100644
index 00000000..2eb163db
--- /dev/null
+++ b/extensions/EXT_color_buffer_float.txt
@@ -0,0 +1,230 @@
+Name
+
+ EXT_color_buffer_float
+
+Name Strings
+
+ GL_EXT_color_buffer_float
+
+Contributors
+
+ OpenGL ES Working Group members
+
+Contact
+
+ Mark Callow, HI Corp. (callow.mark 'at' artspark.co.jp)
+
+Notice
+
+ ©2012 The Khronos Group Inc.
+
+Status
+
+ Complete
+
+IP Status
+
+ Graphics Properties Holdings (GPH, formerly SGI) owns US Patent
+ #6,650,327, issued November 18, 2003. GPH believes this patent
+ contains necessary IP for graphics systems implementing floating
+ point (FP) rasterization and FP framebuffer capabilities.
+
+ GPH will not grant Khronos royalty-free use of this IP for use
+ in OpenGL ES, but will discuss licensing on RAND terms, on an
+ individual basis with companies wishing to use this IP in the
+ context of conformant OpenGL ES implementations. GPH does not
+ plan to make any special exemption for open source
+ implementations.
+
+ See
+ https://www.khronos.org/files/ip-disclosures/opengl/SGI%20IP%20Disclosure%20Mar05_clean.pdf
+ for the full disclosure.
+
+Version
+
+ Date: January 11th, 2013
+ Revision: 5
+
+Number
+
+ OpenGL ES Extension #137
+
+Dependencies
+
+ Requires OpenGL ES 3.0.
+
+ Written based on the wording of the OpenGL ES 3.0.1 Specification
+ (January 10th, 2013).
+
+Overview
+
+ This extension allows a variety of floating point formats to be
+ rendered to via framebuffer objects.
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ None
+
+Additions to Chapter 3 of the OpenGL ES 3.0 Specification
+(Rasterization)
+
+ 3.8.3 Texture Image Specification, unnumbered subsection "Required
+ Texture Formats", p. 126
+
+ Change the first two bullet items to the following:
+
+ - Texture and renderbuffer color formats (see section 4.4.2).
+ - RGBA32F, RGBA32I, RGBA32UI, RGBA16F, RGBA16I, RGBA16UI,
+ RGBA8, RGBA8I, RGBA8UI, SRGB8_ALPHA8, RGB10_A2, RGB10_-
+ A2UI, RGBA4, and RGB5_A1.
+ - RGB8 and RGB565.
+ - R11F G11F B10F.
+ - RG32F, RG32I, RG32UI, RG16F, RG16I, RG16UI, RG8, RG8I, and
+ RG8UI.
+ - R32F, R32I, R32UI, R16F, R16I, R16UI, R8, R8I, and R8UI.
+
+ - Texture-only color formats:
+ - RGBA8_SNORM.
+ - RGB32F, RGB32I, and RGB32UI.
+ - RGB16F, RGB16I, and RGB16UI.
+ - RGB8_SNORM, RGB8I, RGB8UI, and SRGB8.
+ - RGB9_E5.
+ - RG8_SNORM.
+ - R8_SNORM.
+
+ Table 3.12, p. 128 & 129
+
+ Convert the dash under 'Color-renderable' to a 'check' for the
+ following internal formats: R16F, RG16F, RGBA16F, R32F, RG32F,
+ RGBA32F and R11F_G11F_B10F.
+
+Additions to Chapter 4 of the OpenGL ES 3.0 Specification (Per-Fragment
+Operations and the Framebuffer)
+
+ (changed lines marked with *; added lines marked with +)
+
+ Chapter 4 Introduction, p. 167
+
+ Paragraph 5, sentence 3, p 168, insert "floating point" as shown:
+ "R, G, B, and A components may be represented as unsigned
+ * normalized fixed-point, floating point or signed or unsigned
+ integer values; ..." ^^^^^^^^^^^^^^
+
+ 4.1.7 Blending, p. 174
+
+ Modify paragraphs 3 & 4:
+
+ * "If the color buffer is fixed-point, the components of the
+ source and destination values and blend factors are clamped
+ * to [0; 1] prior to evaluating the blend equation. If the color
+ + buffer is floating-point, no clamping occurs. The resulting four
+ + values are sent to the next operation.
+
+ Blending applies only if the color buffer has a fixed-point or
+ * or floating-point format. If the color buffer has an integer
+ * format, proceed to the next operation. Furthermore, an
+ + INVALID_OPERATION error is generated by DrawArrays and the other
+ + drawing commands defined in section 2.8.3 if blending is enabled
+ + (see below) and any draw buffer has a 32-bit floating-point
+ + format."
+
+ 4.2.3 Clearing the Buffers, p. 183
+
+ Modify second paragraph, inserting "floating point":
+
+ " void ClearColor(float r, float g, float b, float a);
+
+ * sets the clear value for fixed- and floating-point color buffers.
+ ..." ^^^^^^^^^^^^^^^^^^
+
+ 4.3.1 Reading Pixels, p. 186
+
+ In paragraph 4, beginning "Only two combinations of format
+ and type are accepted ...", after the sentence ending "... type
+ UNSIGNED_BYTE is accepted." insert the following sentence:
+ "For floating-point rendering surfaces, the combination
+ format RGBA and type FLOAT is accepted."
+
+ 4.3.1 unnumbered subsection "Obtaining Pixels from the Framebuffer",
+ p. 188
+
+ Modify penultimate paragraph, p189, "If format is an integer ..."
+
+ "If format is an integer format and the color buffer is not an
+ integer format; if the color buffer is an integer format and
+ * format is not an integer format; if format is an integer format
+ * and type is FLOAT, HALF_FLOAT, or UNSIGNED_INT_10F_11F_11F_REV;
+ + or if the color buffer is a floating-point format and type is
+ + not FLOAT, HALF FLOAT, or UNSIGNED_INT_10F_11F_11F_REV, the error
+ INVALID_OPERATION occurs."
+
+ 4.3.1 unnumbered subsection "Conversion of RGBA values", p.190
+
+ Sole paragraph, sentence 3, insert "or floating point" as shown:
+ * "For an integer or floating point color buffer, the elements
+ are unmodified."^^^^^^^^^^^^^^^^^
+
+ 4.3.2 Copying Pixels, p192
+
+ Modify first error condition, at bottom of p193, "The read buffer
+ contains ..." to encompass floating-point buffers.
+
+ * "- The read buffer contains fixed-point or floating-point values
+ * and any draw buffer contains neither fixed-point nor
+ * floating-point values."
+
+ 4.4.2 Attaching Images to Framebuffer Objects, p. 197, unnumbered
+ subsection "Required Renderbuffer Formats", p. 200
+
+ In the last paragraph beginning "Implementations must support
+ creation ...", modify the final phrase to
+
+ * "with the exception of signed and unsigned integer, RGBA16F,
+ + R32F, RG32F and RGBA32F formats.
+
+Additions to Chapter 5 of the OpenGL ES 2.0 Specification (Special Functions)
+
+ None
+
+Additions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State
+Requests)
+
+ 6.1.15 Internal Format Queries, p. 237
+
+ P. 238, paragraph 8 after "Since multisampling is not supported
+ for signed and unsigned integer internal formats, the value of
+ NUM_SAMPLE_COUNTS will be zero for such formats.", insert new
+ one-sentence paragraph:
+
+ "If <internalformat> is RGBA16F, R32F, RG32F, or RGBA32F, the
+ value of NUM_SAMPLE_COUNTS may be zero, or else the maximum
+ value in SAMPLES may be less than the value of MAX_SAMPLES."
+
+New Implementation Dependent State
+
+ None
+
+Issues
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- -------- --------- -----------------------------------------
+ 1 10/16/12 markc Initial version
+ 2 10/18/12 markc Referenced preliminary version of OpenGL
+ ES 3.0.1 specification and updated page
+ numbers.
+ 3 11/21/12 markc Corrected IP status.
+ 4 01/09/13 markc Changed date of referenced OpenGL ES
+ 3.0.1 specification. Made minor language
+ simplification.
+ 5 01/11/13 markc Changed date to release version of
+ OpenGL ES 3.0.1 specification.
+ Clarified change to "Required
+ renderbuffer formats" section.
+
+# vim:ai:ts=4:sts=4:sw=4:expandtab:textwidth=70