102f4aeb0Sopenharmony_ciName
202f4aeb0Sopenharmony_ci
302f4aeb0Sopenharmony_ci    NV_coverage_sample_resolve
402f4aeb0Sopenharmony_ci
502f4aeb0Sopenharmony_ciName Strings
602f4aeb0Sopenharmony_ci
702f4aeb0Sopenharmony_ci    EGL_NV_coverage_sample_resolve
802f4aeb0Sopenharmony_ci
902f4aeb0Sopenharmony_ciContact
1002f4aeb0Sopenharmony_ci
1102f4aeb0Sopenharmony_ci    James Jones, NVIDIA Corporation (jajones 'at' nvidia.com)
1202f4aeb0Sopenharmony_ci
1302f4aeb0Sopenharmony_ciNotice
1402f4aeb0Sopenharmony_ci
1502f4aeb0Sopenharmony_ci    Copyright NVIDIA Corporation, 2011
1602f4aeb0Sopenharmony_ci
1702f4aeb0Sopenharmony_ciStatus
1802f4aeb0Sopenharmony_ci
1902f4aeb0Sopenharmony_ci    NVIDIA Proprietary
2002f4aeb0Sopenharmony_ci
2102f4aeb0Sopenharmony_ciVersion
2202f4aeb0Sopenharmony_ci
2302f4aeb0Sopenharmony_ci    Last Modified Date:  2011/04/13
2402f4aeb0Sopenharmony_ci    NVIDIA Revision: 1.0
2502f4aeb0Sopenharmony_ci
2602f4aeb0Sopenharmony_ciNumber
2702f4aeb0Sopenharmony_ci
2802f4aeb0Sopenharmony_ci    EGL Extension #30
2902f4aeb0Sopenharmony_ci
3002f4aeb0Sopenharmony_ciDependencies
3102f4aeb0Sopenharmony_ci
3202f4aeb0Sopenharmony_ci    Written based on the wording of the EGL 1.4 specification.
3302f4aeb0Sopenharmony_ci
3402f4aeb0Sopenharmony_ci    Trivially interacts with EGL_NV_coverage_sample
3502f4aeb0Sopenharmony_ci
3602f4aeb0Sopenharmony_ci    Requires EGL 1.2.
3702f4aeb0Sopenharmony_ci
3802f4aeb0Sopenharmony_ciOverview
3902f4aeb0Sopenharmony_ci
4002f4aeb0Sopenharmony_ci    NV_coverage_sample introduced a method to improve rendering quality
4102f4aeb0Sopenharmony_ci    using a separate buffer to store coverage information for pixels in
4202f4aeb0Sopenharmony_ci    the color buffers.  It also provided a mechanism to disable writing
4302f4aeb0Sopenharmony_ci    to the coverage buffer when coverage sample filtering was not needed
4402f4aeb0Sopenharmony_ci    or undesirable.  However, it did not provide a way to disable
4502f4aeb0Sopenharmony_ci    reading data from the coverage buffer at resolve time.  In some
4602f4aeb0Sopenharmony_ci    cases performance can be improved by eliminating these memory reads.
4702f4aeb0Sopenharmony_ci    To that end, this extension exposes a surface attribute that allows
4802f4aeb0Sopenharmony_ci    applications to specify when no coverage sample resolve is desired.
4902f4aeb0Sopenharmony_ci
5002f4aeb0Sopenharmony_ciIP Status
5102f4aeb0Sopenharmony_ci
5202f4aeb0Sopenharmony_ci    NVIDIA Proprietary
5302f4aeb0Sopenharmony_ci
5402f4aeb0Sopenharmony_ciNew Types
5502f4aeb0Sopenharmony_ci
5602f4aeb0Sopenharmony_ci    None
5702f4aeb0Sopenharmony_ci
5802f4aeb0Sopenharmony_ciNew Procedures and Functions
5902f4aeb0Sopenharmony_ci
6002f4aeb0Sopenharmony_ci    None
6102f4aeb0Sopenharmony_ci
6202f4aeb0Sopenharmony_ciNew Tokens
6302f4aeb0Sopenharmony_ci
6402f4aeb0Sopenharmony_ci    Accepted by the <attribute> parameter of eglSurfaceAttrib and
6502f4aeb0Sopenharmony_ci    eglQuerySurface:
6602f4aeb0Sopenharmony_ci
6702f4aeb0Sopenharmony_ci        EGL_COVERAGE_SAMPLE_RESOLVE_NV              0x3131
6802f4aeb0Sopenharmony_ci
6902f4aeb0Sopenharmony_ci    Accepted by the <value> parameter of eglSurfaceAttrib and returned
7002f4aeb0Sopenharmony_ci    in the <value> parameter of eglQuerySurface when <attribute> is
7102f4aeb0Sopenharmony_ci    EGL_COVERAGE_SAMPLE_RESOLVE_NV:
7202f4aeb0Sopenharmony_ci
7302f4aeb0Sopenharmony_ci        EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV      0x3132
7402f4aeb0Sopenharmony_ci        EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV         0x3133
7502f4aeb0Sopenharmony_ci
7602f4aeb0Sopenharmony_ciAdditions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and
7702f4aeb0Sopenharmony_ciErrors)
7802f4aeb0Sopenharmony_ci
7902f4aeb0Sopenharmony_ci    Additions to section 3.5.6 (Surface Attributes)
8002f4aeb0Sopenharmony_ci
8102f4aeb0Sopenharmony_ci    Replace the last sentence of paragraph 2 (p. 35):
8202f4aeb0Sopenharmony_ci
8302f4aeb0Sopenharmony_ci    "Attributes that can be specified are
8402f4aeb0Sopenharmony_ci    EGL_COVERAGE_SAMPLE_RESOLVE_NV, EGL_MIPMAP_LEVEL,
8502f4aeb0Sopenharmony_ci    EGL_MULTISAMPLE_RESOLVE, and EGL_SWAP_BEHAVIOR."
8602f4aeb0Sopenharmony_ci
8702f4aeb0Sopenharmony_ci    Add the following paragraphs between paragraphs 2 and 3 (p. 35):
8802f4aeb0Sopenharmony_ci
8902f4aeb0Sopenharmony_ci    "If <attribute> is EGL_COVERAGE_SAMPLE_RESOLVE_NV, then <value>
9002f4aeb0Sopenharmony_ci    specifies the filter to use when resolving the coverage sample
9102f4aeb0Sopenharmony_ci    buffer.  A <value> of EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV chooses
9202f4aeb0Sopenharmony_ci    the default implementation-defined filtering method, while
9302f4aeb0Sopenharmony_ci    EGL_MULTISAMPLE_RESOLVE_NONE_NV disables filtering based on coverage
9402f4aeb0Sopenharmony_ci    data.
9502f4aeb0Sopenharmony_ci
9602f4aeb0Sopenharmony_ci    "The initial value of EGL_COVERAGE_SAMPLE_RESOLVE_NV is
9702f4aeb0Sopenharmony_ci    EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV."
9802f4aeb0Sopenharmony_ci
9902f4aeb0Sopenharmony_ci    Add the following paragraph after paragraph 13 (p. 36):
10002f4aeb0Sopenharmony_ci
10102f4aeb0Sopenharmony_ci    "Querying EGL_COVERAGE_SAMPLE_RESOLVE_NV returns the filtering
10202f4aeb0Sopenharmony_ci    method used when performing coverage buffer resolution.  The filter
10302f4aeb0Sopenharmony_ci    may be either EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV or
10402f4aeb0Sopenharmony_ci    EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV, as described above for
10502f4aeb0Sopenharmony_ci    eglSurfaceAttrib."
10602f4aeb0Sopenharmony_ci
10702f4aeb0Sopenharmony_ciInteractions with EGL_NV_coverage_sample:
10802f4aeb0Sopenharmony_ci
10902f4aeb0Sopenharmony_ci    This extension relies on language in EGL_NV_coverage_sample to
11002f4aeb0Sopenharmony_ci    describe the coverage sample buffer.
11102f4aeb0Sopenharmony_ci
11202f4aeb0Sopenharmony_ci    If EGL_NV_coverage_sample is not present, this extension has no
11302f4aeb0Sopenharmony_ci    effect on rendering.
11402f4aeb0Sopenharmony_ci
11502f4aeb0Sopenharmony_ciIssues
11602f4aeb0Sopenharmony_ci
11702f4aeb0Sopenharmony_ci    1.  Should it be an error to set EGL_COVERAGE_SAMPLE_RESOLVE_NV on
11802f4aeb0Sopenharmony_ci        surfaces that don't have a coverage buffer?
11902f4aeb0Sopenharmony_ci
12002f4aeb0Sopenharmony_ci        RESOLVED:  No.  EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV will behave
12102f4aeb0Sopenharmony_ci        the same as EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV in this case.
12202f4aeb0Sopenharmony_ci
12302f4aeb0Sopenharmony_ciRevision History
12402f4aeb0Sopenharmony_ci
12502f4aeb0Sopenharmony_ci#1  (James Jones, 2011-04-13)
12602f4aeb0Sopenharmony_ci
12702f4aeb0Sopenharmony_ci    - Initial revision.
128