[Mesa-dev] [PATCH v3 1/5] Add MESA_image_sRGB spec.
John Kåre Alsaker
john.kare.alsaker at gmail.com
Sun Apr 27 23:09:54 PDT 2014
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 at 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 at 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
>
More information about the mesa-dev
mailing list