1Name 2 3 NV_coverage_sample_resolve 4 5Name Strings 6 7 EGL_NV_coverage_sample_resolve 8 9Contact 10 11 James Jones, NVIDIA Corporation (jajones 'at' nvidia.com) 12 13Notice 14 15 Copyright NVIDIA Corporation, 2011 16 17Status 18 19 NVIDIA Proprietary 20 21Version 22 23 Last Modified Date: 2011/04/13 24 NVIDIA Revision: 1.0 25 26Number 27 28 EGL Extension #30 29 30Dependencies 31 32 Written based on the wording of the EGL 1.4 specification. 33 34 Trivially interacts with EGL_NV_coverage_sample 35 36 Requires EGL 1.2. 37 38Overview 39 40 NV_coverage_sample introduced a method to improve rendering quality 41 using a separate buffer to store coverage information for pixels in 42 the color buffers. It also provided a mechanism to disable writing 43 to the coverage buffer when coverage sample filtering was not needed 44 or undesirable. However, it did not provide a way to disable 45 reading data from the coverage buffer at resolve time. In some 46 cases performance can be improved by eliminating these memory reads. 47 To that end, this extension exposes a surface attribute that allows 48 applications to specify when no coverage sample resolve is desired. 49 50IP Status 51 52 NVIDIA Proprietary 53 54New Types 55 56 None 57 58New Procedures and Functions 59 60 None 61 62New Tokens 63 64 Accepted by the <attribute> parameter of eglSurfaceAttrib and 65 eglQuerySurface: 66 67 EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 68 69 Accepted by the <value> parameter of eglSurfaceAttrib and returned 70 in the <value> parameter of eglQuerySurface when <attribute> is 71 EGL_COVERAGE_SAMPLE_RESOLVE_NV: 72 73 EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 74 EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 75 76Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and 77Errors) 78 79 Additions to section 3.5.6 (Surface Attributes) 80 81 Replace the last sentence of paragraph 2 (p. 35): 82 83 "Attributes that can be specified are 84 EGL_COVERAGE_SAMPLE_RESOLVE_NV, EGL_MIPMAP_LEVEL, 85 EGL_MULTISAMPLE_RESOLVE, and EGL_SWAP_BEHAVIOR." 86 87 Add the following paragraphs between paragraphs 2 and 3 (p. 35): 88 89 "If <attribute> is EGL_COVERAGE_SAMPLE_RESOLVE_NV, then <value> 90 specifies the filter to use when resolving the coverage sample 91 buffer. A <value> of EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV chooses 92 the default implementation-defined filtering method, while 93 EGL_MULTISAMPLE_RESOLVE_NONE_NV disables filtering based on coverage 94 data. 95 96 "The initial value of EGL_COVERAGE_SAMPLE_RESOLVE_NV is 97 EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV." 98 99 Add the following paragraph after paragraph 13 (p. 36): 100 101 "Querying EGL_COVERAGE_SAMPLE_RESOLVE_NV returns the filtering 102 method used when performing coverage buffer resolution. The filter 103 may be either EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV or 104 EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV, as described above for 105 eglSurfaceAttrib." 106 107Interactions with EGL_NV_coverage_sample: 108 109 This extension relies on language in EGL_NV_coverage_sample to 110 describe the coverage sample buffer. 111 112 If EGL_NV_coverage_sample is not present, this extension has no 113 effect on rendering. 114 115Issues 116 117 1. Should it be an error to set EGL_COVERAGE_SAMPLE_RESOLVE_NV on 118 surfaces that don't have a coverage buffer? 119 120 RESOLVED: No. EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV will behave 121 the same as EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV in this case. 122 123Revision History 124 125#1 (James Jones, 2011-04-13) 126 127 - Initial revision. 128