1Name 2 3 NV_conservative_raster_dilate 4 5Name Strings 6 7 GL_NV_conservative_raster_dilate 8 9Contact 10 11 Kedarnath Thangudu, NVIDIA Corporation (kthangudu 'at' nvidia.com) 12 13Contributors 14 15 Chris Wyman, NVIDIA Corporation (cwyman 'at' nvidia.com) 16 Aaron Lefohn, NVIDIA Corporation (alefohn 'at' nvidia.com) 17 Mark Kilgard, NVIDIA Corporation (mkilgard 'at' nvidia.com) 18 Eric Werness, NVIDIA Corporation (ewerness 'at' nvidia.com) 19 20Status 21 22 Shipping in Nvidia release 352.XX drivers and up. 23 24Version 25 26 Last Modified Date: September 10, 2015 27 Revision: 2 28 29Number 30 31 OpenGL Extension #480 32 33Dependencies 34 35 This extension is written against the NV_conservative_raster extension as 36 applied to OpenGL 4.3 specification (Compatibility Profile) but may be 37 used with the Core profile or OpenGL ES 2.0 or later. 38 39Overview 40 41 This extension extends the conservative rasterization functionality 42 provided by NV_conservative_raster. It provides a new control to generate 43 an "over-conservative" rasterization by dilating primitives prior to 44 rasterization. 45 46 When using conservative raster to bin geometry, this extension provides a 47 programmable overlap region between adjacent primitives. Regular 48 rasterization bins triangles with a shared edge uniquely into pixels. 49 Conservative raster has a one-pixel overlap along the shared edge. Using 50 a half-pixel raster dilation, this overlap region increases to two pixels. 51 52New Procedures and Functions 53 54 void ConservativeRasterParameterfNV(enum pname, float value); 55 56New Tokens 57 58 Accepted by the <pname> parameter of ConservativeRasterParameterfNV: 59 CONSERVATIVE_RASTER_DILATE_NV 0x9379 60 61 Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 62 GetInteger64v, GetFloatv, and GetDoublev: 63 64 CONSERVATIVE_RASTER_DILATE_NV 0x9379 65 CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A 66 CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B 67 68Additions to Chapter 14 of the OpenGL 4.3 (Compatibility Profile) Specification 69(Fixed-Function Primitive Assembly and Rasterization) 70 71 Add the following paragraph to the end of the new subsection 14.6.X 72 "Conservative Rasterization" added by NV_conservative_raster 73 74 When CONSERVATIVE_RASTERIZATION_NV is enabled, an "over conservative" 75 rasterization of primitives may be achieved by dilating points, lines, or 76 polygons in screen space prior to rasterization. The amount of dilation 77 may be specified by the following command 78 79 void ConservativeRasterParameterfNV(enum pname, float value); 80 81 with the <pname> set to CONSERVATIVE_RASTER_DILATE_NV. The <value> 82 specifies the amount of dilation as a fraction of the pixel size. Not all 83 fractional values are supported. If the requested value is greater than 84 the maximum supported value, the maximum supported value is used. If any 85 other supported value is requested, the nearest supported value which 86 is greater than the requested value is used. Only a dilation value of 0 87 pixels is guaranteed to be supported; others depend on the implementation. 88 Calling Get with CONSERVATIVE_RASTER_DILATE_RANGE_NV returns 89 two floating point values representing minimum and maximum supported 90 dilation values. Calling Get with CONSERVATIVE_RASTER_DILATE_- 91 GRANULARITY_NV returns a single floating point value representing the 92 value difference between consecutive supported values within the range. 93 94Additions to the AGL/GLX/WGL Specifications 95 96 None. 97 98GLX Protocol 99 100 None. 101 102Modifications to the OpenGL Shading Language Specification, Version 4.30 103 104 None. 105 106Errors 107 108 If ConservativeRasterParameteriNV is called and <pname> is not 109 CONSERVATIVE_RASTER_DILATE_NV the error INVALID_ENUM is generated. 110 111 If ConservativeRasterParameteriNV is called with <pname> set to 112 CONSERVATIVE_RASTER_DILATE_NV the error INVALID_VALUE is generated if 113 <value> is less than 0. 114 115New Implementation Dependent State 116 Minimum 117 Get Value Type Get Command Value Description Sec. 118 --------- ------- ----------- ------- ------------------------------ ------ 119 CONSERVATIVE_RASTER_DILATE_- 2 x R+ GetFloatv 0, 0.75 Min and Max dilation values 14.6.X 120 RANGE_NV supported 121 CONSERVATIVE_RASTER_DILATE_- R+ GetFloatv 0 Difference between consecutive 14.6.X 122 GRANULARITY_NV supported values in the range 123 124New State 125 126 Get Value Get Command Type Initial Value Description Sec. Attribute 127 --------- ----------- ---- ------------- ----------- ---- --------- 128 CONSERVATIVE_RASTER_DILATE_NV GetFloatv R+ 0 Dilate primitives when 14.6.X - 129 conservative rasterization 130 is enabled. 131 132NVIDIA Implementation Details 133 134 NVIDIA's GeForce 9xx and Quadro Mxxxx series of GPUs (GM20x) and Tegra X1 135 support this extension with a granularity of 0.25 and a range of [0, 0.75]. 136 137Issues 138 139 None. 140 141Revision History 142 143 Revision 2 144 - Fix the descriptions for the <pname> parameters. 145 - Fix typos and wordings. 146 147 Revision 1 148 - Internal revisions. 149