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