• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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