15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_conservative_raster_dilate 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_NV_conservative_raster_dilate 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Kedarnath Thangudu, NVIDIA Corporation (kthangudu 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciContributors 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Chris Wyman, NVIDIA Corporation (cwyman 'at' nvidia.com) 165bd8deadSopenharmony_ci Aaron Lefohn, NVIDIA Corporation (alefohn 'at' nvidia.com) 175bd8deadSopenharmony_ci Mark Kilgard, NVIDIA Corporation (mkilgard 'at' nvidia.com) 185bd8deadSopenharmony_ci Eric Werness, NVIDIA Corporation (ewerness 'at' nvidia.com) 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ciStatus 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ci Shipping in Nvidia release 352.XX drivers and up. 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ciVersion 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ci Last Modified Date: September 10, 2015 275bd8deadSopenharmony_ci Revision: 2 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ciNumber 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci OpenGL Extension #480 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ciDependencies 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ci This extension is written against the NV_conservative_raster extension as 365bd8deadSopenharmony_ci applied to OpenGL 4.3 specification (Compatibility Profile) but may be 375bd8deadSopenharmony_ci used with the Core profile or OpenGL ES 2.0 or later. 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ciOverview 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci This extension extends the conservative rasterization functionality 425bd8deadSopenharmony_ci provided by NV_conservative_raster. It provides a new control to generate 435bd8deadSopenharmony_ci an "over-conservative" rasterization by dilating primitives prior to 445bd8deadSopenharmony_ci rasterization. 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci When using conservative raster to bin geometry, this extension provides a 475bd8deadSopenharmony_ci programmable overlap region between adjacent primitives. Regular 485bd8deadSopenharmony_ci rasterization bins triangles with a shared edge uniquely into pixels. 495bd8deadSopenharmony_ci Conservative raster has a one-pixel overlap along the shared edge. Using 505bd8deadSopenharmony_ci a half-pixel raster dilation, this overlap region increases to two pixels. 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ciNew Procedures and Functions 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci void ConservativeRasterParameterfNV(enum pname, float value); 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ciNew Tokens 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci Accepted by the <pname> parameter of ConservativeRasterParameterfNV: 595bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_NV 0x9379 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 625bd8deadSopenharmony_ci GetInteger64v, GetFloatv, and GetDoublev: 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_NV 0x9379 655bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A 665bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ciAdditions to Chapter 14 of the OpenGL 4.3 (Compatibility Profile) Specification 695bd8deadSopenharmony_ci(Fixed-Function Primitive Assembly and Rasterization) 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci Add the following paragraph to the end of the new subsection 14.6.X 725bd8deadSopenharmony_ci "Conservative Rasterization" added by NV_conservative_raster 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci When CONSERVATIVE_RASTERIZATION_NV is enabled, an "over conservative" 755bd8deadSopenharmony_ci rasterization of primitives may be achieved by dilating points, lines, or 765bd8deadSopenharmony_ci polygons in screen space prior to rasterization. The amount of dilation 775bd8deadSopenharmony_ci may be specified by the following command 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci void ConservativeRasterParameterfNV(enum pname, float value); 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci with the <pname> set to CONSERVATIVE_RASTER_DILATE_NV. The <value> 825bd8deadSopenharmony_ci specifies the amount of dilation as a fraction of the pixel size. Not all 835bd8deadSopenharmony_ci fractional values are supported. If the requested value is greater than 845bd8deadSopenharmony_ci the maximum supported value, the maximum supported value is used. If any 855bd8deadSopenharmony_ci other supported value is requested, the nearest supported value which 865bd8deadSopenharmony_ci is greater than the requested value is used. Only a dilation value of 0 875bd8deadSopenharmony_ci pixels is guaranteed to be supported; others depend on the implementation. 885bd8deadSopenharmony_ci Calling Get with CONSERVATIVE_RASTER_DILATE_RANGE_NV returns 895bd8deadSopenharmony_ci two floating point values representing minimum and maximum supported 905bd8deadSopenharmony_ci dilation values. Calling Get with CONSERVATIVE_RASTER_DILATE_- 915bd8deadSopenharmony_ci GRANULARITY_NV returns a single floating point value representing the 925bd8deadSopenharmony_ci value difference between consecutive supported values within the range. 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci None. 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciGLX Protocol 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci None. 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ciModifications to the OpenGL Shading Language Specification, Version 4.30 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci None. 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ciErrors 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci If ConservativeRasterParameteriNV is called and <pname> is not 1095bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_NV the error INVALID_ENUM is generated. 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci If ConservativeRasterParameteriNV is called with <pname> set to 1125bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_NV the error INVALID_VALUE is generated if 1135bd8deadSopenharmony_ci <value> is less than 0. 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ciNew Implementation Dependent State 1165bd8deadSopenharmony_ci Minimum 1175bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. 1185bd8deadSopenharmony_ci --------- ------- ----------- ------- ------------------------------ ------ 1195bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_- 2 x R+ GetFloatv 0, 0.75 Min and Max dilation values 14.6.X 1205bd8deadSopenharmony_ci RANGE_NV supported 1215bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_- R+ GetFloatv 0 Difference between consecutive 14.6.X 1225bd8deadSopenharmony_ci GRANULARITY_NV supported values in the range 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ciNew State 1255bd8deadSopenharmony_ci 1265bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Description Sec. Attribute 1275bd8deadSopenharmony_ci --------- ----------- ---- ------------- ----------- ---- --------- 1285bd8deadSopenharmony_ci CONSERVATIVE_RASTER_DILATE_NV GetFloatv R+ 0 Dilate primitives when 14.6.X - 1295bd8deadSopenharmony_ci conservative rasterization 1305bd8deadSopenharmony_ci is enabled. 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ciNVIDIA Implementation Details 1335bd8deadSopenharmony_ci 1345bd8deadSopenharmony_ci NVIDIA's GeForce 9xx and Quadro Mxxxx series of GPUs (GM20x) and Tegra X1 1355bd8deadSopenharmony_ci support this extension with a granularity of 0.25 and a range of [0, 0.75]. 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ciIssues 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci None. 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ciRevision History 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ci Revision 2 1445bd8deadSopenharmony_ci - Fix the descriptions for the <pname> parameters. 1455bd8deadSopenharmony_ci - Fix typos and wordings. 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci Revision 1 1485bd8deadSopenharmony_ci - Internal revisions. 149