[Mesa-dev,v3,1/5] Add MESA_image_sRGB spec.

Submitted by John Kåre Alsaker on April 26, 2014, 2:25 p.m.

Details

Message ID 1398522355-29770-1-git-send-email-john.kare.alsaker@gmail.com
State New
Headers show

Not browsing as part of any series.

Commit Message

John Kåre Alsaker April 26, 2014, 2:25 p.m.
---
 docs/specs/MESA_image_sRGB.spec | 155 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 155 insertions(+)
 create mode 100644 docs/specs/MESA_image_sRGB.spec

Patch hide | download patch | download mbox

diff --git a/docs/specs/MESA_image_sRGB.spec b/docs/specs/MESA_image_sRGB.spec
new file mode 100644
index 0000000..7b29e7e
--- /dev/null
+++ b/docs/specs/MESA_image_sRGB.spec
@@ -0,0 +1,155 @@ 
+Name
+
+    MESA_image_sRGB
+
+Name Strings
+
+    EGL_MESA_image_sRGB
+
+Contact
+
+    John Kåre Alsaker <john.kare.alsaker@gmail.com>
+
+Status
+
+    Complete
+
+Version
+
+    Version 3, March 3, 2013
+
+Number
+
+    EGL Extension #not assigned
+
+Dependencies
+
+    EGL 1.2 or later is required.
+
+    EGL_KHR_image_base is required.
+
+    This extension is written against the wording of the EGL 1.2
+    specification.
+
+Overview
+
+    This extension provides a way for applications to allocate sRGB
+    or linear gamma views for EGLImage sources. This means that
+    sampling from the resulting EGLImage should convert from sRGB's
+    gamma into linear gamma.
+
+IP Status
+
+    Open-source; freely implementable.
+
+New Tokens
+
+    Accepted in the <attrib_list> parameter of eglCreateImageKHR:
+
+        EGL_GAMMA_MESA				0x3290
+
+    Accepted as values for the EGL_GAMMA_MESA attribute:
+
+        EGL_DEFAULT_MESA			0x3291
+
+    Error states:
+
+        EGL_BAD_VIEW_MESA			0x3292
+
+Additions to the EGL 1.2 Specification:
+
+    Add to section 2.5.1 "EGLImage Specification" (as defined by the
+    EGL_KHR_image_base specification), in the description of
+    eglCreateImageKHR:
+
+   "Attributes names accepted in <attrib_list> are shown in Table bbb
+
+      +----------------+-------------------------+------------------+
+      | Attribute      | Description             | Default Value    |
+      +----------------+-------------------------+------------------+
+      | EGL_GAMMA_MESA | Specifies the gamma     | EGL_DEFAULT_MESA |
+      |                | view of the             |                  |
+      |                | EGLImage created.       |                  |
+      +----------------+-------------------------+------------------+
+       Table bbb.  Legal attributes for eglCreateImageKHR
+       <attrib_list> parameter
+
+    ...
+
+    If the value of attribute EGL_GAMMA_MESA is EGL_DEFAULT_MESA (the
+    default), then the gamma view of the resulting EGLImage will be
+    the same as the EGLImage source.
+
+    If the value of attribute EGL_GAMMA_MESA is EGL_COLORSPACE_LINEAR,
+    then the gamma view of the resulting EGLImage will be linear
+    and no gamma conversions will be done when sampling the image
+    in client APIs.
+
+    If the value of attribute EGL_GAMMA_MESA is EGL_COLORSPACE_sRGB,
+    then the gamma view of the resulting EGLImage will be an sRGB
+    view and the red, green and blue color components will be
+    converted from sRGB gamma to linear gamma when sampling the image
+    in client APIs. This conversion should ideally take place before
+    any filtering, but that is not required. The conversion from an
+    sRGB gamma component, cs, to a linear gamma component, cl, is as
+    follows.
+
+            {  cs / 12.92,                 cs <= 0.04045
+       cl = {
+            {  ((cs + 0.055)/1.055)^2.4,   cs >  0.04045
+
+    Assume cs is the sRGB gamma component in the range [0,1]."
+
+    Add to the list of error conditions for eglCreateImageKHR:
+
+      "* If the value specified in <attrib_list> for EGL_GAMMA_MESA
+         is not EGL_DEFAULT_MESA, and the implementation does not
+         support creating the specified gamma view, the error
+         EGL_BAD_VIEW_MESA is generated.
+
+       * If the value specified in <attrib_list> for EGL_GAMMA_MESA
+         is EGL_COLORSPACE_sRGB, and the EGLImage source does not have
+         red, green and blue color components, the error
+         EGL_BAD_VIEW_MESA is generated."
+
+Conformance Tests
+
+    1. Test that specifying EGL_DEFAULT_MESA as EGL_GAMMA_MESA does
+       not affect the creation of EGL images.
+
+    2. Test that specifying an non-gamma EGL attribute as EGL_GAMMA_MESA
+	   results in the error EGL_BAD_VIEW_MESA being generated.
+
+Issues
+
+    1)  Should creating multiple EGLImages from the same source
+        with a different gamma view be allowed?
+
+        RESOLVED: Yes.
+
+        This is so applications can easily switch between using
+        an sRGB and a linear gamma view for a single EGLImage
+        source.
+
+    2)  What reasons may an implementation have for not supporting a
+        texture view?
+
+        RESOLVED: Any reason.
+
+        For example, it may not support an sRGB gamma view for bit-depths
+        other than 32 bpp or the current driver may not support sRGB gamma
+        views at all.
+
+        If no drivers support an sRGB gamma view at all, then this extension
+        should not be exposed.
+
+Revision History
+
+    Version 3, March 3, 2013
+        Added issue 2 and Conformance Tests section (John Kåre Alsaker)
+
+    Version 2, February 23, 2013
+        Changed used tokens (John Kåre Alsaker)
+
+    Version 1, October 9, 2012
+        Initial draft (John Kåre Alsaker)

Comments

I don't have commit access and would like to see this series merged.

On Sat, Apr 26, 2014 at 4:25 PM, John Kåre Alsaker
<john.kare.alsaker@gmail.com> wrote:
> ---
>  docs/specs/MESA_image_sRGB.spec | 155 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 155 insertions(+)
>  create mode 100644 docs/specs/MESA_image_sRGB.spec
>
> diff --git a/docs/specs/MESA_image_sRGB.spec b/docs/specs/MESA_image_sRGB.spec
> new file mode 100644
> index 0000000..7b29e7e
> --- /dev/null
> +++ b/docs/specs/MESA_image_sRGB.spec
> @@ -0,0 +1,155 @@
> +Name
> +
> +    MESA_image_sRGB
> +
> +Name Strings
> +
> +    EGL_MESA_image_sRGB
> +
> +Contact
> +
> +    John Kåre Alsaker <john.kare.alsaker@gmail.com>
> +
> +Status
> +
> +    Complete
> +
> +Version
> +
> +    Version 3, March 3, 2013
> +
> +Number
> +
> +    EGL Extension #not assigned
> +
> +Dependencies
> +
> +    EGL 1.2 or later is required.
> +
> +    EGL_KHR_image_base is required.
> +
> +    This extension is written against the wording of the EGL 1.2
> +    specification.
> +
> +Overview
> +
> +    This extension provides a way for applications to allocate sRGB
> +    or linear gamma views for EGLImage sources. This means that
> +    sampling from the resulting EGLImage should convert from sRGB's
> +    gamma into linear gamma.
> +
> +IP Status
> +
> +    Open-source; freely implementable.
> +
> +New Tokens
> +
> +    Accepted in the <attrib_list> parameter of eglCreateImageKHR:
> +
> +        EGL_GAMMA_MESA                         0x3290
> +
> +    Accepted as values for the EGL_GAMMA_MESA attribute:
> +
> +        EGL_DEFAULT_MESA                       0x3291
> +
> +    Error states:
> +
> +        EGL_BAD_VIEW_MESA                      0x3292
> +
> +Additions to the EGL 1.2 Specification:
> +
> +    Add to section 2.5.1 "EGLImage Specification" (as defined by the
> +    EGL_KHR_image_base specification), in the description of
> +    eglCreateImageKHR:
> +
> +   "Attributes names accepted in <attrib_list> are shown in Table bbb
> +
> +      +----------------+-------------------------+------------------+
> +      | Attribute      | Description             | Default Value    |
> +      +----------------+-------------------------+------------------+
> +      | EGL_GAMMA_MESA | Specifies the gamma     | EGL_DEFAULT_MESA |
> +      |                | view of the             |                  |
> +      |                | EGLImage created.       |                  |
> +      +----------------+-------------------------+------------------+
> +       Table bbb.  Legal attributes for eglCreateImageKHR
> +       <attrib_list> parameter
> +
> +    ...
> +
> +    If the value of attribute EGL_GAMMA_MESA is EGL_DEFAULT_MESA (the
> +    default), then the gamma view of the resulting EGLImage will be
> +    the same as the EGLImage source.
> +
> +    If the value of attribute EGL_GAMMA_MESA is EGL_COLORSPACE_LINEAR,
> +    then the gamma view of the resulting EGLImage will be linear
> +    and no gamma conversions will be done when sampling the image
> +    in client APIs.
> +
> +    If the value of attribute EGL_GAMMA_MESA is EGL_COLORSPACE_sRGB,
> +    then the gamma view of the resulting EGLImage will be an sRGB
> +    view and the red, green and blue color components will be
> +    converted from sRGB gamma to linear gamma when sampling the image
> +    in client APIs. This conversion should ideally take place before
> +    any filtering, but that is not required. The conversion from an
> +    sRGB gamma component, cs, to a linear gamma component, cl, is as
> +    follows.
> +
> +            {  cs / 12.92,                 cs <= 0.04045
> +       cl = {
> +            {  ((cs + 0.055)/1.055)^2.4,   cs >  0.04045
> +
> +    Assume cs is the sRGB gamma component in the range [0,1]."
> +
> +    Add to the list of error conditions for eglCreateImageKHR:
> +
> +      "* If the value specified in <attrib_list> for EGL_GAMMA_MESA
> +         is not EGL_DEFAULT_MESA, and the implementation does not
> +         support creating the specified gamma view, the error
> +         EGL_BAD_VIEW_MESA is generated.
> +
> +       * If the value specified in <attrib_list> for EGL_GAMMA_MESA
> +         is EGL_COLORSPACE_sRGB, and the EGLImage source does not have
> +         red, green and blue color components, the error
> +         EGL_BAD_VIEW_MESA is generated."
> +
> +Conformance Tests
> +
> +    1. Test that specifying EGL_DEFAULT_MESA as EGL_GAMMA_MESA does
> +       not affect the creation of EGL images.
> +
> +    2. Test that specifying an non-gamma EGL attribute as EGL_GAMMA_MESA
> +          results in the error EGL_BAD_VIEW_MESA being generated.
> +
> +Issues
> +
> +    1)  Should creating multiple EGLImages from the same source
> +        with a different gamma view be allowed?
> +
> +        RESOLVED: Yes.
> +
> +        This is so applications can easily switch between using
> +        an sRGB and a linear gamma view for a single EGLImage
> +        source.
> +
> +    2)  What reasons may an implementation have for not supporting a
> +        texture view?
> +
> +        RESOLVED: Any reason.
> +
> +        For example, it may not support an sRGB gamma view for bit-depths
> +        other than 32 bpp or the current driver may not support sRGB gamma
> +        views at all.
> +
> +        If no drivers support an sRGB gamma view at all, then this extension
> +        should not be exposed.
> +
> +Revision History
> +
> +    Version 3, March 3, 2013
> +        Added issue 2 and Conformance Tests section (John Kåre Alsaker)
> +
> +    Version 2, February 23, 2013
> +        Changed used tokens (John Kåre Alsaker)
> +
> +    Version 1, October 9, 2012
> +        Initial draft (John Kåre Alsaker)
> --
> 1.9.2
>