1/*
2 * Copyright (c) 2020 h1k421
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in all
12 * copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE.
21 */
22
23// NVN types reconstructed from Darksiders II DWARF information.
24// NOTE: This only includes enums and structs used for NVN 53.105 but might contain more elements
25// than expected (as Darksiders II uses a newer version of NVN).
26// TODO: Include the extra information from the version used on Darksiders II for completeness.
27
28#pragma once
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34#include <stddef.h>
35#include <stdint.h>
36
37typedef uint8_t NVNboolean;
38typedef uint64_t NVNtextureHandle;
39typedef uint64_t NVNimageHandle;
40typedef uint64_t NVNcommandHandle;
41typedef uint64_t NVNbufferAddress;
42typedef uint64_t NVNtextureAddress;
43typedef int NVNdebugDomainId;
44typedef int NVNstorageClass;
45typedef void* NVNsubroutineLinkageMapPtr;
46typedef void* NVNnativeWindow;
47
48typedef struct {
49 char reserved[0x3000];
50} NVNdevice;
51
52typedef struct {
53 char reserved[0x40];
54} NVNdeviceBuilder;
55
56typedef struct {
57 // TODO: reverse and define this as it looks like it's not an opaque type.
58 char dummy[1];
59} NVNtextureSparseTileLayout;
60
61typedef struct {
62 // TODO: reverse and define this as it looks like it's not an opaque type.
63 char dummy[1];
64} NVNdrawTextureRegion;
65
66typedef struct {
67 char reserved[0x18];
68} NVNmultisampleState;
69
70typedef struct {
71 char reserved[0x8];
72} NVNdepthStencilState;
73
74typedef struct {
75 char reserved[0x4];
76} NVNchannelMaskState;
77
78typedef struct {
79 char reserved[0x4];
80} NVNpolygonState;
81
82typedef struct {
83 NVNbufferAddress address;
84 uint64_t size;
85} NVNbufferRange;
86
87typedef struct {
88 unsigned char reserved[4];
89} NVNcolorState;
90
91typedef struct {
92 uint64_t counter;
93 uint64_t timestamp;
94} NVNcounterData;
95
96typedef struct {
97 uint64_t value;
98} NVNseparateTextureHandle;
99
100typedef struct {
101 uint64_t value;
102} NVNseparateSamplerHandle;
103
104typedef struct {
105 char reserved[0x2000];
106} NVNqueue;
107
108typedef struct {
109 // TODO: reverse and define this as it looks like it's not an opaque type.
110 char dummy[1];
111} NVNqueueErrorInfo;
112
113typedef struct {
114 char reserved[0x40];
115} NVNqueueBuilder;
116
117typedef struct {
118 char reserved[384];
119} NVNwindow;
120
121typedef struct {
122 char reserved[0xC0];
123} NVNtexture;
124
125typedef struct {
126 char reserved[0x28];
127} NVNtextureView;
128
129typedef struct {
130 char reserved[0xA0];
131} NVNcommandBuffer;
132
133typedef struct {
134 char reserved[0x40];
135} NVNsync;
136
137typedef struct {
138 int x;
139 int y;
140 int width;
141 int height;
142} NVNrectangle;
143
144typedef struct {
145 char reserved[0xC0];
146} NVNprogram;
147
148typedef struct {
149 NVNbufferAddress data;
150 const void* control;
151} NVNshaderData;
152
153typedef struct {
154 char reserved[0x100];
155} NVNmemoryPool;
156
157typedef struct {
158 char reserved[0x20];
159} NVNtexturePool;
160
161typedef struct {
162 char reserved[0x20];
163} NVNsamplerPool;
164
165typedef struct {
166 char reserved[0x8];
167} NVNblendState;
168
169typedef struct {
170 char reserved[0x4];
171} NVNvertexAttribState;
172
173typedef struct {
174 char reserved[0x8];
175} NVNvertexStreamState;
176
177typedef struct {
178 char reserved[0x40];
179} NVNmemoryPoolBuilder;
180
181typedef struct {
182 // TODO: reverse and define this as it looks like it's not an opaque type.
183 char dummy[1];
184} NVNmappingRequest;
185
186typedef struct {
187 char reserved[0x60];
188} NVNsamplerBuilder;
189
190typedef struct {
191 char reserved[0x30];
192} NVNsampler;
193
194typedef struct {
195 char reserved[0x40];
196} NVNbufferBuilder;
197
198typedef struct {
199 char reserved[0x30];
200} NVNbuffer;
201
202typedef struct {
203 char reserved[0x40];
204} NVNevent;
205
206typedef struct {
207 char reserved[0x20];
208} NVNeventBuilder;
209
210typedef struct {
211 int xoffset;
212 int yoffset;
213 int zoffset;
214 int width;
215 int height;
216 int depth;
217} NVNcopyRegion;
218
219typedef struct {
220 char reserved[0x40];
221} NVNwindowBuilder;
222
223typedef struct {
224 char reserved[0x80];
225} NVNtextureBuilder;
226
227typedef struct {
228 unsigned char layout[8];
229} NVNpackagedTextureLayout;
230
231typedef enum {
232 NVN_DEVICE_INFO_API_MAJOR_VERSION = 0x0,
233 NVN_DEVICE_INFO_API_MINOR_VERSION = 0x1,
234 NVN_DEVICE_INFO_UNIFORM_BUFFER_BINDINGS_PER_STAGE = 0x2,
235 NVN_DEVICE_INFO_MAX_UNIFORM_BUFFER_SIZE = 0x3,
236 NVN_DEVICE_INFO_UNIFORM_BUFFER_ALIGNMENT = 0x4,
237 NVN_DEVICE_INFO_COLOR_BUFFER_BINDINGS = 0x5,
238 NVN_DEVICE_INFO_VERTEX_BUFFER_BINDINGS = 0x6,
239 NVN_DEVICE_INFO_TRANSFORM_FEEDBACK_BUFFER_BINDINGS = 0x7,
240 NVN_DEVICE_INFO_SHADER_STORAGE_BUFFER_BINDINGS_PER_STAGE = 0x8,
241 NVN_DEVICE_INFO_TEXTURE_BINDINGS_PER_STAGE = 0x9,
242 NVN_DEVICE_INFO_COUNTER_ALIGNMENT = 0xA,
243 NVN_DEVICE_INFO_TRANSFORM_FEEDBACK_BUFFER_ALIGNMENT = 0xB,
244 NVN_DEVICE_INFO_TRANSFORM_FEEDBACK_CONTROL_ALIGNMENT = 0xC,
245 NVN_DEVICE_INFO_INDIRECT_DRAW_ALIGNMENT = 0xD,
246 NVN_DEVICE_INFO_VERTEX_ATTRIBUTES = 0xE,
247 NVN_DEVICE_INFO_TEXTURE_DESCRIPTOR_SIZE = 0xF,
248 NVN_DEVICE_INFO_SAMPLER_DESCRIPTOR_SIZE = 0x10,
249 NVN_DEVICE_INFO_RESERVED_TEXTURE_DESCRIPTORS = 0x11,
250 NVN_DEVICE_INFO_RESERVED_SAMPLER_DESCRIPTORS = 0x12,
251 NVN_DEVICE_INFO_COMMAND_BUFFER_COMMAND_ALIGNMENT = 0x13,
252 NVN_DEVICE_INFO_COMMAND_BUFFER_CONTROL_ALIGNMENT = 0x14,
253 NVN_DEVICE_INFO_COMMAND_BUFFER_MIN_COMMAND_SIZE = 0x15,
254 NVN_DEVICE_INFO_COMMAND_BUFFER_MIN_CONTROL_SIZE = 0x16,
255 NVN_DEVICE_INFO_SHADER_SCRATCH_MEMORY_SCALE_FACTOR_MINIMUM = 0x17,
256 NVN_DEVICE_INFO_SHADER_SCRATCH_MEMORY_SCALE_FACTOR_RECOMMENDED = 0x18,
257 NVN_DEVICE_INFO_SHADER_SCRATCH_MEMORY_ALIGNMENT = 0x19,
258 NVN_DEVICE_INFO_SHADER_SCRATCH_MEMORY_GRANULARITY = 0x1A,
259 NVN_DEVICE_INFO_MAX_TEXTURE_ANISOTROPY = 0x1B,
260 NVN_DEVICE_INFO_MAX_COMPUTE_WORK_GROUP_SIZE_X = 0x1C,
261 NVN_DEVICE_INFO_MAX_COMPUTE_WORK_GROUP_SIZE_Y = 0x1D,
262 NVN_DEVICE_INFO_MAX_COMPUTE_WORK_GROUP_SIZE_Z = 0x1E,
263 NVN_DEVICE_INFO_MAX_COMPUTE_WORK_GROUP_SIZE_THREADS = 0x1F,
264 NVN_DEVICE_INFO_MAX_COMPUTE_DISPATCH_WORK_GROUPS_X = 0x20,
265 NVN_DEVICE_INFO_MAX_COMPUTE_DISPATCH_WORK_GROUPS_Y = 0x21,
266 NVN_DEVICE_INFO_MAX_COMPUTE_DISPATCH_WORK_GROUPS_Z = 0x22,
267 NVN_DEVICE_INFO_IMAGE_BINDINGS_PER_STAGE = 0x23,
268 NVN_DEVICE_INFO_MAX_TEXTURE_POOL_SIZE = 0x24,
269 NVN_DEVICE_INFO_MAX_SAMPLER_POOL_SIZE = 0x25,
270 NVN_DEVICE_INFO_MAX_VIEWPORTS = 0x26,
271 NVN_DEVICE_INFO_MEMPOOL_TEXTURE_OBJECT_PAGE_ALIGNMENT = 0x27,
272 NVN_DEVICE_INFO_SUPPORTS_MIN_MAX_FILTERING = 0x28,
273 NVN_DEVICE_INFO_SUPPORTS_STENCIL8_FORMAT = 0x29,
274 NVN_DEVICE_INFO_SUPPORTS_ASTC_FORMATS = 0x2A,
275 NVN_DEVICE_INFO_L2_SIZE = 0x2B,
276 NVN_DEVICE_INFO_MAX_TEXTURE_LEVELS = 0x2C,
277 NVN_DEVICE_INFO_MAX_TEXTURE_LAYERS = 0x2D,
278 NVN_DEVICE_INFO_GLSLC_MAX_SUPPORTED_GPU_CODE_MAJOR_VERSION = 0x2E,
279 NVN_DEVICE_INFO_GLSLC_MIN_SUPPORTED_GPU_CODE_MAJOR_VERSION = 0x2F,
280 NVN_DEVICE_INFO_GLSLC_MAX_SUPPORTED_GPU_CODE_MINOR_VERSION = 0x30,
281 NVN_DEVICE_INFO_GLSLC_MIN_SUPPORTED_GPU_CODE_MINOR_VERSION = 0x31,
282 NVN_DEVICE_INFO_SUPPORTS_CONSERVATIVE_RASTER = 0x32,
283 NVN_DEVICE_INFO_SUBPIXEL_BITS = 0x33,
284 NVN_DEVICE_INFO_MAX_SUBPIXEL_BIAS_BITS = 0x34,
285 NVN_DEVICE_INFO_INDIRECT_DISPATCH_ALIGNMENT = 0x35,
286 NVN_DEVICE_INFO_ZCULL_SAVE_RESTORE_ALIGNMENT = 0x36,
287 NVN_DEVICE_INFO_SHADER_SCRATCH_MEMORY_COMPUTE_SCALE_FACTOR_MINIMUM = 0x37,
288 NVN_DEVICE_INFO_LINEAR_TEXTURE_STRIDE_ALIGNMENT = 0x38,
289 NVN_DEVICE_INFO_LINEAR_RENDER_TARGET_STRIDE_ALIGNMENT = 0x39,
290 NVN_DEVICE_INFO_MEMORY_POOL_PAGE_SIZE = 0x3A,
291 NVN_DEVICE_INFO_SUPPORTS_ZERO_FROM_UNMAPPED_VIRTUAL_POOL_PAGES = 0x3B,
292 NVN_DEVICE_INFO_UNIFORM_BUFFER_UPDATE_ALIGNMENT = 0x3C,
293 NVN_DEVICE_INFO_MAX_TEXTURE_SIZE = 0x3D,
294 NVN_DEVICE_INFO_MAX_BUFFER_TEXTURE_SIZE = 0x3E,
295 NVN_DEVICE_INFO_MAX_3D_TEXTURE_SIZE = 0x3F,
296 NVN_DEVICE_INFO_MAX_CUBE_MAP_TEXTURE_SIZE = 0x40,
297 NVN_DEVICE_INFO_MAX_RECTANGLE_TEXTURE_SIZE = 0x41,
298 NVN_DEVICE_INFO_SUPPORTS_PASSTHROUGH_GEOMETRY_SHADERS = 0x42,
299 NVN_DEVICE_INFO_SUPPORTS_VIEWPORT_SWIZZLE = 0x43,
300 NVN_DEVICE_INFO_SUPPORTS_SPARSE_TILED_PACKAGED_TEXTURES = 0x44,
301 NVN_DEVICE_INFO_SUPPORTS_ADVANCED_BLEND_MODES = 0x45,
302 NVN_DEVICE_INFO_MAX_PRESENT_INTERVAL = 0x46,
303 NVN_DEVICE_INFO_SUPPORTS_DRAW_TEXTURE = 0x47,
304 NVN_DEVICE_INFO_SUPPORTS_TARGET_INDEPENDENT_RASTERIZATION = 0x48,
305 NVN_DEVICE_INFO_SUPPORTS_FRAGMENT_COVERAGE_TO_COLOR = 0x49,
306 NVN_DEVICE_INFO_SUPPORTS_POST_DEPTH_COVERAGE = 0x4A,
307 NVN_DEVICE_INFO_SUPPORTS_IMAGES_USING_TEXTURE_HANDLES = 0x4B,
308 NVN_DEVICE_INFO_SUPPORTS_SAMPLE_LOCATIONS = 0x4C,
309 NVN_DEVICE_INFO_MAX_SAMPLE_LOCATION_TABLE_ENTRIES = 0x4D,
310 NVN_DEVICE_INFO_SHADER_CODE_MEMORY_POOL_PADDING_SIZE = 0x4E,
311 NVN_DEVICE_INFO_MAX_PATCH_SIZE = 0x4F,
312 NVN_DEVICE_INFO_QUEUE_COMMAND_MEMORY_GRANULARITY = 0x50,
313 NVN_DEVICE_INFO_QUEUE_COMMAND_MEMORY_MIN_SIZE = 0x51,
314 NVN_DEVICE_INFO_QUEUE_COMMAND_MEMORY_DEFAULT_SIZE = 0x52,
315 NVN_DEVICE_INFO_QUEUE_COMPUTE_MEMORY_GRANULARITY = 0x53,
316 NVN_DEVICE_INFO_QUEUE_COMPUTE_MEMORY_MIN_SIZE = 0x54,
317 NVN_DEVICE_INFO_QUEUE_COMPUTE_MEMORY_DEFAULT_SIZE = 0x55,
318 NVN_DEVICE_INFO_QUEUE_COMMAND_MEMORY_MIN_FLUSH_THRESHOLD = 0x56,
319 NVN_DEVICE_INFO_SUPPORTS_FRAGMENT_SHADER_INTERLOCK = 0x57,
320 NVN_DEVICE_INFO_MAX_TEXTURES_PER_WINDOW = 0x58,
321 NVN_DEVICE_INFO_MIN_TEXTURES_PER_WINDOW = 0x59,
322 NVN_DEVICE_INFO_SUPPORTS_DEBUG_LAYER = 0x5A,
323 NVN_DEVICE_INFO_QUEUE_CONTROL_MEMORY_MIN_SIZE = 0x5B,
324 NVN_DEVICE_INFO_QUEUE_CONTROL_MEMORY_DEFAULT_SIZE = 0x5C,
325 NVN_DEVICE_INFO_QUEUE_CONTROL_MEMORY_GRANULARITY = 0x5D,
326 NVN_DEVICE_INFO_SEPARATE_TEXTURE_BINDINGS_PER_STAGE = 0x5E,
327 NVN_DEVICE_INFO_SEPARATE_SAMPLER_BINDINGS_PER_STAGE = 0x5F,
328 NVN_DEVICE_INFO_DEBUG_GROUPS_MAX_DOMAIN_ID = 0x60,
329 NVN_DEVICE_INFO_EVENTS_SUPPORT_REDUCTION_OPERATIONS = 0x61,
330
331 NVN_DEVICE_INFO_LARGE = 0x7FFFFFFF
332} NVNdeviceInfo;
333
334typedef enum {
335 NVN_DEVICE_FLAG_DEBUG_ENABLE = 0x1,
336 NVN_DEVICE_FLAG_DEBUG_SKIP_CALLS_ON_ERROR = 0x2,
337 NVN_DEVICE_FLAG_DEBUG_DRAW_VALIDATION = 0x4,
338 NVN_DEVICE_FLAG_DEFERRED_FINALIZE = 0x8,
339 NVN_DEVICE_FLAG_DEBUG_DRAW_VALIDATION_HEAVY = 0x10,
340 NVN_DEVICE_FLAG_DEBUG_ENABLE_LEVEL_0 = 0x20,
341 NVN_DEVICE_FLAG_DEBUG_ENABLE_LEVEL_1 = 0x40,
342 NVN_DEVICE_FLAG_DEBUG_ENABLE_LEVEL_2 = 0x1,
343 NVN_DEVICE_FLAG_DEBUG_ENABLE_LEVEL_3 = 0x4,
344 NVN_DEVICE_FLAG_DEBUG_ENABLE_LEVEL_4 = 0x10,
345 NVN_DEVICE_FLAG_DEFERRED_FIRMWARE_MEMORY_RECLAIM = 0x80,
346 NVN_DEVICE_FLAG_ENABLE_SEPARATE_SAMPLER_TEXTURE_SUPPORT = 0x100,
347
348 NVN_DEVICE_FLAG_LARGE = 0x7FFFFFFF
349} NVNdeviceFlagBits;
350
351enum NVNclearColorMask {
352 NVN_CLEAR_COLOR_MASK_R_BIT = 0x1,
353 NVN_CLEAR_COLOR_MASK_G_BIT = 0x2,
354 NVN_CLEAR_COLOR_MASK_B_BIT = 0x4,
355 NVN_CLEAR_COLOR_MASK_A_BIT = 0x8,
356 NVN_CLEAR_COLOR_MASK_RGBA = 0xF,
357 NVN_CLEAR_COLOR_MASK_LARGE = 0x7FFFFFFF
358};
359
360typedef enum {
361 NVN_DEBUG_CALLBACK_SOURCE_API = 0x0,
362
363 NVN_DEBUG_CALLBACK_SOURCE_LARGE = 0x7FFFFFFF
364} NVNdebugCallbackSource;
365
366typedef enum {
367 NVN_DEBUG_CALLBACK_TYPE_API_ERROR = 0x0,
368 NVN_DEBUG_CALLBACK_TYPE_API_WARNING = 0x1,
369
370 NVN_DEBUG_CALLBACK_TYPE_LARGE = 0x7FFFFFFF
371} NVNdebugCallbackType;
372
373typedef enum {
374 NVN_DEBUG_CALLBACK_SEVERITY_HIGH = 0x0,
375 NVN_DEBUG_CALLBACK_SEVERITY_MEDIUM = 0x1,
376 NVN_DEBUG_CALLBACK_SEVERITY_LOW = 0x2,
377 NVN_DEBUG_CALLBACK_SEVERITY_NOTIFICATION = 0x3,
378
379 NVN_DEBUG_CALLBACK_SEVERITY_LARGE = 0x7FFFFFFF
380} NVNdebugCallbackSeverity;
381
382typedef enum {
383 NVN_WINDOW_ORIGIN_MODE_LOWER_LEFT = 0x0,
384 NVN_WINDOW_ORIGIN_MODE_UPPER_LEFT = 0x1,
385
386 NVN_WINDOW_ORIGIN_MODE_LARGE = 0x7FFFFFFF
387} NVNwindowOriginMode;
388
389typedef enum {
390 NVN_DEPTH_MODE_NEAR_IS_MINUS_W = 0x0,
391 NVN_DEPTH_MODE_NEAR_IS_ZERO = 0x1,
392
393 NVN_DEPTH_MODE_LARGE = 0x7FFFFFFF
394} NVNdepthMode;
395
396typedef enum {
397 NVN_FORMAT_NONE = 0x0,
398 NVN_FORMAT_R8 = 0x1,
399 NVN_FORMAT_R8SN = 0x2,
400 NVN_FORMAT_R8UI = 0x3,
401 NVN_FORMAT_R8I = 0x4,
402 NVN_FORMAT_R16F = 0x5,
403 NVN_FORMAT_R16 = 0x6,
404 NVN_FORMAT_R16SN = 0x7,
405 NVN_FORMAT_R16UI = 0x8,
406 NVN_FORMAT_R16I = 0x9,
407 NVN_FORMAT_R32F = 0xA,
408 NVN_FORMAT_R32UI = 0xB,
409 NVN_FORMAT_R32I = 0xC,
410 NVN_FORMAT_RG8 = 0xD,
411 NVN_FORMAT_RG8SN = 0xE,
412 NVN_FORMAT_RG8UI = 0xF,
413 NVN_FORMAT_RG8I = 0x10,
414 NVN_FORMAT_RG16F = 0x11,
415 NVN_FORMAT_RG16 = 0x12,
416 NVN_FORMAT_RG16SN = 0x13,
417 NVN_FORMAT_RG16UI = 0x14,
418 NVN_FORMAT_RG16I = 0x15,
419 NVN_FORMAT_RG32F = 0x16,
420 NVN_FORMAT_RG32UI = 0x17,
421 NVN_FORMAT_RG32I = 0x18,
422 NVN_FORMAT_RGB8 = 0x19,
423 NVN_FORMAT_RGB8SN = 0x1A,
424 NVN_FORMAT_RGB8UI = 0x1B,
425 NVN_FORMAT_RGB8I = 0x1C,
426 NVN_FORMAT_RGB16F = 0x1D,
427 NVN_FORMAT_RGB16 = 0x1E,
428 NVN_FORMAT_RGB16SN = 0x1F,
429 NVN_FORMAT_RGB16UI = 0x20,
430 NVN_FORMAT_RGB16I = 0x21,
431 NVN_FORMAT_RGB32F = 0x22,
432 NVN_FORMAT_RGB32UI = 0x23,
433 NVN_FORMAT_RGB32I = 0x24,
434 NVN_FORMAT_RGBA8 = 0x25,
435 NVN_FORMAT_RGBA8SN = 0x26,
436 NVN_FORMAT_RGBA8UI = 0x27,
437 NVN_FORMAT_RGBA8I = 0x28,
438 NVN_FORMAT_RGBA16F = 0x29,
439 NVN_FORMAT_RGBA16 = 0x2A,
440 NVN_FORMAT_RGBA16SN = 0x2B,
441 NVN_FORMAT_RGBA16UI = 0x2C,
442 NVN_FORMAT_RGBA16I = 0x2D,
443 NVN_FORMAT_RGBA32F = 0x2E,
444 NVN_FORMAT_RGBA32UI = 0x2F,
445 NVN_FORMAT_RGBA32I = 0x30,
446 NVN_FORMAT_STENCIL8 = 0x31,
447 NVN_FORMAT_DEPTH16 = 0x32,
448 NVN_FORMAT_DEPTH24 = 0x33,
449 NVN_FORMAT_DEPTH32F = 0x34,
450 NVN_FORMAT_DEPTH24_STENCIL8 = 0x35,
451 NVN_FORMAT_DEPTH32F_STENCIL8 = 0x36,
452 NVN_FORMAT_RGBX8_SRGB = 0x37,
453 NVN_FORMAT_RGBA8_SRGB = 0x38,
454 NVN_FORMAT_RGBA4 = 0x39,
455 NVN_FORMAT_RGB5 = 0x3A,
456 NVN_FORMAT_RGB5A1 = 0x3B,
457 NVN_FORMAT_RGB565 = 0x3C,
458 NVN_FORMAT_RGB10A2 = 0x3D,
459 NVN_FORMAT_RGB10A2UI = 0x3E,
460 NVN_FORMAT_R11G11B10F = 0x3F,
461 NVN_FORMAT_RGB9E5F = 0x40,
462 NVN_FORMAT_RGB_DXT1 = 0x41,
463 NVN_FORMAT_RGBA_DXT1 = 0x42,
464 NVN_FORMAT_RGBA_DXT3 = 0x43,
465 NVN_FORMAT_RGBA_DXT5 = 0x44,
466 NVN_FORMAT_RGB_DXT1_SRGB = 0x45,
467 NVN_FORMAT_RGBA_DXT1_SRGB = 0x46,
468 NVN_FORMAT_RGBA_DXT3_SRGB = 0x47,
469 NVN_FORMAT_RGBA_DXT5_SRGB = 0x48,
470 NVN_FORMAT_RGTC1_UNORM = 0x49,
471 NVN_FORMAT_RGTC1_SNORM = 0x4A,
472 NVN_FORMAT_RGTC2_UNORM = 0x4B,
473 NVN_FORMAT_RGTC2_SNORM = 0x4C,
474 NVN_FORMAT_BPTC_UNORM = 0x4D,
475 NVN_FORMAT_BPTC_UNORM_SRGB = 0x4E,
476 NVN_FORMAT_BPTC_SFLOAT = 0x4F,
477 NVN_FORMAT_BPTC_UFLOAT = 0x50,
478 NVN_FORMAT_R8_UI2F = 0x51,
479 NVN_FORMAT_R8_I2F = 0x52,
480 NVN_FORMAT_R16_UI2F = 0x53,
481 NVN_FORMAT_R16_I2F = 0x54,
482 NVN_FORMAT_R32_UI2F = 0x55,
483 NVN_FORMAT_R32_I2F = 0x56,
484 NVN_FORMAT_RG8_UI2F = 0x57,
485 NVN_FORMAT_RG8_I2F = 0x58,
486 NVN_FORMAT_RG16_UI2F = 0x59,
487 NVN_FORMAT_RG16_I2F = 0x5A,
488 NVN_FORMAT_RG32_UI2F = 0x5B,
489 NVN_FORMAT_RG32_I2F = 0x5C,
490 NVN_FORMAT_RGB8_UI2F = 0x5D,
491 NVN_FORMAT_RGB8_I2F = 0x5E,
492 NVN_FORMAT_RGB16_UI2F = 0x5F,
493 NVN_FORMAT_RGB16_I2F = 0x60,
494 NVN_FORMAT_RGB32_UI2F = 0x61,
495 NVN_FORMAT_RGB32_I2F = 0x62,
496 NVN_FORMAT_RGBA8_UI2F = 0x63,
497 NVN_FORMAT_RGBA8_I2F = 0x64,
498 NVN_FORMAT_RGBA16_UI2F = 0x65,
499 NVN_FORMAT_RGBA16_I2F = 0x66,
500 NVN_FORMAT_RGBA32_UI2F = 0x67,
501 NVN_FORMAT_RGBA32_I2F = 0x68,
502 NVN_FORMAT_RGB10A2SN = 0x69,
503 NVN_FORMAT_RGB10A2I = 0x6A,
504 NVN_FORMAT_RGB10A2_UI2F = 0x6B,
505 NVN_FORMAT_RGB10A2_I2F = 0x6C,
506 NVN_FORMAT_RGBX8 = 0x6D,
507 NVN_FORMAT_RGBX8SN = 0x6E,
508 NVN_FORMAT_RGBX8UI = 0x6F,
509 NVN_FORMAT_RGBX8I = 0x70,
510 NVN_FORMAT_RGBX16F = 0x71,
511 NVN_FORMAT_RGBX16 = 0x72,
512 NVN_FORMAT_RGBX16SN = 0x73,
513 NVN_FORMAT_RGBX16UI = 0x74,
514 NVN_FORMAT_RGBX16I = 0x75,
515 NVN_FORMAT_RGBX32F = 0x76,
516 NVN_FORMAT_RGBX32UI = 0x77,
517 NVN_FORMAT_RGBX32I = 0x78,
518 NVN_FORMAT_RGBA_ASTC_4x4 = 0x79,
519 NVN_FORMAT_RGBA_ASTC_5x4 = 0x7A,
520 NVN_FORMAT_RGBA_ASTC_5x5 = 0x7B,
521 NVN_FORMAT_RGBA_ASTC_6x5 = 0x7C,
522 NVN_FORMAT_RGBA_ASTC_6x6 = 0x7D,
523 NVN_FORMAT_RGBA_ASTC_8x5 = 0x7E,
524 NVN_FORMAT_RGBA_ASTC_8x6 = 0x7F,
525 NVN_FORMAT_RGBA_ASTC_8x8 = 0x80,
526 NVN_FORMAT_RGBA_ASTC_10x5 = 0x81,
527 NVN_FORMAT_RGBA_ASTC_10x6 = 0x82,
528 NVN_FORMAT_RGBA_ASTC_10x8 = 0x83,
529 NVN_FORMAT_RGBA_ASTC_10x10 = 0x84,
530 NVN_FORMAT_RGBA_ASTC_12x10 = 0x85,
531 NVN_FORMAT_RGBA_ASTC_12x12 = 0x86,
532 NVN_FORMAT_RGBA_ASTC_4x4_SRGB = 0x87,
533 NVN_FORMAT_RGBA_ASTC_5x4_SRGB = 0x88,
534 NVN_FORMAT_RGBA_ASTC_5x5_SRGB = 0x89,
535 NVN_FORMAT_RGBA_ASTC_6x5_SRGB = 0x8A,
536 NVN_FORMAT_RGBA_ASTC_6x6_SRGB = 0x8B,
537 NVN_FORMAT_RGBA_ASTC_8x5_SRGB = 0x8C,
538 NVN_FORMAT_RGBA_ASTC_8x6_SRGB = 0x8D,
539 NVN_FORMAT_RGBA_ASTC_8x8_SRGB = 0x8E,
540 NVN_FORMAT_RGBA_ASTC_10x5_SRGB = 0x8F,
541 NVN_FORMAT_RGBA_ASTC_10x6_SRGB = 0x90,
542 NVN_FORMAT_RGBA_ASTC_10x8_SRGB = 0x91,
543 NVN_FORMAT_RGBA_ASTC_10x10_SRGB = 0x92,
544 NVN_FORMAT_RGBA_ASTC_12x10_SRGB = 0x93,
545 NVN_FORMAT_RGBA_ASTC_12x12_SRGB = 0x94,
546 NVN_FORMAT_BGR565 = 0x95,
547 NVN_FORMAT_BGR5 = 0x96,
548 NVN_FORMAT_BGR5A1 = 0x97,
549 NVN_FORMAT_A1BGR5 = 0x98,
550 NVN_FORMAT_BGRX8 = 0x99,
551 NVN_FORMAT_BGRA8 = 0x9A,
552 NVN_FORMAT_BGRX8_SRGB = 0x9B,
553 NVN_FORMAT_BGRA8_SRGB = 0x9C,
554
555 NVN_FORMAT_LARGE = 0x7FFFFFFF
556} NVNformat;
557
558typedef enum {
559 NVN_DEBUG_OBJECT_TYPE_WINDOW = 0x0,
560 NVN_DEBUG_OBJECT_TYPE_QUEUE = 0x1,
561 NVN_DEBUG_OBJECT_TYPE_COMMAND_BUFFER = 0x2,
562 NVN_DEBUG_OBJECT_TYPE_MEMORY_POOL = 0x3,
563 NVN_DEBUG_OBJECT_TYPE_SYNC = 0x7,
564 NVN_DEBUG_OBJECT_TYPE_PROGRAM = 0x9,
565 NVN_DEBUG_OBJECT_TYPE_TEXTURE_POOL = 0xA,
566 NVN_DEBUG_OBJECT_TYPE_SAMPLER_POOL = 0xB,
567
568 NVN_DEBUG_OBJECT_TYPE_LARGE = 0x7FFFFFFF
569} NVNdebugObjectType;
570
571typedef enum {
572 NVN_QUEUE_GET_ERROR_RESULT_GPU_NO_ERROR = 0x0,
573 NVN_QUEUE_GET_ERROR_RESULT_GPU_ERROR_UNKNOWN = 0x1,
574 NVN_QUEUE_GET_ERROR_RESULT_GPU_ERROR_MMU_FAULT = 0x2,
575 NVN_QUEUE_GET_ERROR_RESULT_GPU_ERROR_PBDMA_EXCEPTION = 0x3,
576 NVN_QUEUE_GET_ERROR_RESULT_GPU_ERROR_ENGINE_EXCEPTION = 0x4,
577 NVN_QUEUE_GET_ERROR_RESULT_GPU_ERROR_TIMEOUT = 0x5,
578
579 NVN_QUEUE_GET_ERROR_RESULT_LARGE = 0x7FFFFFFF
580} NVNqueueGetErrorResult;
581
582typedef enum {
583 NVN_QUEUE_BUILDER_FLAGS_NONE = 0x0,
584 NVN_QUEUE_BUILDER_FLAGS_NO_FRAGMENT_INTERLOCK = 0x1,
585 NVN_QUEUE_BUILDER_FLAGS_NO_ZCULL = 0x2,
586
587 NVN_QUEUE_BUILDER_FLAGS_LARGE = 0x7FFFFFFF
588} NVNqueueBuilderFlags;
589
590typedef enum {
591 NVN_QUEUE_ACQUIRE_TEXTURE_RESULT_SUCCESS = 0x0,
592 NVN_QUEUE_ACQUIRE_TEXTURE_RESULT_NATIVE_ERROR = 0x1,
593
594 NVN_QUEUE_ACQUIRE_TEXTURE_RESULT_LARGE = 0x7FFFFFFF
595} NVNqueueAcquireTextureResult;
596
597typedef enum {
598 NVN_WINDOW_ACQUIRE_TEXTURE_RESULT_SUCCESS = 0x0,
599 NVN_WINDOW_ACQUIRE_TEXTURE_RESULT_NATIVE_ERROR = 0x1,
600
601 NVN_WINDOW_ACQUIRE_TEXTURE_RESULT_LARGE = 0x7FFFFFFF
602} NVNwindowAcquireTextureResult;
603
604typedef enum {
605 NVN_MEMORY_POOL_FLAGS_CPU_NO_ACCESS = 0x1,
606 NVN_MEMORY_POOL_FLAGS_CPU_UNCACHED = 0x2,
607 NVN_MEMORY_POOL_FLAGS_CPU_CACHED = 0x4,
608 NVN_MEMORY_POOL_FLAGS_GPU_NO_ACCESS = 0x8,
609 NVN_MEMORY_POOL_FLAGS_GPU_UNCACHED = 0x10,
610 NVN_MEMORY_POOL_FLAGS_GPU_CACHED = 0x20,
611 NVN_MEMORY_POOL_FLAGS_SHADER_CODE = 0x40,
612 NVN_MEMORY_POOL_FLAGS_COMPRESSIBLE = 0x80,
613 NVN_MEMORY_POOL_FLAGS_PHYSICAL = 0x100,
614 NVN_MEMORY_POOL_FLAGS_VIRTUAL = 0x200,
615
616 NVN_MEMORY_POOL_FLAGS_LARGE = 0x7FFFFFFF
617} NVNmemoryPoolFlags;
618
619typedef enum {
620 NVN_TEXTURE_SWIZZLE_ZERO = 0x0,
621 NVN_TEXTURE_SWIZZLE_ONE = 0x1,
622 NVN_TEXTURE_SWIZZLE_R = 0x2,
623 NVN_TEXTURE_SWIZZLE_G = 0x3,
624 NVN_TEXTURE_SWIZZLE_B = 0x4,
625 NVN_TEXTURE_SWIZZLE_A = 0x5,
626
627 NVN_TEXTURE_SWIZZLE_LARGE = 0x7FFFFFFF
628} NVNtextureSwizzle;
629
630typedef enum {
631 NVN_SHADER_STAGE_VERTEX = 0x0,
632 NVN_SHADER_STAGE_FRAGMENT = 0x1,
633 NVN_SHADER_STAGE_GEOMETRY = 0x2,
634 NVN_SHADER_STAGE_TESS_CONTROL = 0x3,
635 NVN_SHADER_STAGE_TESS_EVALUATION = 0x4,
636 NVN_SHADER_STAGE_COMPUTE = 0x5,
637
638 NVN_SHADER_STAGE_LARGE = 0x7FFFFFFF
639} NVNshaderStage;
640
641typedef enum {
642 NVN_SHADER_STAGE_VERTEX_BIT = 0x1,
643 NVN_SHADER_STAGE_FRAGMENT_BIT = 0x2,
644 NVN_SHADER_STAGE_GEOMETRY_BIT = 0x4,
645 NVN_SHADER_STAGE_TESS_CONTROL_BIT = 0x8,
646 NVN_SHADER_STAGE_TESS_EVALUATION_BIT = 0x10,
647 NVN_SHADER_STAGE_COMPUTE_BIT = 0x20,
648 NVN_SHADER_STAGE_ALL_GRAPHICS_BITS = 31,
649
650 NVN_SHADER_STAGE_BITS_LARGE = 0x7FFFFFFF
651} NVNshaderStageBits;
652
653typedef enum {
654 NVN_EVENT_WAIT_MODE_EQUAL = 0x0,
655 NVN_EVENT_WAIT_MODE_GEQUAL_WRAP = 0x1,
656
657 NVN_EVENT_WAIT_MODE_LARGE = 0x7FFFFFFF
658} NVNeventWaitMode;
659
660typedef enum {
661 NVN_EVENT_SIGNAL_MODE_WRITE = 0x0,
662 NVN_EVENT_SIGNAL_MODE_ADD = 0x1,
663
664 NVN_EVENT_SIGNAL_MODE_LARGE = 0x7FFFFFFF
665} NVNeventSignalMode;
666
667typedef enum {
668 NVN_EVENT_SIGNAL_LOCATION_TOP = 0x0,
669 NVN_EVENT_SIGNAL_LOCATION_VERTEX_PIPE = 0x1,
670 NVN_EVENT_SIGNAL_LOCATION_BOTTOM = 0x2,
671
672 NVN_EVENT_SIGNAL_LOCATION_LARGE = 0x7FFFFFFF
673} NVNeventSignalLocation;
674
675typedef enum {
676 NVN_SYNC_CONDITION_ALL_GPU_COMMANDS_COMPLETE = 0x0,
677 NVN_SYNC_CONDITION_GRAPHICS_WORLD_SPACE_COMPLETE = 0x1,
678
679 NVN_SYNC_CONDITION_LARGE = 0x7FFFFFFF
680} NVNsyncCondition;
681
682typedef enum {
683 NVN_COUNTER_TYPE_TIMESTAMP = 0x0,
684 NVN_COUNTER_TYPE_SAMPLES_PASSED = 0x1,
685 NVN_COUNTER_TYPE_INPUT_VERTICES = 0x2,
686 NVN_COUNTER_TYPE_INPUT_PRIMITIVES = 0x3,
687 NVN_COUNTER_TYPE_VERTEX_SHADER_INVOCATIONS = 0x4,
688 NVN_COUNTER_TYPE_TESS_CONTROL_SHADER_INVOCATIONS = 0x5,
689 NVN_COUNTER_TYPE_TESS_EVALUATION_SHADER_INVOCATIONS = 0x6,
690 NVN_COUNTER_TYPE_GEOMETRY_SHADER_INVOCATIONS = 0x7,
691 NVN_COUNTER_TYPE_FRAGMENT_SHADER_INVOCATIONS = 0x8,
692 NVN_COUNTER_TYPE_TESS_EVALUATION_SHADER_PRIMITIVES = 0x9,
693 NVN_COUNTER_TYPE_GEOMETRY_SHADER_PRIMITIVES = 0xA,
694 NVN_COUNTER_TYPE_CLIPPER_INPUT_PRIMITIVES = 0xB,
695 NVN_COUNTER_TYPE_CLIPPER_OUTPUT_PRIMITIVES = 0xC,
696 NVN_COUNTER_TYPE_PRIMITIVES_GENERATED = 0xD,
697 NVN_COUNTER_TYPE_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0xE,
698 NVN_COUNTER_TYPE_ZCULL_STATS = 0xF,
699 NVN_COUNTER_TYPE_TIMESTAMP_TOP = 0x10,
700
701 NVN_COUNTER_TYPE_LARGE = 0x7FFFFFFF
702} NVNcounterType;
703
704typedef enum {
705 NVN_FACE_NONE = 0x0,
706 NVN_FACE_FRONT = 0x1,
707 NVN_FACE_BACK = 0x2,
708 NVN_FACE_FRONT_AND_BACK = 0x3,
709
710 NVN_FACE_LARGE = 0x7FFFFFFF
711} NVNface;
712
713typedef enum {
714 NVN_COMMAND_BUFFER_MEMORY_EVENT_OUT_OF_COMMAND_MEMORY = 0x0,
715 NVN_COMMAND_BUFFER_MEMORY_EVENT_OUT_OF_CONTROL_MEMORY = 0x1,
716
717 NVN_COMMAND_BUFFER_MEMORY_EVENT_LARGE = 0x7FFFFFFF
718} NVNcommandBufferMemoryEvent;
719
720typedef enum {
721 NVN_DRAW_PRIMITIVE_POINTS = 0x0,
722 NVN_DRAW_PRIMITIVE_LINES = 0x1,
723 NVN_DRAW_PRIMITIVE_LINE_LOOP = 0x2,
724 NVN_DRAW_PRIMITIVE_LINE_STRIP = 0x3,
725 NVN_DRAW_PRIMITIVE_TRIANGLES = 0x4,
726 NVN_DRAW_PRIMITIVE_TRIANGLE_STRIP = 0x5,
727 NVN_DRAW_PRIMITIVE_TRIANGLE_FAN = 0x6,
728 NVN_DRAW_PRIMITIVE_QUADS = 0x7,
729 NVN_DRAW_PRIMITIVE_QUAD_STRIP = 0x8,
730 NVN_DRAW_PRIMITIVE_POLYGON = 0x9,
731 NVN_DRAW_PRIMITIVE_LINES_ADJACENCY = 0xA,
732 NVN_DRAW_PRIMITIVE_LINE_STRIP_ADJACENCY = 0xB,
733 NVN_DRAW_PRIMITIVE_TRIANGLES_ADJACENCY = 0xC,
734 NVN_DRAW_PRIMITIVE_TRIANGLE_STRIP_ADJACENCY = 0xD,
735 NVN_DRAW_PRIMITIVE_PATCHES = 0xE,
736
737 NVN_DRAW_PRIMITIVE_LARGE = 0x7FFFFFFF
738} NVNdrawPrimitive;
739
740typedef enum {
741 NVN_INDEX_TYPE_UNSIGNED_BYTE = 0x0,
742 NVN_INDEX_TYPE_UNSIGNED_SHORT = 0x1,
743 NVN_INDEX_TYPE_UNSIGNED_INT = 0x2,
744
745 NVN_INDEX_TYPE_LARGE = 0x7FFFFFFF
746} NVNindexType;
747
748typedef enum {
749 NVN_TEXTURE_FLAGS_DISPLAY = 0x1,
750 NVN_TEXTURE_FLAGS_VIDEO_DECODE = 0x2,
751 NVN_TEXTURE_FLAGS_IMAGE = 0x4,
752 NVN_TEXTURE_FLAGS_COMPRESSIBLE = 0x8,
753 NVN_TEXTURE_FLAGS_LINEAR = 0x10,
754 NVN_TEXTURE_FLAGS_SPARSE = 0x20,
755 NVN_TEXTURE_FLAGS_LINEAR_RENDER_TARGET = 0x40,
756 NVN_TEXTURE_FLAGS_ADAPTIVE_ZCULL = 0x80,
757 NVN_TEXTURE_FLAGS_DEPTH16_PREFER_FAST_CLEAR = 0x100,
758 NVN_TEXTURE_FLAGS_MINIMAL_LAYOUT = 0x200,
759 NVN_TEXTURE_FLAGS_ZCULL_SUPPORT_STENCIL = 0x400,
760
761 NVN_TEXTURE_FLAGS_LARGE = 0x7FFFFFFF
762} NVNtextureFlags;
763
764typedef enum {
765 NVN_BARRIER_ORDER_PRIMITIVES_BIT = 0x1,
766 NVN_BARRIER_ORDER_FRAGMENTS_BIT = 0x2,
767 NVN_BARRIER_ORDER_FRAGMENTS_TILED_BIT = 0x4,
768 NVN_BARRIER_ORDER_INDIRECT_DATA_BIT = 0x8,
769 NVN_BARRIER_INVALIDATE_TEXTURE_BIT = 0x10,
770 NVN_BARRIER_INVALIDATE_SHADER_BIT = 0x20,
771 NVN_BARRIER_INVALIDATE_TEXTURE_DESCRIPTOR_BIT = 0x40,
772 NVN_BARRIER_INVALIDATE_ZCULL_BIT = 0x80,
773 NVN_BARRIER_BITS_LARGE = 0x7FFFFFFF
774} NVNbarrierBits;
775
776typedef enum {
777 NVN_TEXTURE_TARGET_1D = 0x0,
778 NVN_TEXTURE_TARGET_2D = 0x1,
779 NVN_TEXTURE_TARGET_3D = 0x2,
780 NVN_TEXTURE_TARGET_1D_ARRAY = 0x3,
781 NVN_TEXTURE_TARGET_2D_ARRAY = 0x4,
782 NVN_TEXTURE_TARGET_2D_MULTISAMPLE = 0x5,
783 NVN_TEXTURE_TARGET_2D_MULTISAMPLE_ARRAY = 0x6,
784 NVN_TEXTURE_TARGET_RECTANGLE = 0x7,
785 NVN_TEXTURE_TARGET_CUBEMAP = 0x8,
786 NVN_TEXTURE_TARGET_CUBEMAP_ARRAY = 0x9,
787 NVN_TEXTURE_TARGET_BUFFER = 0xA,
788
789 NVN_TEXTURE_TARGET_LARGE = 0x7FFFFFFF
790} NVNtextureTarget;
791
792typedef enum {
793 NVN_TEXTURE_DEPTH_STENCIL_MODE_DEPTH = 0x0,
794 NVN_TEXTURE_DEPTH_STENCIL_MODE_STENCIL = 0x1,
795
796 NVN_TEXTURE_DEPTH_STENCIL_MODE_LARGE = 0x7FFFFFFF
797} NVNtextureDepthStencilMode;
798
799typedef enum {
800 NVN_LOGIC_OP_CLEAR = 0x0,
801 NVN_LOGIC_OP_AND = 0x1,
802 NVN_LOGIC_OP_AND_REVERSE = 0x2,
803 NVN_LOGIC_OP_COPY = 0x3,
804 NVN_LOGIC_OP_AND_INVERTED = 0x4,
805 NVN_LOGIC_OP_NOOP = 0x5,
806 NVN_LOGIC_OP_XOR = 0x6,
807 NVN_LOGIC_OP_OR = 0x7,
808 NVN_LOGIC_OP_NOR = 0x8,
809 NVN_LOGIC_OP_EQUIV = 0x9,
810 NVN_LOGIC_OP_INVERT = 0xA,
811 NVN_LOGIC_OP_OR_REVERSE = 0xB,
812 NVN_LOGIC_OP_COPY_INVERTED = 0xC,
813 NVN_LOGIC_OP_OR_INVERTED = 0xD,
814 NVN_LOGIC_OP_NAND = 0xE,
815 NVN_LOGIC_OP_SET = 0xF,
816
817 NVN_LOGIC_OP_LARGE = 0x7FFFFFFF
818} NVNlogicOp;
819
820typedef enum {
821 NVN_ALPHA_FUNC_NEVER = 0x1,
822 NVN_ALPHA_FUNC_LESS = 0x2,
823 NVN_ALPHA_FUNC_EQUAL = 0x3,
824 NVN_ALPHA_FUNC_LEQUAL = 0x4,
825 NVN_ALPHA_FUNC_GREATER = 0x5,
826 NVN_ALPHA_FUNC_NOTEQUAL = 0x6,
827 NVN_ALPHA_FUNC_GEQUAL = 0x7,
828 NVN_ALPHA_FUNC_ALWAYS = 0x8,
829
830 NVN_ALPHA_FUNC_LARGE = 0x7FFFFFFF
831} NVNalphaFunc;
832
833typedef enum {
834 NVN_BLEND_ADVANCED_MODE_NONE = 0x0,
835 NVN_BLEND_ADVANCED_MODE_ZERO = 0x5,
836 NVN_BLEND_ADVANCED_MODE_SRC = 0x6,
837 NVN_BLEND_ADVANCED_MODE_DST = 0x7,
838 NVN_BLEND_ADVANCED_MODE_SRC_OVER = 0x8,
839 NVN_BLEND_ADVANCED_MODE_DST_OVER = 0x9,
840 NVN_BLEND_ADVANCED_MODE_SRC_IN = 0xA,
841 NVN_BLEND_ADVANCED_MODE_DST_IN = 0xB,
842 NVN_BLEND_ADVANCED_MODE_SRC_OUT = 0xC,
843 NVN_BLEND_ADVANCED_MODE_DST_OUT = 0xD,
844 NVN_BLEND_ADVANCED_MODE_SRC_ATOP = 0xE,
845 NVN_BLEND_ADVANCED_MODE_DST_ATOP = 0xF,
846 NVN_BLEND_ADVANCED_MODE_XOR = 0x10,
847 NVN_BLEND_ADVANCED_MODE_PLUS = 0x11,
848 NVN_BLEND_ADVANCED_MODE_PLUS_CLAMPED = 0x12,
849 NVN_BLEND_ADVANCED_MODE_PLUS_CLAMPED_ALPHA = 0x13,
850 NVN_BLEND_ADVANCED_MODE_PLUS_DARKER = 0x14,
851 NVN_BLEND_ADVANCED_MODE_MULTIPLY = 0x15,
852 NVN_BLEND_ADVANCED_MODE_SCREEN = 0x16,
853 NVN_BLEND_ADVANCED_MODE_OVERLAY = 0x17,
854 NVN_BLEND_ADVANCED_MODE_DARKEN = 0x18,
855 NVN_BLEND_ADVANCED_MODE_LIGHTEN = 0x19,
856 NVN_BLEND_ADVANCED_MODE_COLORDODGE = 0x1A,
857 NVN_BLEND_ADVANCED_MODE_COLORBURN = 0x1B,
858 NVN_BLEND_ADVANCED_MODE_HARDLIGHT = 0x1C,
859 NVN_BLEND_ADVANCED_MODE_SOFTLIGHT = 0x1D,
860 NVN_BLEND_ADVANCED_MODE_DIFFERENCE = 0x1E,
861 NVN_BLEND_ADVANCED_MODE_MINUS = 0x1F,
862 NVN_BLEND_ADVANCED_MODE_MINUS_CLAMPED = 0x20,
863 NVN_BLEND_ADVANCED_MODE_EXCLUSION = 0x21,
864 NVN_BLEND_ADVANCED_MODE_CONTRAST = 0x22,
865 NVN_BLEND_ADVANCED_MODE_INVERT = 0x23,
866 NVN_BLEND_ADVANCED_MODE_INVERT_RGB = 0x24,
867 NVN_BLEND_ADVANCED_MODE_INVERT_OVG = 0x25,
868 NVN_BLEND_ADVANCED_MODE_LINEARDODGE = 0x26,
869 NVN_BLEND_ADVANCED_MODE_LINEARBURN = 0x27,
870 NVN_BLEND_ADVANCED_MODE_VIVIDLIGHT = 0x28,
871 NVN_BLEND_ADVANCED_MODE_LINEARLIGHT = 0x29,
872 NVN_BLEND_ADVANCED_MODE_PINLIGHT = 0x2A,
873 NVN_BLEND_ADVANCED_MODE_HARDMIX = 0x2B,
874 NVN_BLEND_ADVANCED_MODE_RED = 0x2C,
875 NVN_BLEND_ADVANCED_MODE_GREEN = 0x2D,
876 NVN_BLEND_ADVANCED_MODE_BLUE = 0x2E,
877 NVN_BLEND_ADVANCED_MODE_HSL_HUE = 0x2F,
878 NVN_BLEND_ADVANCED_MODE_HSL_SATURATION = 0x30,
879 NVN_BLEND_ADVANCED_MODE_HSL_COLOR = 0x31,
880 NVN_BLEND_ADVANCED_MODE_HSL_LUMINOSITY = 0x32,
881
882 NVN_BLEND_ADVANCED_MODE_LARGE = 0x7FFFFFFF
883} NVNblendAdvancedMode;
884
885typedef enum {
886 NVN_MIN_FILTER_NEAREST = 0x0,
887 NVN_MIN_FILTER_LINEAR = 0x1,
888 NVN_MIN_FILTER_NEAREST_MIPMAP_NEAREST = 0x2,
889 NVN_MIN_FILTER_LINEAR_MIPMAP_NEAREST = 0x3,
890 NVN_MIN_FILTER_NEAREST_MIPMAP_LINEAR = 0x4,
891 NVN_MIN_FILTER_LINEAR_MIPMAP_LINEAR = 0x5,
892
893 NVN_MIN_FILTER_LARGE = 0x7FFFFFFF
894} NVNminFilter;
895
896typedef enum {
897 NVN_MAG_FILTER_NEAREST = 0x0,
898 NVN_MAG_FILTER_LINEAR = 0x1,
899
900 NVN_MAG_FILTER_LARGE = 0x7FFFFFFF
901} NVNmagFilter;
902
903typedef enum {
904 NVN_WRAP_MODE_CLAMP = 0x0,
905 NVN_WRAP_MODE_REPEAT = 0x1,
906 NVN_WRAP_MODE_MIRROR_CLAMP = 0x2,
907 NVN_WRAP_MODE_MIRROR_CLAMP_TO_EDGE = 0x3,
908 NVN_WRAP_MODE_MIRROR_CLAMP_TO_BORDER = 0x4,
909 NVN_WRAP_MODE_CLAMP_TO_BORDER = 0x5,
910 NVN_WRAP_MODE_MIRRORED_REPEAT = 0x6,
911 NVN_WRAP_MODE_CLAMP_TO_EDGE = 0x7,
912
913 NVN_WRAP_MODE_LARGE = 0x7FFFFFFF
914} NVNwrapMode;
915
916typedef enum {
917 NVN_COMPARE_MODE_NONE = 0x0,
918 NVN_COMPARE_MODE_COMPARE_R_TO_TEXTURE = 0x1,
919
920 NVN_COMPARE_MODE_LARGE = 0x7FFFFFFF
921} NVNcompareMode;
922
923typedef enum {
924 NVN_COMPARE_FUNC_NEVER = 0x1,
925 NVN_COMPARE_FUNC_LESS = 0x2,
926 NVN_COMPARE_FUNC_EQUAL = 0x3,
927 NVN_COMPARE_FUNC_LEQUAL = 0x4,
928 NVN_COMPARE_FUNC_GREATER = 0x5,
929 NVN_COMPARE_FUNC_NOTEQUAL = 0x6,
930 NVN_COMPARE_FUNC_GEQUAL = 0x7,
931 NVN_COMPARE_FUNC_ALWAYS = 0x8,
932
933 NVN_COMPARE_FUNC_LARGE = 0x7FFFFFFF
934} NVNcompareFunc;
935
936typedef enum {
937 NVN_SAMPLER_REDUCTION_AVERAGE = 0x0,
938 NVN_SAMPLER_REDUCTION_MIN = 0x1,
939 NVN_SAMPLER_REDUCTION_MAX = 0x2,
940
941 NVN_SAMPLER_REDUCTION_LARGE = 0x7FFFFFFF
942} NVNsamplerReduction;
943
944typedef enum {
945 NVN_BLEND_FUNC_ZERO = 0x1,
946 NVN_BLEND_FUNC_ONE = 0x2,
947 NVN_BLEND_FUNC_SRC_COLOR = 0x3,
948 NVN_BLEND_FUNC_ONE_MINUS_SRC_COLOR = 0x4,
949 NVN_BLEND_FUNC_SRC_ALPHA = 0x5,
950 NVN_BLEND_FUNC_ONE_MINUS_SRC_ALPHA = 0x6,
951 NVN_BLEND_FUNC_DST_ALPHA = 0x7,
952 NVN_BLEND_FUNC_ONE_MINUS_DST_ALPHA = 0x8,
953 NVN_BLEND_FUNC_DST_COLOR = 0x9,
954 NVN_BLEND_FUNC_ONE_MINUS_DST_COLOR = 0xA,
955 NVN_BLEND_FUNC_SRC_ALPHA_SATURATE = 0xB,
956 NVN_BLEND_FUNC_SRC1_COLOR = 0x10,
957 NVN_BLEND_FUNC_ONE_MINUS_SRC1_COLOR = 0x11,
958 NVN_BLEND_FUNC_SRC1_ALPHA = 0x12,
959 NVN_BLEND_FUNC_ONE_MINUS_SRC1_ALPHA = 0x13,
960 NVN_BLEND_FUNC_CONSTANT_COLOR = 0x61,
961 NVN_BLEND_FUNC_ONE_MINUS_CONSTANT_COLOR = 0x62,
962 NVN_BLEND_FUNC_CONSTANT_ALPHA = 0x63,
963 NVN_BLEND_FUNC_ONE_MINUS_CONSTANT_ALPHA = 0x64,
964
965 NVN_BLEND_FUNC_LARGE = 0x7FFFFFFF
966} NVNblendFunc;
967
968typedef enum {
969 NVN_BLEND_EQUATION_ADD = 0x1,
970 NVN_BLEND_EQUATION_SUB = 0x2,
971 NVN_BLEND_EQUATION_REVERSE_SUB = 0x3,
972 NVN_BLEND_EQUATION_MIN = 0x4,
973 NVN_BLEND_EQUATION_MAX = 0x5,
974
975 NVN_BLEND_EQUATION_LARGE = 0x7FFFFFFF
976} NVNblendEquation;
977
978typedef enum {
979 NVN_BLEND_ADVANCED_OVERLAP_UNCORRELATED = 0x0,
980 NVN_BLEND_ADVANCED_OVERLAP_DISJOINT = 0x1,
981 NVN_BLEND_ADVANCED_OVERLAP_CONJOINT = 0x2,
982
983 NVN_BLEND_ADVANCED_OVERLAP_LARGE = 0x7FFFFFFF
984} NVNblendAdvancedOverlap;
985
986typedef enum {
987 NVN_COVERAGE_MODULATION_MODE_NONE = 0x0,
988 NVN_COVERAGE_MODULATION_MODE_RGB = 0x1,
989 NVN_COVERAGE_MODULATION_MODE_ALPHA = 0x2,
990 NVN_COVERAGE_MODULATION_MODE_RGBA = 0x3,
991
992 NVN_COVERAGE_MODULATION_MODE_LARGE = 0x7FFFFFFF
993} NVNcoverageModulationMode;
994
995typedef enum {
996 NVN_DEPTH_FUNC_NEVER = 0x1,
997 NVN_DEPTH_FUNC_LESS = 0x2,
998 NVN_DEPTH_FUNC_EQUAL = 0x3,
999 NVN_DEPTH_FUNC_LEQUAL = 0x4,
1000 NVN_DEPTH_FUNC_GREATER = 0x5,
1001 NVN_DEPTH_FUNC_NOTEQUAL = 0x6,
1002 NVN_DEPTH_FUNC_GEQUAL = 0x7,
1003 NVN_DEPTH_FUNC_ALWAYS = 0x8,
1004
1005 NVN_DEPTH_FUNC_LARGE = 0x7FFFFFFF
1006} NVNdepthFunc;
1007
1008typedef enum {
1009 NVN_STENCIL_FUNC_NEVER = 0x1,
1010 NVN_STENCIL_FUNC_LESS = 0x2,
1011 NVN_STENCIL_FUNC_EQUAL = 0x3,
1012 NVN_STENCIL_FUNC_LEQUAL = 0x4,
1013 NVN_STENCIL_FUNC_GREATER = 0x5,
1014 NVN_STENCIL_FUNC_NOTEQUAL = 0x6,
1015 NVN_STENCIL_FUNC_GEQUAL = 0x7,
1016 NVN_STENCIL_FUNC_ALWAYS = 0x8,
1017
1018 NVN_STENCIL_FUNC_LARGE = 0x7FFFFFFF
1019} NVNstencilFunc;
1020
1021typedef enum {
1022 NVN_STENCIL_OP_KEEP = 0x1,
1023 NVN_STENCIL_OP_ZERO = 0x2,
1024 NVN_STENCIL_OP_REPLACE = 0x3,
1025 NVN_STENCIL_OP_INCR = 0x4,
1026 NVN_STENCIL_OP_DECR = 0x5,
1027 NVN_STENCIL_OP_INVERT = 0x6,
1028 NVN_STENCIL_OP_INCR_WRAP = 0x7,
1029 NVN_STENCIL_OP_DECR_WRAP = 0x8,
1030
1031 NVN_STENCIL_OP_LARGE = 0x7FFFFFFF
1032} NVNstencilOp;
1033
1034typedef enum {
1035 NVN_FRONT_FACE_CW = 0x0,
1036 NVN_FRONT_FACE_CCW = 0x1,
1037
1038 NVN_FRONT_FACE_LARGE = 0x7FFFFFFF
1039} NVNfrontFace;
1040
1041typedef enum {
1042 NVN_SYNC_WAIT_RESULT_ALREADY_SIGNALED = 0x0,
1043 NVN_SYNC_WAIT_RESULT_CONDITION_SATISFIED = 0x1,
1044 NVN_SYNC_WAIT_RESULT_TIMEOUT_EXPIRED = 0x2,
1045 NVN_SYNC_WAIT_RESULT_FAILED = 0x3,
1046
1047 NVN_SYNC_WAIT_RESULT_LARGE = 0x7FFFFFFF
1048} NVNsyncWaitResult;
1049
1050typedef enum {
1051 NVN_POLYGON_OFFSET_ENABLE_NONE = 0x0,
1052 NVN_POLYGON_OFFSET_ENABLE_POINT = 0x1,
1053 NVN_POLYGON_OFFSET_ENABLE_LINE = 0x2,
1054 NVN_POLYGON_OFFSET_ENABLE_FILL = 0x4,
1055
1056 NVN_POLYGON_OFFSET_ENABLE_LARGE = 0x7FFFFFFF
1057} NVNpolygonOffsetEnable;
1058
1059typedef enum {
1060 NVN_POLYGON_MODE_POINT = 0x0,
1061 NVN_POLYGON_MODE_LINE = 0x1,
1062 NVN_POLYGON_MODE_FILL = 0x2,
1063
1064 NVN_POLYGON_MODE_LARGE = 0x7FFFFFFF
1065} NVNpolygonMode;
1066
1067typedef enum {
1068 NVN_VIEWPORT_SWIZZLE_POSITIVE_X = 0x0,
1069 NVN_VIEWPORT_SWIZZLE_NEGATIVE_X = 0x1,
1070 NVN_VIEWPORT_SWIZZLE_POSITIVE_Y = 0x2,
1071 NVN_VIEWPORT_SWIZZLE_NEGATIVE_Y = 0x3,
1072 NVN_VIEWPORT_SWIZZLE_POSITIVE_Z = 0x4,
1073 NVN_VIEWPORT_SWIZZLE_NEGATIVE_Z = 0x5,
1074 NVN_VIEWPORT_SWIZZLE_POSITIVE_W = 0x6,
1075 NVN_VIEWPORT_SWIZZLE_NEGATIVE_W = 0x7,
1076
1077 NVN_VIEWPORT_SWIZZLE_LARGE = 0x7FFFFFFF
1078} NVNviewportSwizzle;
1079
1080typedef enum {
1081 NVN_TILED_CACHE_ACTION_ENABLE = 0x1,
1082 NVN_TILED_CACHE_ACTION_DISABLE = 0x2,
1083 NVN_TILED_CACHE_ACTION_FLUSH = 0x3,
1084 NVN_TILED_CACHE_ACTION_FLUSH_NO_TILING = 0x4,
1085 NVN_TILED_CACHE_ACTION_ENABLE_RENDER_TARGET_BINNING = 0x5,
1086 NVN_TILED_CACHE_ACTION_DISABLE_RENDER_TARGET_BINNING = 0x6,
1087
1088 NVN_TILED_CACHE_ACTION_LARGE = 0x7FFFFFFF
1089} NVNtiledCacheAction;
1090
1091typedef enum {
1092 NVN_CONDITIONAL_RENDER_MODE_RENDER_IF_EQUAL = 0x0,
1093 NVN_CONDITIONAL_RENDER_MODE_RENDER_IF_NOT_EQUAL = 0x1,
1094
1095 NVN_CONDITIONAL_RENDER_MODE_LARGE = 0x7FFFFFFF
1096} NVNconditionalRenderMode;
1097
1098typedef enum {
1099 NVN_COPY_FLAGS_NONE = 0x0,
1100 NVN_COPY_FLAGS_LINEAR_FILTER_BIT = 0x1,
1101 NVN_COPY_FLAGS_ENGINE_2D_BIT = 0x2,
1102 NVN_COPY_FLAGS_MIRROR_X_BIT = 0x4,
1103 NVN_COPY_FLAGS_MIRROR_Y_BIT = 0x8,
1104 NVN_COPY_FLAGS_MIRROR_Z_BIT = 0x10,
1105 NVN_COPY_FLAGS_LARGE = 0x7FFFFFFF
1106} NVNcopyFlags;
1107
1108#ifdef __cplusplus
1109}
1110#endif
1111
1112typedef void (*PFNNVNGENERICFUNCPTRPROC)(void);
1113typedef PFNNVNGENERICFUNCPTRPROC (*PFNNVNBOOTSTRAPLOADERPROC)(const char*);
1114typedef void (*PFNNVNCOMMANDBUFFERMEMORYCALLBACKPROC)(NVNcommandBuffer*,
1115 NVNcommandBufferMemoryEvent, size_t, void*);
1116typedef void (*PFNNVNDEBUGCALLBACKPROC)(NVNdebugCallbackSource source, NVNdebugCallbackType type,
1117 int id, NVNdebugCallbackSeverity severity,
1118 const unsigned char* message, void* user);
1119typedef void (*PFNNVNWALKDEBUGDATABASECALLBACKPROC)(void*, void*);
1120
1121typedef void (*PFNNVNDEVICEBUILDERSETDEFAULTSPROC)(NVNdeviceBuilder*);
1122typedef void (*PFNNVNDEVICEBUILDERSETFLAGSPROC)(NVNdeviceBuilder*, int);
1123typedef NVNboolean (*PFNNVNDEVICEINITIALIZEPROC)(NVNdevice*, const NVNdeviceBuilder*);
1124typedef void (*PFNNVNDEVICEFINALIZEPROC)(NVNdevice*);
1125typedef void (*PFNNVNDEVICESETDEBUGLABELPROC)(NVNdevice*, const char*);
1126typedef PFNNVNGENERICFUNCPTRPROC (*PFNNVNDEVICEGETPROCADDRESSPROC)(const NVNdevice*, const char*);
1127typedef void (*PFNNVNDEVICEGETINTEGERPROC)(const NVNdevice*, NVNdeviceInfo, int*);
1128typedef uint64_t (*PFNNVNDEVICEGETCURRENTTIMESTAMPINNANOSECONDSPROC)(const NVNdevice*);
1129typedef void (*PFNNVNDEVICESETINTERMEDIATESHADERCACHEPROC)(NVNdevice*, int);
1130typedef NVNtextureHandle (*PFNNVNDEVICEGETTEXTUREHANDLEPROC)(const NVNdevice*, int, int);
1131typedef NVNtextureHandle (*PFNNVNDEVICEGETTEXELFETCHHANDLEPROC)(const NVNdevice*, int);
1132typedef NVNimageHandle (*PFNNVNDEVICEGETIMAGEHANDLEPROC)(const NVNdevice*, int);
1133typedef void (*PFNNVNDEVICEINSTALLDEBUGCALLBACKPROC)(NVNdevice*, const PFNNVNDEBUGCALLBACKPROC,
1134 void*, NVNboolean);
1135typedef NVNdebugDomainId (*PFNNVNDEVICEGENERATEDEBUGDOMAINIDPROC)(const NVNdevice*, const char*);
1136typedef void (*PFNNVNDEVICESETWINDOWORIGINMODEPROC)(NVNdevice*, NVNwindowOriginMode);
1137typedef void (*PFNNVNDEVICESETDEPTHMODEPROC)(NVNdevice*, NVNdepthMode);
1138typedef NVNboolean (*PFNNVNDEVICEREGISTERFASTCLEARCOLORPROC)(NVNdevice*, const float*, NVNformat);
1139typedef NVNboolean (*PFNNVNDEVICEREGISTERFASTCLEARCOLORIPROC)(NVNdevice*, const int*, NVNformat);
1140typedef NVNboolean (*PFNNVNDEVICEREGISTERFASTCLEARCOLORUIPROC)(NVNdevice*, const uint32_t*,
1141 NVNformat);
1142typedef NVNboolean (*PFNNVNDEVICEREGISTERFASTCLEARDEPTHPROC)(NVNdevice*, float);
1143typedef NVNwindowOriginMode (*PFNNVNDEVICEGETWINDOWORIGINMODEPROC)(const NVNdevice*);
1144typedef NVNdepthMode (*PFNNVNDEVICEGETDEPTHMODEPROC)(const NVNdevice*);
1145typedef uint64_t (*PFNNVNDEVICEGETTIMESTAMPINNANOSECONDSPROC)(const NVNdevice*,
1146 const NVNcounterData*);
1147typedef void (*PFNNVNDEVICEAPPLYDEFERREDFINALIZESPROC)(NVNdevice*, int);
1148typedef void (*PFNNVNDEVICEFINALIZECOMMANDHANDLEPROC)(NVNdevice*, NVNcommandHandle);
1149typedef void (*PFNNVNDEVICEWALKDEBUGDATABASEPROC)(const NVNdevice*, NVNdebugObjectType,
1150 PFNNVNWALKDEBUGDATABASECALLBACKPROC, void*);
1151typedef NVNseparateTextureHandle (*PFNNVNDEVICEGETSEPARATETEXTUREHANDLEPROC)(const NVNdevice*, int);
1152typedef NVNseparateSamplerHandle (*PFNNVNDEVICEGETSEPARATESAMPLERHANDLEPROC)(const NVNdevice*, int);
1153typedef NVNboolean (*PFNNVNDEVICEISEXTERNALDEBUGGERATTACHEDPROC)(const NVNdevice*);
1154typedef NVNqueueGetErrorResult (*PFNNVNQUEUEGETERRORPROC)(NVNqueue*, NVNqueueErrorInfo*);
1155typedef size_t (*PFNNVNQUEUEGETTOTALCOMMANDMEMORYUSEDPROC)(NVNqueue*);
1156typedef size_t (*PFNNVNQUEUEGETTOTALCONTROLMEMORYUSEDPROC)(NVNqueue*);
1157typedef size_t (*PFNNVNQUEUEGETTOTALCOMPUTEMEMORYUSEDPROC)(NVNqueue*);
1158typedef void (*PFNNVNQUEUERESETMEMORYUSAGECOUNTSPROC)(NVNqueue*);
1159typedef void (*PFNNVNQUEUEBUILDERSETDEVICEPROC)(NVNqueueBuilder*, NVNdevice*);
1160typedef void (*PFNNVNQUEUEBUILDERSETDEFAULTSPROC)(NVNqueueBuilder*);
1161typedef void (*PFNNVNQUEUEBUILDERSETFLAGSPROC)(NVNqueueBuilder*, int);
1162typedef void (*PFNNVNQUEUEBUILDERSETCOMMANDMEMORYSIZEPROC)(NVNqueueBuilder*, size_t);
1163typedef void (*PFNNVNQUEUEBUILDERSETCOMPUTEMEMORYSIZEPROC)(NVNqueueBuilder*, size_t);
1164typedef void (*PFNNVNQUEUEBUILDERSETCONTROLMEMORYSIZEPROC)(NVNqueueBuilder*, size_t);
1165typedef size_t (*PFNNVNQUEUEBUILDERGETQUEUEMEMORYSIZEPROC)(const NVNqueueBuilder*);
1166typedef void (*PFNNVNQUEUEBUILDERSETQUEUEMEMORYPROC)(NVNqueueBuilder*, void*, size_t);
1167typedef void (*PFNNVNQUEUEBUILDERSETCOMMANDFLUSHTHRESHOLDPROC)(NVNqueueBuilder*, size_t);
1168typedef NVNboolean (*PFNNVNQUEUEINITIALIZEPROC)(NVNqueue*, const NVNqueueBuilder*);
1169typedef void (*PFNNVNQUEUEFINALIZEPROC)(NVNqueue*);
1170typedef void (*PFNNVNQUEUESETDEBUGLABELPROC)(NVNqueue*, const char*);
1171typedef void (*PFNNVNQUEUESUBMITCOMMANDSPROC)(NVNqueue*, int, const NVNcommandHandle*);
1172typedef void (*PFNNVNQUEUEFLUSHPROC)(NVNqueue*);
1173typedef void (*PFNNVNQUEUEFINISHPROC)(NVNqueue*);
1174typedef void (*PFNNVNQUEUEPRESENTTEXTUREPROC)(NVNqueue*, NVNwindow*, int);
1175typedef NVNqueueAcquireTextureResult (*PFNNVNQUEUEACQUIRETEXTUREPROC)(NVNqueue*, NVNwindow*, int*);
1176typedef void (*PFNNVNWINDOWBUILDERSETDEVICEPROC)(NVNwindowBuilder*, NVNdevice*);
1177typedef void (*PFNNVNWINDOWBUILDERSETDEFAULTSPROC)(NVNwindowBuilder*);
1178typedef void (*PFNNVNWINDOWBUILDERSETNATIVEWINDOWPROC)(NVNwindowBuilder*, NVNnativeWindow);
1179typedef void (*PFNNVNWINDOWBUILDERSETTEXTURESPROC)(NVNwindowBuilder*, int, NVNtexture* const*);
1180typedef void (*PFNNVNWINDOWBUILDERSETPRESENTINTERVALPROC)(NVNwindowBuilder*, int);
1181typedef NVNnativeWindow (*PFNNVNWINDOWBUILDERGETNATIVEWINDOWPROC)(const NVNwindowBuilder*);
1182typedef int (*PFNNVNWINDOWBUILDERGETPRESENTINTERVALPROC)(const NVNwindowBuilder*);
1183typedef NVNboolean (*PFNNVNWINDOWINITIALIZEPROC)(NVNwindow*, const NVNwindowBuilder*);
1184typedef void (*PFNNVNWINDOWFINALIZEPROC)(NVNwindow*);
1185typedef void (*PFNNVNWINDOWSETDEBUGLABELPROC)(NVNwindow*, const char*);
1186typedef NVNwindowAcquireTextureResult (*PFNNVNWINDOWACQUIRETEXTUREPROC)(NVNwindow*, NVNsync*, int*);
1187typedef NVNnativeWindow (*PFNNVNWINDOWGETNATIVEWINDOWPROC)(const NVNwindow*);
1188typedef int (*PFNNVNWINDOWGETPRESENTINTERVALPROC)(const NVNwindow*);
1189typedef void (*PFNNVNWINDOWSETPRESENTINTERVALPROC)(NVNwindow*, int);
1190typedef void (*PFNNVNWINDOWSETCROPPROC)(NVNwindow*, int, int, int, int);
1191typedef void (*PFNNVNWINDOWGETCROPPROC)(const NVNwindow*, NVNrectangle*);
1192typedef NVNboolean (*PFNNVNPROGRAMINITIALIZEPROC)(NVNprogram*, NVNdevice*);
1193typedef void (*PFNNVNPROGRAMFINALIZEPROC)(NVNprogram*);
1194typedef void (*PFNNVNPROGRAMSETDEBUGLABELPROC)(NVNprogram*, const char*);
1195typedef NVNboolean (*PFNNVNPROGRAMSETSHADERSPROC)(NVNprogram*, int, const NVNshaderData*);
1196typedef void (*PFNNVNMEMORYPOOLBUILDERSETDEVICEPROC)(NVNmemoryPoolBuilder*, NVNdevice*);
1197typedef void (*PFNNVNMEMORYPOOLBUILDERSETDEFAULTSPROC)(NVNmemoryPoolBuilder*);
1198typedef void (*PFNNVNMEMORYPOOLBUILDERSETSTORAGEPROC)(NVNmemoryPoolBuilder*, void*, size_t);
1199typedef void (*PFNNVNMEMORYPOOLBUILDERSETFLAGSPROC)(NVNmemoryPoolBuilder*, int);
1200typedef void (*PFNNVNMEMORYPOOLBUILDERGETMEMORYPROC)(const NVNmemoryPoolBuilder*);
1201typedef size_t (*PFNNVNMEMORYPOOLBUILDERGETSIZEPROC)(const NVNmemoryPoolBuilder*);
1202typedef NVNmemoryPoolFlags (*PFNNVNMEMORYPOOLBUILDERGETFLAGSPROC)(const NVNmemoryPoolBuilder*);
1203typedef NVNboolean (*PFNNVNMEMORYPOOLINITIALIZEPROC)(NVNmemoryPool*, const NVNmemoryPoolBuilder*);
1204typedef void (*PFNNVNMEMORYPOOLSETDEBUGLABELPROC)(NVNmemoryPool*, const char*);
1205typedef void (*PFNNVNMEMORYPOOLFINALIZEPROC)(NVNmemoryPool*);
1206typedef void* (*PFNNVNMEMORYPOOLMAPPROC)(const NVNmemoryPool*);
1207typedef void (*PFNNVNMEMORYPOOLFLUSHMAPPEDRANGEPROC)(const NVNmemoryPool*, ptrdiff_t, size_t);
1208typedef void (*PFNNVNMEMORYPOOLINVALIDATEMAPPEDRANGEPROC)(const NVNmemoryPool*, ptrdiff_t, size_t);
1209typedef NVNbufferAddress (*PFNNVNMEMORYPOOLGETBUFFERADDRESSPROC)(const NVNmemoryPool*);
1210typedef NVNboolean (*PFNNVNMEMORYPOOLMAPVIRTUALPROC)(NVNmemoryPool*, int, const NVNmappingRequest*);
1211typedef size_t (*PFNNVNMEMORYPOOLGETSIZEPROC)(const NVNmemoryPool*);
1212typedef NVNmemoryPoolFlags (*PFNNVNMEMORYPOOLGETFLAGSPROC)(const NVNmemoryPool*);
1213typedef NVNboolean (*PFNNVNTEXTUREPOOLINITIALIZEPROC)(NVNtexturePool*, const NVNmemoryPool*,
1214 ptrdiff_t, int);
1215typedef void (*PFNNVNTEXTUREPOOLSETDEBUGLABELPROC)(NVNtexturePool*, const char*);
1216typedef void (*PFNNVNTEXTUREPOOLFINALIZEPROC)(NVNtexturePool*);
1217typedef void (*PFNNVNTEXTUREPOOLREGISTERTEXTUREPROC)(const NVNtexturePool*, int, const NVNtexture*,
1218 const NVNtextureView*);
1219typedef void (*PFNNVNTEXTUREPOOLREGISTERIMAGEPROC)(const NVNtexturePool*, int, const NVNtexture*,
1220 const NVNtextureView*);
1221typedef const NVNmemoryPool* (*PFNNVNTEXTUREPOOLGETMEMORYPOOLPROC)(const NVNtexturePool*);
1222typedef ptrdiff_t (*PFNNVNTEXTUREPOOLGETMEMORYOFFSETPROC)(const NVNtexturePool*);
1223typedef int (*PFNNVNTEXTUREPOOLGETSIZEPROC)(const NVNtexturePool*);
1224typedef NVNboolean (*PFNNVNSAMPLERPOOLINITIALIZEPROC)(NVNsamplerPool*, const NVNmemoryPool*,
1225 ptrdiff_t, int);
1226typedef void (*PFNNVNSAMPLERPOOLSETDEBUGLABELPROC)(NVNsamplerPool*, const char*);
1227typedef void (*PFNNVNSAMPLERPOOLFINALIZEPROC)(NVNsamplerPool*);
1228typedef void (*PFNNVNSAMPLERPOOLREGISTERSAMPLERPROC)(const NVNsamplerPool*, int, const NVNsampler*);
1229typedef void (*PFNNVNSAMPLERPOOLREGISTERSAMPLERBUILDERPROC)(const NVNsamplerPool*, int,
1230 const NVNsamplerBuilder*);
1231typedef const NVNmemoryPool* (*PFNNVNSAMPLERPOOLGETMEMORYPOOLPROC)(const NVNsamplerPool*);
1232typedef ptrdiff_t (*PFNNVNSAMPLERPOOLGETMEMORYOFFSETPROC)(const NVNsamplerPool*);
1233typedef int (*PFNNVNSAMPLERPOOLGETSIZEPROC)(const NVNsamplerPool*);
1234typedef void (*PFNNVNBUFFERBUILDERSETDEVICEPROC)(NVNbufferBuilder*, NVNdevice*);
1235typedef void (*PFNNVNBUFFERBUILDERSETDEFAULTSPROC)(NVNbufferBuilder*);
1236typedef void (*PFNNVNBUFFERBUILDERSETSTORAGEPROC)(NVNbufferBuilder*, NVNmemoryPool*, ptrdiff_t,
1237 size_t);
1238typedef NVNmemoryPool (*PFNNVNBUFFERBUILDERGETMEMORYPOOLPROC)(const NVNbufferBuilder*);
1239typedef ptrdiff_t (*PFNNVNBUFFERBUILDERGETMEMORYOFFSETPROC)(const NVNbufferBuilder*);
1240typedef size_t (*PFNNVNBUFFERBUILDERGETSIZEPROC)(const NVNbufferBuilder*);
1241typedef NVNboolean (*PFNNVNBUFFERINITIALIZEPROC)(NVNbuffer*, const NVNbufferBuilder*);
1242typedef void (*PFNNVNBUFFERSETDEBUGLABELPROC)(NVNbuffer*, const char*);
1243typedef void (*PFNNVNBUFFERFINALIZEPROC)(NVNbuffer*);
1244typedef void* (*PFNNVNBUFFERMAPPROC)(const NVNbuffer*);
1245typedef NVNbufferAddress (*PFNNVNBUFFERGETADDRESSPROC)(const NVNbuffer*);
1246typedef void (*PFNNVNBUFFERFLUSHMAPPEDRANGEPROC)(const NVNbuffer*, ptrdiff_t, size_t);
1247typedef void (*PFNNVNBUFFERINVALIDATEMAPPEDRANGEPROC)(const NVNbuffer*, ptrdiff_t, size_t);
1248typedef NVNmemoryPool* (*PFNNVNBUFFERGETMEMORYPOOLPROC)(const NVNbuffer*);
1249typedef ptrdiff_t (*PFNNVNBUFFERGETMEMORYOFFSETPROC)(const NVNbuffer*);
1250typedef size_t (*PFNNVNBUFFERGETSIZEPROC)(const NVNbuffer*);
1251typedef uint64_t (*PFNNVNBUFFERGETDEBUGIDPROC)(const NVNbuffer*);
1252typedef void (*PFNNVNTEXTUREBUILDERSETDEVICEPROC)(NVNtextureBuilder*, NVNdevice*);
1253typedef void (*PFNNVNTEXTUREBUILDERSETDEFAULTSPROC)(NVNtextureBuilder*);
1254typedef void (*PFNNVNTEXTUREBUILDERSETFLAGSPROC)(NVNtextureBuilder*, int);
1255typedef void (*PFNNVNTEXTUREBUILDERSETTARGETPROC)(NVNtextureBuilder*, NVNtextureTarget);
1256typedef void (*PFNNVNTEXTUREBUILDERSETWIDTHPROC)(NVNtextureBuilder*, int);
1257typedef void (*PFNNVNTEXTUREBUILDERSETHEIGHTPROC)(NVNtextureBuilder*, int);
1258typedef void (*PFNNVNTEXTUREBUILDERSETDEPTHPROC)(NVNtextureBuilder*, int);
1259typedef void (*PFNNVNTEXTUREBUILDERSETSIZE1DPROC)(NVNtextureBuilder*, int);
1260typedef void (*PFNNVNTEXTUREBUILDERSETSIZE2DPROC)(NVNtextureBuilder*, int, int);
1261typedef void (*PFNNVNTEXTUREBUILDERSETSIZE3DPROC)(NVNtextureBuilder*, int, int, int);
1262typedef void (*PFNNVNTEXTUREBUILDERSETLEVELSPROC)(NVNtextureBuilder*, int);
1263typedef void (*PFNNVNTEXTUREBUILDERSETFORMATPROC)(NVNtextureBuilder*, NVNformat);
1264typedef void (*PFNNVNTEXTUREBUILDERSETSAMPLESPROC)(NVNtextureBuilder*, int);
1265typedef void (*PFNNVNTEXTUREBUILDERSETSWIZZLEPROC)(NVNtextureBuilder*, NVNtextureSwizzle,
1266 NVNtextureSwizzle, NVNtextureSwizzle,
1267 NVNtextureSwizzle);
1268typedef void (*PFNNVNTEXTUREBUILDERSETDEPTHSTENCILMODEPROC)(NVNtextureBuilder*,
1269 NVNtextureDepthStencilMode);
1270typedef size_t (*PFNNVNTEXTUREBUILDERGETSTORAGESIZEPROC)(const NVNtextureBuilder*);
1271typedef size_t (*PFNNVNTEXTUREBUILDERGETSTORAGEALIGNMENTPROC)(const NVNtextureBuilder*);
1272typedef void (*PFNNVNTEXTUREBUILDERSETSTORAGEPROC)(NVNtextureBuilder*, NVNmemoryPool*, ptrdiff_t);
1273typedef void (*PFNNVNTEXTUREBUILDERSETPACKAGEDTEXTUREDATAPROC)(NVNtextureBuilder*, const void*);
1274typedef void (*PFNNVNTEXTUREBUILDERSETPACKAGEDTEXTURELAYOUTPROC)(NVNtextureBuilder*,
1275 const NVNpackagedTextureLayout*);
1276typedef void (*PFNNVNTEXTUREBUILDERSETSTRIDEPROC)(NVNtextureBuilder*, ptrdiff_t);
1277typedef void (*PFNNVNTEXTUREBUILDERSETGLTEXTURENAMEPROC)(NVNtextureBuilder*, uint32_t);
1278typedef NVNstorageClass (*PFNNVNTEXTUREBUILDERGETSTORAGECLASSPROC)(const NVNtextureBuilder*);
1279typedef NVNtextureFlags (*PFNNVNTEXTUREBUILDERGETFLAGSPROC)(const NVNtextureBuilder*);
1280typedef NVNtextureTarget (*PFNNVNTEXTUREBUILDERGETTARGETPROC)(const NVNtextureBuilder*);
1281typedef int (*PFNNVNTEXTUREBUILDERGETWIDTHPROC)(const NVNtextureBuilder*);
1282typedef int (*PFNNVNTEXTUREBUILDERGETHEIGHTPROC)(const NVNtextureBuilder*);
1283typedef int (*PFNNVNTEXTUREBUILDERGETDEPTHPROC)(const NVNtextureBuilder*);
1284typedef int (*PFNNVNTEXTUREBUILDERGETLEVELSPROC)(const NVNtextureBuilder*);
1285typedef NVNformat (*PFNNVNTEXTUREBUILDERGETFORMATPROC)(const NVNtextureBuilder*);
1286typedef int (*PFNNVNTEXTUREBUILDERGETSAMPLESPROC)(const NVNtextureBuilder*);
1287typedef void (*PFNNVNTEXTUREBUILDERGETSWIZZLEPROC)(const NVNtextureBuilder*, NVNtextureSwizzle*,
1288 NVNtextureSwizzle*, NVNtextureSwizzle*,
1289 NVNtextureSwizzle*);
1290typedef NVNtextureDepthStencilMode (*PFNNVNTEXTUREBUILDERGETDEPTHSTENCILMODEPROC)(
1291 const NVNtextureBuilder*);
1292typedef const void* (*PFNNVNTEXTUREBUILDERGETPACKAGEDTEXTUREDATAPROC)(const NVNtextureBuilder*);
1293typedef ptrdiff_t (*PFNNVNTEXTUREBUILDERGETSTRIDEPROC)(const NVNtextureBuilder*);
1294typedef void (*PFNNVNTEXTUREBUILDERGETSPARSETILELAYOUTPROC)(const NVNtextureBuilder*,
1295 NVNtextureSparseTileLayout*);
1296typedef uint32_t (*PFNNVNTEXTUREBUILDERGETGLTEXTURENAMEPROC)(const NVNtextureBuilder*);
1297typedef size_t (*PFNNVNTEXTUREBUILDERGETZCULLSTORAGESIZEPROC)(const NVNtextureBuilder*);
1298typedef NVNmemoryPool (*PFNNVNTEXTUREBUILDERGETMEMORYPOOLPROC)(const NVNtextureBuilder*);
1299typedef ptrdiff_t (*PFNNVNTEXTUREBUILDERGETMEMORYOFFSETPROC)(const NVNtextureBuilder*);
1300typedef void (*PFNNVNTEXTUREVIEWSETDEFAULTSPROC)(NVNtextureView*);
1301typedef void (*PFNNVNTEXTUREVIEWSETLEVELSPROC)(NVNtextureView*, int, int);
1302typedef void (*PFNNVNTEXTUREVIEWSETLAYERSPROC)(NVNtextureView*, int, int);
1303typedef void (*PFNNVNTEXTUREVIEWSETFORMATPROC)(NVNtextureView*, NVNformat);
1304typedef void (*PFNNVNTEXTUREVIEWSETSWIZZLEPROC)(NVNtextureView*, NVNtextureSwizzle,
1305 NVNtextureSwizzle, NVNtextureSwizzle,
1306 NVNtextureSwizzle);
1307typedef void (*PFNNVNTEXTUREVIEWSETDEPTHSTENCILMODEPROC)(NVNtextureView*,
1308 NVNtextureDepthStencilMode);
1309typedef void (*PFNNVNTEXTUREVIEWSETTARGETPROC)(NVNtextureView*, NVNtextureTarget);
1310typedef NVNboolean (*PFNNVNTEXTUREVIEWGETLEVELSPROC)(const NVNtextureView*, int*, int*);
1311typedef NVNboolean (*PFNNVNTEXTUREVIEWGETLAYERSPROC)(const NVNtextureView*, int*, int*);
1312typedef NVNboolean (*PFNNVNTEXTUREVIEWGETFORMATPROC)(const NVNtextureView*, NVNformat*);
1313typedef NVNboolean (*PFNNVNTEXTUREVIEWGETSWIZZLEPROC)(const NVNtextureView*, NVNtextureSwizzle*,
1314 NVNtextureSwizzle*, NVNtextureSwizzle*,
1315 NVNtextureSwizzle*);
1316typedef NVNboolean (*PFNNVNTEXTUREVIEWGETDEPTHSTENCILMODEPROC)(const NVNtextureView*,
1317 NVNtextureDepthStencilMode*);
1318typedef NVNboolean (*PFNNVNTEXTUREVIEWGETTARGETPROC)(const NVNtextureView*, NVNtextureTarget*);
1319typedef NVNboolean (*PFNNVNTEXTUREVIEWCOMPAREPROC)(const NVNtextureView*, const NVNtextureView*);
1320typedef NVNboolean (*PFNNVNTEXTUREINITIALIZEPROC)(NVNtexture*, const NVNtextureBuilder*);
1321typedef size_t (*PFNNVNTEXTUREGETZCULLSTORAGESIZEPROC)(const NVNtexture*);
1322typedef void (*PFNNVNTEXTUREFINALIZEPROC)(NVNtexture*);
1323typedef void (*PFNNVNTEXTURESETDEBUGLABELPROC)(NVNtexture*, const char*);
1324typedef NVNstorageClass (*PFNNVNTEXTUREGETSTORAGECLASSPROC)(const NVNtexture*);
1325typedef ptrdiff_t (*PFNNVNTEXTUREGETVIEWOFFSETPROC)(const NVNtexture*, const NVNtextureView*);
1326typedef NVNtextureFlags (*PFNNVNTEXTUREGETFLAGSPROC)(const NVNtexture*);
1327typedef NVNtextureTarget (*PFNNVNTEXTUREGETTARGETPROC)(const NVNtexture*);
1328typedef int (*PFNNVNTEXTUREGETWIDTHPROC)(const NVNtexture*);
1329typedef int (*PFNNVNTEXTUREGETHEIGHTPROC)(const NVNtexture*);
1330typedef int (*PFNNVNTEXTUREGETDEPTHPROC)(const NVNtexture*);
1331typedef int (*PFNNVNTEXTUREGETLEVELSPROC)(const NVNtexture*);
1332typedef NVNformat (*PFNNVNTEXTUREGETFORMATPROC)(const NVNtexture*);
1333typedef int (*PFNNVNTEXTUREGETSAMPLESPROC)(const NVNtexture*);
1334typedef void (*PFNNVNTEXTUREGETSWIZZLEPROC)(const NVNtexture*, NVNtextureSwizzle*,
1335 NVNtextureSwizzle*, NVNtextureSwizzle*,
1336 NVNtextureSwizzle*);
1337typedef NVNtextureDepthStencilMode (*PFNNVNTEXTUREGETDEPTHSTENCILMODEPROC)(const NVNtexture*);
1338typedef ptrdiff_t (*PFNNVNTEXTUREGETSTRIDEPROC)(const NVNtexture*);
1339typedef NVNtextureAddress (*PFNNVNTEXTUREGETTEXTUREADDRESSPROC)(const NVNtexture*);
1340typedef void (*PFNNVNTEXTUREGETSPARSETILELAYOUTPROC)(const NVNtexture*,
1341 NVNtextureSparseTileLayout*);
1342typedef void (*PFNNVNTEXTUREWRITETEXELSPROC)(const NVNtexture*, const NVNtextureView*,
1343 const NVNcopyRegion*, const void*);
1344typedef void (*PFNNVNTEXTUREWRITETEXELSSTRIDEDPROC)(const NVNtexture*, const NVNtextureView*,
1345 const NVNcopyRegion*, const void*, ptrdiff_t,
1346 ptrdiff_t);
1347typedef void (*PFNNVNTEXTUREREADTEXELSPROC)(const NVNtexture*, const NVNtextureView*,
1348 const NVNcopyRegion*, void*);
1349typedef void (*PFNNVNTEXTUREREADTEXELSSTRIDEDPROC)(const NVNtexture*, const NVNtextureView*,
1350 const NVNcopyRegion*, void*, ptrdiff_t,
1351 ptrdiff_t);
1352typedef void (*PFNNVNTEXTUREFLUSHTEXELSPROC)(const NVNtexture*, const NVNtextureView*,
1353 const NVNcopyRegion*);
1354typedef void (*PFNNVNTEXTUREINVALIDATETEXELSPROC)(const NVNtexture*, const NVNtextureView*,
1355 const NVNcopyRegion*);
1356typedef NVNmemoryPool (*PFNNVNTEXTUREGETMEMORYPOOLPROC)(const NVNtexture*);
1357typedef ptrdiff_t (*PFNNVNTEXTUREGETMEMORYOFFSETPROC)(const NVNtexture*);
1358typedef int (*PFNNVNTEXTUREGETSTORAGESIZEPROC)(const NVNtexture*);
1359typedef NVNboolean (*PFNNVNTEXTURECOMPAREPROC)(const NVNtexture*, const NVNtexture*);
1360typedef uint64_t (*PFNNVNTEXTUREGETDEBUGIDPROC)(const NVNtexture*);
1361typedef void (*PFNNVNSAMPLERBUILDERSETDEVICEPROC)(NVNsamplerBuilder*, NVNdevice*);
1362typedef void (*PFNNVNSAMPLERBUILDERSETDEFAULTSPROC)(NVNsamplerBuilder*);
1363typedef void (*PFNNVNSAMPLERBUILDERSETMINMAGFILTERPROC)(NVNsamplerBuilder*, NVNminFilter,
1364 NVNmagFilter);
1365typedef void (*PFNNVNSAMPLERBUILDERSETWRAPMODEPROC)(NVNsamplerBuilder*, NVNwrapMode, NVNwrapMode,
1366 NVNwrapMode);
1367typedef void (*PFNNVNSAMPLERBUILDERSETLODCLAMPPROC)(NVNsamplerBuilder*, float, float);
1368typedef void (*PFNNVNSAMPLERBUILDERSETLODBIASPROC)(NVNsamplerBuilder*, float);
1369typedef void (*PFNNVNSAMPLERBUILDERSETCOMPAREPROC)(NVNsamplerBuilder*, NVNcompareMode,
1370 NVNcompareFunc);
1371typedef void (*PFNNVNSAMPLERBUILDERSETBORDERCOLORPROC)(NVNsamplerBuilder*, const float*);
1372typedef void (*PFNNVNSAMPLERBUILDERSETBORDERCOLORIPROC)(NVNsamplerBuilder*, const int*);
1373typedef void (*PFNNVNSAMPLERBUILDERSETBORDERCOLORUIPROC)(NVNsamplerBuilder*, const uint32_t*);
1374typedef void (*PFNNVNSAMPLERBUILDERSETMAXANISOTROPYPROC)(NVNsamplerBuilder*, float);
1375typedef void (*PFNNVNSAMPLERBUILDERSETREDUCTIONFILTERPROC)(NVNsamplerBuilder*, NVNsamplerReduction);
1376typedef void (*PFNNVNSAMPLERBUILDERSETLODSNAPPROC)(NVNsamplerBuilder*, float);
1377typedef void (*PFNNVNSAMPLERBUILDERGETMINMAGFILTERPROC)(const NVNsamplerBuilder*, NVNminFilter*,
1378 NVNmagFilter*);
1379typedef void (*PFNNVNSAMPLERBUILDERGETWRAPMODEPROC)(const NVNsamplerBuilder*, NVNwrapMode*,
1380 NVNwrapMode*, NVNwrapMode*);
1381typedef void (*PFNNVNSAMPLERBUILDERGETLODCLAMPPROC)(const NVNsamplerBuilder*, float*, float*);
1382typedef float (*PFNNVNSAMPLERBUILDERGETLODBIASPROC)(const NVNsamplerBuilder*);
1383typedef void (*PFNNVNSAMPLERBUILDERGETCOMPAREPROC)(const NVNsamplerBuilder*, NVNcompareMode*,
1384 NVNcompareFunc*);
1385typedef void (*PFNNVNSAMPLERBUILDERGETBORDERCOLORPROC)(const NVNsamplerBuilder*, float*);
1386typedef void (*PFNNVNSAMPLERBUILDERGETBORDERCOLORIPROC)(const NVNsamplerBuilder*, int*);
1387typedef void (*PFNNVNSAMPLERBUILDERGETBORDERCOLORUIPROC)(const NVNsamplerBuilder*, uint32_t*);
1388typedef float (*PFNNVNSAMPLERBUILDERGETMAXANISOTROPYPROC)(const NVNsamplerBuilder*);
1389typedef NVNsamplerReduction (*PFNNVNSAMPLERBUILDERGETREDUCTIONFILTERPROC)(const NVNsamplerBuilder*);
1390typedef float (*PFNNVNSAMPLERBUILDERGETLODSNAPPROC)(const NVNsamplerBuilder*);
1391typedef NVNboolean (*PFNNVNSAMPLERINITIALIZEPROC)(NVNsampler*, const NVNsamplerBuilder*);
1392typedef void (*PFNNVNSAMPLERFINALIZEPROC)(NVNsampler*);
1393typedef void (*PFNNVNSAMPLERSETDEBUGLABELPROC)(NVNsampler*, const char*);
1394typedef void (*PFNNVNSAMPLERGETMINMAGFILTERPROC)(const NVNsampler*, NVNminFilter*, NVNmagFilter*);
1395typedef void (*PFNNVNSAMPLERGETWRAPMODEPROC)(const NVNsampler*, NVNwrapMode*, NVNwrapMode*,
1396 NVNwrapMode*);
1397typedef void (*PFNNVNSAMPLERGETLODCLAMPPROC)(const NVNsampler*, float*, float*);
1398typedef float (*PFNNVNSAMPLERGETLODBIASPROC)(const NVNsampler*);
1399typedef void (*PFNNVNSAMPLERGETCOMPAREPROC)(const NVNsampler*, NVNcompareMode*, NVNcompareFunc*);
1400typedef void (*PFNNVNSAMPLERGETBORDERCOLORPROC)(const NVNsampler*, float*);
1401typedef void (*PFNNVNSAMPLERGETBORDERCOLORIPROC)(const NVNsampler*, int*);
1402typedef void (*PFNNVNSAMPLERGETBORDERCOLORUIPROC)(const NVNsampler*, uint32_t*);
1403typedef float (*PFNNVNSAMPLERGETMAXANISOTROPYPROC)(const NVNsampler*);
1404typedef NVNsamplerReduction (*PFNNVNSAMPLERGETREDUCTIONFILTERPROC)(const NVNsampler*);
1405typedef NVNboolean (*PFNNVNSAMPLERCOMPAREPROC)(const NVNsampler*, const NVNsampler*);
1406typedef uint64_t (*PFNNVNSAMPLERGETDEBUGIDPROC)(const NVNsampler*);
1407typedef void (*PFNNVNBLENDSTATESETDEFAULTSPROC)(NVNblendState*);
1408typedef void (*PFNNVNBLENDSTATESETBLENDTARGETPROC)(NVNblendState*, int);
1409typedef void (*PFNNVNBLENDSTATESETBLENDFUNCPROC)(NVNblendState*, NVNblendFunc, NVNblendFunc,
1410 NVNblendFunc, NVNblendFunc);
1411typedef void (*PFNNVNBLENDSTATESETBLENDEQUATIONPROC)(NVNblendState*, NVNblendEquation,
1412 NVNblendEquation);
1413typedef void (*PFNNVNBLENDSTATESETADVANCEDMODEPROC)(NVNblendState*, NVNblendAdvancedMode);
1414typedef void (*PFNNVNBLENDSTATESETADVANCEDOVERLAPPROC)(NVNblendState*, NVNblendAdvancedOverlap);
1415typedef void (*PFNNVNBLENDSTATESETADVANCEDPREMULTIPLIEDSRCPROC)(NVNblendState*, NVNboolean);
1416typedef void (*PFNNVNBLENDSTATESETADVANCEDNORMALIZEDDSTPROC)(NVNblendState*, NVNboolean);
1417typedef int (*PFNNVNBLENDSTATEGETBLENDTARGETPROC)(const NVNblendState*);
1418typedef void (*PFNNVNBLENDSTATEGETBLENDFUNCPROC)(const NVNblendState*, NVNblendFunc*, NVNblendFunc*,
1419 NVNblendFunc*, NVNblendFunc*);
1420typedef void (*PFNNVNBLENDSTATEGETBLENDEQUATIONPROC)(const NVNblendState*, NVNblendEquation*,
1421 NVNblendEquation*);
1422typedef NVNblendAdvancedMode (*PFNNVNBLENDSTATEGETADVANCEDMODEPROC)(const NVNblendState*);
1423typedef NVNblendAdvancedOverlap (*PFNNVNBLENDSTATEGETADVANCEDOVERLAPPROC)(const NVNblendState*);
1424typedef NVNboolean (*PFNNVNBLENDSTATEGETADVANCEDPREMULTIPLIEDSRCPROC)(const NVNblendState*);
1425typedef NVNboolean (*PFNNVNBLENDSTATEGETADVANCEDNORMALIZEDDSTPROC)(const NVNblendState*);
1426typedef void (*PFNNVNCOLORSTATESETDEFAULTSPROC)(NVNcolorState*);
1427typedef void (*PFNNVNCOLORSTATESETBLENDENABLEPROC)(NVNcolorState*, int, NVNboolean);
1428typedef void (*PFNNVNCOLORSTATESETLOGICOPPROC)(NVNcolorState*, NVNlogicOp);
1429typedef void (*PFNNVNCOLORSTATESETALPHATESTPROC)(NVNcolorState*, NVNalphaFunc);
1430typedef NVNboolean (*PFNNVNCOLORSTATEGETBLENDENABLEPROC)(const NVNcolorState*, int);
1431typedef NVNlogicOp (*PFNNVNCOLORSTATEGETLOGICOPPROC)(const NVNcolorState*);
1432typedef NVNalphaFunc (*PFNNVNCOLORSTATEGETALPHATESTPROC)(const NVNcolorState*);
1433typedef void (*PFNNVNCHANNELMASKSTATESETDEFAULTSPROC)(NVNchannelMaskState*);
1434typedef void (*PFNNVNCHANNELMASKSTATESETCHANNELMASKPROC)(NVNchannelMaskState*, int, NVNboolean,
1435 NVNboolean, NVNboolean, NVNboolean);
1436typedef void (*PFNNVNCHANNELMASKSTATEGETCHANNELMASKPROC)(const NVNchannelMaskState*, int,
1437 NVNboolean*, NVNboolean*, NVNboolean*,
1438 NVNboolean*);
1439typedef void (*PFNNVNMULTISAMPLESTATESETDEFAULTSPROC)(NVNmultisampleState*);
1440typedef void (*PFNNVNMULTISAMPLESTATESETMULTISAMPLEENABLEPROC)(NVNmultisampleState*, NVNboolean);
1441typedef void (*PFNNVNMULTISAMPLESTATESETSAMPLESPROC)(NVNmultisampleState*, int);
1442typedef void (*PFNNVNMULTISAMPLESTATESETALPHATOCOVERAGEENABLEPROC)(NVNmultisampleState*,
1443 NVNboolean);
1444typedef void (*PFNNVNMULTISAMPLESTATESETALPHATOCOVERAGEDITHERPROC)(NVNmultisampleState*,
1445 NVNboolean);
1446typedef NVNboolean (*PFNNVNMULTISAMPLESTATEGETMULTISAMPLEENABLEPROC)(const NVNmultisampleState*);
1447typedef int (*PFNNVNMULTISAMPLESTATEGETSAMPLESPROC)(const NVNmultisampleState*);
1448typedef NVNboolean (*PFNNVNMULTISAMPLESTATEGETALPHATOCOVERAGEENABLEPROC)(
1449 const NVNmultisampleState*);
1450typedef NVNboolean (*PFNNVNMULTISAMPLESTATEGETALPHATOCOVERAGEDITHERPROC)(
1451 const NVNmultisampleState*);
1452typedef void (*PFNNVNMULTISAMPLESTATESETRASTERSAMPLESPROC)(NVNmultisampleState*, int);
1453typedef int (*PFNNVNMULTISAMPLESTATEGETRASTERSAMPLESPROC)(NVNmultisampleState*);
1454typedef void (*PFNNVNMULTISAMPLESTATESETCOVERAGEMODULATIONMODEPROC)(NVNmultisampleState*,
1455 NVNcoverageModulationMode);
1456typedef NVNcoverageModulationMode (*PFNNVNMULTISAMPLESTATEGETCOVERAGEMODULATIONMODEPROC)(
1457 const NVNmultisampleState*);
1458typedef void (*PFNNVNMULTISAMPLESTATESETCOVERAGETOCOLORENABLEPROC)(NVNmultisampleState*,
1459 NVNboolean);
1460typedef NVNboolean (*PFNNVNMULTISAMPLESTATEGETCOVERAGETOCOLORENABLEPROC)(
1461 const NVNmultisampleState*);
1462typedef void (*PFNNVNMULTISAMPLESTATESETCOVERAGETOCOLOROUTPUTPROC)(NVNmultisampleState*, int);
1463typedef int (*PFNNVNMULTISAMPLESTATEGETCOVERAGETOCOLOROUTPUTPROC)(const NVNmultisampleState*);
1464typedef void (*PFNNVNMULTISAMPLESTATESETSAMPLELOCATIONSENABLEPROC)(NVNmultisampleState*,
1465 NVNboolean);
1466typedef NVNboolean (*PFNNVNMULTISAMPLESTATEGETSAMPLELOCATIONSENABLEPROC)(
1467 const NVNmultisampleState*);
1468typedef void (*PFNNVNMULTISAMPLESTATEGETSAMPLELOCATIONSGRIDPROC)(NVNmultisampleState*, int*, int*);
1469typedef void (*PFNNVNMULTISAMPLESTATESETSAMPLELOCATIONSGRIDENABLEPROC)(NVNmultisampleState*,
1470 NVNboolean);
1471typedef NVNboolean (*PFNNVNMULTISAMPLESTATEGETSAMPLELOCATIONSGRIDENABLEPROC)(
1472 const NVNmultisampleState*);
1473typedef void (*PFNNVNMULTISAMPLESTATESETSAMPLELOCATIONSPROC)(NVNmultisampleState*, int, int,
1474 const float*);
1475typedef void (*PFNNVNPOLYGONSTATESETDEFAULTSPROC)(NVNpolygonState*);
1476typedef void (*PFNNVNPOLYGONSTATESETCULLFACEPROC)(NVNpolygonState*, NVNface);
1477typedef void (*PFNNVNPOLYGONSTATESETFRONTFACEPROC)(NVNpolygonState*, NVNfrontFace);
1478typedef void (*PFNNVNPOLYGONSTATESETPOLYGONMODEPROC)(NVNpolygonState*, NVNpolygonMode);
1479typedef void (*PFNNVNPOLYGONSTATESETPOLYGONOFFSETENABLESPROC)(NVNpolygonState*, int);
1480typedef NVNface (*PFNNVNPOLYGONSTATEGETCULLFACEPROC)(const NVNpolygonState*);
1481typedef NVNfrontFace (*PFNNVNPOLYGONSTATEGETFRONTFACEPROC)(const NVNpolygonState*);
1482typedef NVNpolygonMode (*PFNNVNPOLYGONSTATEGETPOLYGONMODEPROC)(const NVNpolygonState*);
1483typedef NVNpolygonOffsetEnable (*PFNNVNPOLYGONSTATEGETPOLYGONOFFSETENABLESPROC)(
1484 const NVNpolygonState*);
1485typedef void (*PFNNVNDEPTHSTENCILSTATESETDEFAULTSPROC)(NVNdepthStencilState*);
1486typedef void (*PFNNVNDEPTHSTENCILSTATESETDEPTHTESTENABLEPROC)(NVNdepthStencilState*, NVNboolean);
1487typedef void (*PFNNVNDEPTHSTENCILSTATESETDEPTHWRITEENABLEPROC)(NVNdepthStencilState*, NVNboolean);
1488typedef void (*PFNNVNDEPTHSTENCILSTATESETDEPTHFUNCPROC)(NVNdepthStencilState*, NVNdepthFunc);
1489typedef void (*PFNNVNDEPTHSTENCILSTATESETSTENCILTESTENABLEPROC)(NVNdepthStencilState*, NVNboolean);
1490typedef void (*PFNNVNDEPTHSTENCILSTATESETSTENCILFUNCPROC)(NVNdepthStencilState*, NVNface,
1491 NVNstencilFunc);
1492typedef void (*PFNNVNDEPTHSTENCILSTATESETSTENCILOPPROC)(NVNdepthStencilState*, NVNface,
1493 NVNstencilOp, NVNstencilOp, NVNstencilOp);
1494typedef NVNboolean (*PFNNVNDEPTHSTENCILSTATEGETDEPTHTESTENABLEPROC)(const NVNdepthStencilState*);
1495typedef NVNboolean (*PFNNVNDEPTHSTENCILSTATEGETDEPTHWRITEENABLEPROC)(const NVNdepthStencilState*);
1496typedef NVNdepthFunc (*PFNNVNDEPTHSTENCILSTATEGETDEPTHFUNCPROC)(const NVNdepthStencilState*);
1497typedef NVNboolean (*PFNNVNDEPTHSTENCILSTATEGETSTENCILTESTENABLEPROC)(const NVNdepthStencilState*);
1498typedef NVNstencilFunc (*PFNNVNDEPTHSTENCILSTATEGETSTENCILFUNCPROC)(const NVNdepthStencilState*,
1499 NVNface);
1500typedef void (*PFNNVNDEPTHSTENCILSTATEGETSTENCILOPPROC)(const NVNdepthStencilState*, NVNface,
1501 NVNstencilOp*, NVNstencilOp*,
1502 NVNstencilOp*);
1503typedef void (*PFNNVNVERTEXATTRIBSTATESETDEFAULTSPROC)(NVNvertexAttribState*);
1504typedef void (*PFNNVNVERTEXATTRIBSTATESETFORMATPROC)(NVNvertexAttribState*, NVNformat, ptrdiff_t);
1505typedef void (*PFNNVNVERTEXATTRIBSTATESETSTREAMINDEXPROC)(NVNvertexAttribState*, int);
1506typedef void (*PFNNVNVERTEXATTRIBSTATEGETFORMATPROC)(const NVNvertexAttribState*, NVNformat*,
1507 ptrdiff_t*);
1508typedef int (*PFNNVNVERTEXATTRIBSTATEGETSTREAMINDEXPROC)(const NVNvertexAttribState*);
1509typedef void (*PFNNVNVERTEXSTREAMSTATESETDEFAULTSPROC)(NVNvertexStreamState*);
1510typedef void (*PFNNVNVERTEXSTREAMSTATESETSTRIDEPROC)(NVNvertexStreamState*, ptrdiff_t);
1511typedef void (*PFNNVNVERTEXSTREAMSTATESETDIVISORPROC)(NVNvertexStreamState*, int);
1512typedef ptrdiff_t (*PFNNVNVERTEXSTREAMSTATEGETSTRIDEPROC)(const NVNvertexStreamState*);
1513typedef int (*PFNNVNVERTEXSTREAMSTATEGETDIVISORPROC)(const NVNvertexStreamState*);
1514typedef NVNboolean (*PFNNVNCOMMANDBUFFERINITIALIZEPROC)(NVNcommandBuffer*, NVNdevice*);
1515typedef void (*PFNNVNCOMMANDBUFFERFINALIZEPROC)(NVNcommandBuffer*);
1516typedef void (*PFNNVNCOMMANDBUFFERSETDEBUGLABELPROC)(NVNcommandBuffer*, const char*);
1517typedef void (*PFNNVNCOMMANDBUFFERSETMEMORYCALLBACKPROC)(NVNcommandBuffer*,
1518 PFNNVNCOMMANDBUFFERMEMORYCALLBACKPROC);
1519typedef void (*PFNNVNCOMMANDBUFFERSETMEMORYCALLBACKDATAPROC)(NVNcommandBuffer*, void*);
1520typedef void (*PFNNVNCOMMANDBUFFERADDCOMMANDMEMORYPROC)(NVNcommandBuffer*, const NVNmemoryPool*,
1521 ptrdiff_t, size_t);
1522typedef void (*PFNNVNCOMMANDBUFFERADDCONTROLMEMORYPROC)(NVNcommandBuffer*, void*, size_t);
1523typedef size_t (*PFNNVNCOMMANDBUFFERGETCOMMANDMEMORYSIZEPROC)(const NVNcommandBuffer*);
1524typedef size_t (*PFNNVNCOMMANDBUFFERGETCOMMANDMEMORYUSEDPROC)(const NVNcommandBuffer*);
1525typedef size_t (*PFNNVNCOMMANDBUFFERGETCOMMANDMEMORYFREEPROC)(const NVNcommandBuffer*);
1526typedef size_t (*PFNNVNCOMMANDBUFFERGETCONTROLMEMORYSIZEPROC)(const NVNcommandBuffer*);
1527typedef size_t (*PFNNVNCOMMANDBUFFERGETCONTROLMEMORYUSEDPROC)(const NVNcommandBuffer*);
1528typedef size_t (*PFNNVNCOMMANDBUFFERGETCONTROLMEMORYFREEPROC)(const NVNcommandBuffer*);
1529typedef void (*PFNNVNCOMMANDBUFFERBEGINRECORDINGPROC)(NVNcommandBuffer*);
1530typedef NVNcommandHandle (*PFNNVNCOMMANDBUFFERENDRECORDINGPROC)(NVNcommandBuffer*);
1531typedef void (*PFNNVNCOMMANDBUFFERCALLCOMMANDSPROC)(NVNcommandBuffer*, int,
1532 const NVNcommandHandle*);
1533typedef void (*PFNNVNCOMMANDBUFFERCOPYCOMMANDSPROC)(NVNcommandBuffer*, int,
1534 const NVNcommandHandle*);
1535typedef void (*PFNNVNCOMMANDBUFFERBINDBLENDSTATEPROC)(NVNcommandBuffer*, const NVNblendState*);
1536typedef void (*PFNNVNCOMMANDBUFFERBINDCHANNELMASKSTATEPROC)(NVNcommandBuffer*,
1537 const NVNchannelMaskState*);
1538typedef void (*PFNNVNCOMMANDBUFFERBINDCOLORSTATEPROC)(NVNcommandBuffer*, const NVNcolorState*);
1539typedef void (*PFNNVNCOMMANDBUFFERBINDMULTISAMPLESTATEPROC)(NVNcommandBuffer*,
1540 const NVNmultisampleState*);
1541typedef void (*PFNNVNCOMMANDBUFFERBINDPOLYGONSTATEPROC)(NVNcommandBuffer*, const NVNpolygonState*);
1542typedef void (*PFNNVNCOMMANDBUFFERBINDDEPTHSTENCILSTATEPROC)(NVNcommandBuffer*,
1543 const NVNdepthStencilState*);
1544typedef void (*PFNNVNCOMMANDBUFFERBINDVERTEXATTRIBSTATEPROC)(NVNcommandBuffer*, int,
1545 const NVNvertexAttribState*);
1546typedef void (*PFNNVNCOMMANDBUFFERBINDVERTEXSTREAMSTATEPROC)(NVNcommandBuffer*, int,
1547 const NVNvertexStreamState*);
1548typedef void (*PFNNVNCOMMANDBUFFERBINDPROGRAMPROC)(NVNcommandBuffer*, const NVNprogram*, int);
1549typedef void (*PFNNVNCOMMANDBUFFERBINDVERTEXBUFFERPROC)(NVNcommandBuffer*, int, NVNbufferAddress,
1550 size_t);
1551typedef void (*PFNNVNCOMMANDBUFFERBINDVERTEXBUFFERSPROC)(NVNcommandBuffer*, int, int,
1552 const NVNbufferRange*);
1553typedef void (*PFNNVNCOMMANDBUFFERBINDUNIFORMBUFFERPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1554 NVNbufferAddress, size_t);
1555typedef void (*PFNNVNCOMMANDBUFFERBINDUNIFORMBUFFERSPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1556 int, const NVNbufferRange*);
1557typedef void (*PFNNVNCOMMANDBUFFERBINDTRANSFORMFEEDBACKBUFFERPROC)(NVNcommandBuffer*, int,
1558 NVNbufferAddress, size_t);
1559typedef void (*PFNNVNCOMMANDBUFFERBINDTRANSFORMFEEDBACKBUFFERSPROC)(NVNcommandBuffer*, int, int,
1560 const NVNbufferRange*);
1561typedef void (*PFNNVNCOMMANDBUFFERBINDSTORAGEBUFFERPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1562 NVNbufferAddress, size_t);
1563typedef void (*PFNNVNCOMMANDBUFFERBINDSTORAGEBUFFERSPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1564 int, const NVNbufferRange*);
1565typedef void (*PFNNVNCOMMANDBUFFERBINDTEXTUREPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1566 NVNtextureHandle);
1567typedef void (*PFNNVNCOMMANDBUFFERBINDTEXTURESPROC)(NVNcommandBuffer*, NVNshaderStage, int, int,
1568 const NVNtextureHandle*);
1569typedef void (*PFNNVNCOMMANDBUFFERBINDIMAGEPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1570 NVNimageHandle);
1571typedef void (*PFNNVNCOMMANDBUFFERBINDIMAGESPROC)(NVNcommandBuffer*, NVNshaderStage, int, int,
1572 const NVNimageHandle*);
1573typedef void (*PFNNVNCOMMANDBUFFERSETPATCHSIZEPROC)(NVNcommandBuffer*, int);
1574typedef void (*PFNNVNCOMMANDBUFFERSETINNERTESSELLATIONLEVELSPROC)(NVNcommandBuffer*, const float*);
1575typedef void (*PFNNVNCOMMANDBUFFERSETOUTERTESSELLATIONLEVELSPROC)(NVNcommandBuffer*, const float*);
1576typedef void (*PFNNVNCOMMANDBUFFERSETPRIMITIVERESTARTPROC)(NVNcommandBuffer*, NVNboolean, int);
1577typedef void (*PFNNVNCOMMANDBUFFERBEGINTRANSFORMFEEDBACKPROC)(NVNcommandBuffer*, NVNbufferAddress);
1578typedef void (*PFNNVNCOMMANDBUFFERENDTRANSFORMFEEDBACKPROC)(NVNcommandBuffer*, NVNbufferAddress);
1579typedef void (*PFNNVNCOMMANDBUFFERPAUSETRANSFORMFEEDBACKPROC)(NVNcommandBuffer*, NVNbufferAddress);
1580typedef void (*PFNNVNCOMMANDBUFFERRESUMETRANSFORMFEEDBACKPROC)(NVNcommandBuffer*, NVNbufferAddress);
1581typedef void (*PFNNVNCOMMANDBUFFERDRAWTRANSFORMFEEDBACKPROC)(NVNcommandBuffer*, NVNdrawPrimitive,
1582 NVNbufferAddress);
1583typedef void (*PFNNVNCOMMANDBUFFERDRAWARRAYSPROC)(NVNcommandBuffer*, NVNdrawPrimitive, int, int);
1584typedef void (*PFNNVNCOMMANDBUFFERDRAWELEMENTSPROC)(NVNcommandBuffer*, NVNdrawPrimitive,
1585 NVNindexType, int, NVNbufferAddress);
1586typedef void (*PFNNVNCOMMANDBUFFERDRAWELEMENTSBASEVERTEXPROC)(NVNcommandBuffer*, NVNdrawPrimitive,
1587 NVNindexType, int, NVNbufferAddress,
1588 int);
1589typedef void (*PFNNVNCOMMANDBUFFERDRAWARRAYSINSTANCEDPROC)(NVNcommandBuffer*, NVNdrawPrimitive, int,
1590 int, int, int);
1591typedef void (*PFNNVNCOMMANDBUFFERDRAWELEMENTSINSTANCEDPROC)(NVNcommandBuffer*, NVNdrawPrimitive,
1592 NVNindexType, int, NVNbufferAddress,
1593 int, int, int);
1594typedef void (*PFNNVNCOMMANDBUFFERDRAWARRAYSINDIRECTPROC)(NVNcommandBuffer*, NVNdrawPrimitive,
1595 NVNbufferAddress);
1596typedef void (*PFNNVNCOMMANDBUFFERDRAWELEMENTSINDIRECTPROC)(NVNcommandBuffer*, NVNdrawPrimitive,
1597 NVNindexType, NVNbufferAddress,
1598 NVNbufferAddress);
1599typedef void (*PFNNVNCOMMANDBUFFERMULTIDRAWARRAYSINDIRECTCOUNTPROC)(
1600 NVNcommandBuffer*, NVNdrawPrimitive, NVNbufferAddress, NVNbufferAddress, int, ptrdiff_t);
1601typedef void (*PFNNVNCOMMANDBUFFERMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(
1602 NVNcommandBuffer*, NVNdrawPrimitive, NVNindexType, NVNbufferAddress, NVNbufferAddress,
1603 NVNbufferAddress, int, ptrdiff_t);
1604typedef void (*PFNNVNCOMMANDBUFFERCLEARCOLORPROC)(NVNcommandBuffer*, int, const float*, int);
1605typedef void (*PFNNVNCOMMANDBUFFERCLEARCOLORIPROC)(NVNcommandBuffer*, int, const int*, int);
1606typedef void (*PFNNVNCOMMANDBUFFERCLEARCOLORUIPROC)(NVNcommandBuffer*, int, const uint32_t*, int);
1607typedef void (*PFNNVNCOMMANDBUFFERCLEARDEPTHSTENCILPROC)(NVNcommandBuffer*, float, NVNboolean, int,
1608 int);
1609typedef void (*PFNNVNCOMMANDBUFFERDISPATCHCOMPUTEPROC)(NVNcommandBuffer*, int, int, int);
1610typedef void (*PFNNVNCOMMANDBUFFERDISPATCHCOMPUTEINDIRECTPROC)(NVNcommandBuffer*, NVNbufferAddress);
1611typedef void (*PFNNVNCOMMANDBUFFERSETVIEWPORTPROC)(NVNcommandBuffer*, int, int, int, int);
1612typedef void (*PFNNVNCOMMANDBUFFERSETVIEWPORTSPROC)(NVNcommandBuffer*, int, int, const float*);
1613typedef void (*PFNNVNCOMMANDBUFFERSETVIEWPORTSWIZZLESPROC)(NVNcommandBuffer*, int, int,
1614 const NVNviewportSwizzle*);
1615typedef void (*PFNNVNCOMMANDBUFFERSETSCISSORPROC)(NVNcommandBuffer*, int, int, int, int);
1616typedef void (*PFNNVNCOMMANDBUFFERSETSCISSORSPROC)(NVNcommandBuffer*, int, int, const int*);
1617typedef void (*PFNNVNCOMMANDBUFFERSETDEPTHRANGEPROC)(NVNcommandBuffer*, float, float);
1618typedef void (*PFNNVNCOMMANDBUFFERSETDEPTHBOUNDSPROC)(NVNcommandBuffer*, NVNboolean, float, float);
1619typedef void (*PFNNVNCOMMANDBUFFERSETDEPTHRANGESPROC)(NVNcommandBuffer*, int, int, const float*);
1620typedef void (*PFNNVNCOMMANDBUFFERSETTILEDCACHEACTIONPROC)(NVNcommandBuffer*, NVNtiledCacheAction);
1621typedef void (*PFNNVNCOMMANDBUFFERSETTILEDCACHETILESIZEPROC)(NVNcommandBuffer*, int, int);
1622typedef void (*PFNNVNCOMMANDBUFFERBINDSEPARATETEXTUREPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1623 NVNseparateTextureHandle);
1624typedef void (*PFNNVNCOMMANDBUFFERBINDSEPARATESAMPLERPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1625 NVNseparateSamplerHandle);
1626typedef void (*PFNNVNCOMMANDBUFFERBINDSEPARATETEXTURESPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1627 int, const NVNseparateTextureHandle*);
1628typedef void (*PFNNVNCOMMANDBUFFERBINDSEPARATESAMPLERSPROC)(NVNcommandBuffer*, NVNshaderStage, int,
1629 int, const NVNseparateSamplerHandle*);
1630typedef void (*PFNNVNCOMMANDBUFFERSETSTENCILVALUEMASKPROC)(NVNcommandBuffer*, NVNface, int);
1631typedef void (*PFNNVNCOMMANDBUFFERSETSTENCILMASKPROC)(NVNcommandBuffer*, NVNface, int);
1632typedef void (*PFNNVNCOMMANDBUFFERSETSTENCILREFPROC)(NVNcommandBuffer*, NVNface, int);
1633typedef void (*PFNNVNCOMMANDBUFFERSETBLENDCOLORPROC)(NVNcommandBuffer*, const float*);
1634typedef void (*PFNNVNCOMMANDBUFFERSETPOINTSIZEPROC)(NVNcommandBuffer*, float);
1635typedef void (*PFNNVNCOMMANDBUFFERSETLINEWIDTHPROC)(NVNcommandBuffer*, float);
1636typedef void (*PFNNVNCOMMANDBUFFERSETPOLYGONOFFSETCLAMPPROC)(NVNcommandBuffer*, float, float,
1637 float);
1638typedef void (*PFNNVNCOMMANDBUFFERSETALPHAREFPROC)(NVNcommandBuffer*, float);
1639typedef void (*PFNNVNCOMMANDBUFFERSETSAMPLEMASKPROC)(NVNcommandBuffer*, int);
1640typedef void (*PFNNVNCOMMANDBUFFERSETRASTERIZERDISCARDPROC)(NVNcommandBuffer*, NVNboolean);
1641typedef void (*PFNNVNCOMMANDBUFFERSETDEPTHCLAMPPROC)(NVNcommandBuffer*, NVNboolean);
1642typedef void (*PFNNVNCOMMANDBUFFERSETCONSERVATIVERASTERENABLEPROC)(NVNcommandBuffer*, NVNboolean);
1643typedef void (*PFNNVNCOMMANDBUFFERSETCONSERVATIVERASTERDILATEPROC)(NVNcommandBuffer*, float);
1644typedef void (*PFNNVNCOMMANDBUFFERSETSUBPIXELPRECISIONBIASPROC)(NVNcommandBuffer*, int, int);
1645typedef void (*PFNNVNCOMMANDBUFFERCOPYBUFFERTOTEXTUREPROC)(NVNcommandBuffer*, NVNbufferAddress,
1646 const NVNtexture*, const NVNtextureView*,
1647 const NVNcopyRegion*, int);
1648typedef void (*PFNNVNCOMMANDBUFFERCOPYTEXTURETOBUFFERPROC)(NVNcommandBuffer*, const NVNtexture*,
1649 const NVNtextureView*,
1650 const NVNcopyRegion*, NVNbufferAddress,
1651 int);
1652typedef void (*PFNNVNCOMMANDBUFFERCOPYTEXTURETOTEXTUREPROC)(NVNcommandBuffer*, const NVNtexture*,
1653 const NVNtextureView*,
1654 const NVNcopyRegion*, const NVNtexture*,
1655 const NVNtextureView*,
1656 const NVNcopyRegion*, int);
1657typedef void (*PFNNVNCOMMANDBUFFERCOPYBUFFERTOBUFFERPROC)(NVNcommandBuffer*, NVNbufferAddress,
1658 NVNbufferAddress, size_t, int);
1659typedef void (*PFNNVNCOMMANDBUFFERCLEARBUFFERPROC)(NVNcommandBuffer*, NVNbufferAddress, size_t,
1660 uint32_t);
1661typedef void (*PFNNVNCOMMANDBUFFERCLEARTEXTUREPROC)(NVNcommandBuffer*, const NVNtexture*,
1662 const NVNtextureView*, const NVNcopyRegion*,
1663 const float*, int);
1664typedef void (*PFNNVNCOMMANDBUFFERCLEARTEXTUREIPROC)(NVNcommandBuffer*, const NVNtexture*,
1665 const NVNtextureView*, const NVNcopyRegion*,
1666 const int*, int);
1667typedef void (*PFNNVNCOMMANDBUFFERCLEARTEXTUREUIPROC)(NVNcommandBuffer*, const NVNtexture*,
1668 const NVNtextureView*, const NVNcopyRegion*,
1669 const uint32_t*, int);
1670typedef void (*PFNNVNCOMMANDBUFFERUPDATEUNIFORMBUFFERPROC)(NVNcommandBuffer*, NVNbufferAddress,
1671 size_t, ptrdiff_t, size_t, const void*);
1672typedef void (*PFNNVNCOMMANDBUFFERREPORTCOUNTERPROC)(NVNcommandBuffer*, NVNcounterType,
1673 NVNbufferAddress);
1674typedef void (*PFNNVNCOMMANDBUFFERRESETCOUNTERPROC)(NVNcommandBuffer*, NVNcounterType);
1675typedef void (*PFNNVNCOMMANDBUFFERREPORTVALUEPROC)(NVNcommandBuffer*, uint32_t, NVNbufferAddress);
1676typedef void (*PFNNVNCOMMANDBUFFERSETRENDERENABLEPROC)(NVNcommandBuffer*, NVNboolean);
1677typedef void (*PFNNVNCOMMANDBUFFERSETRENDERENABLECONDITIONALPROC)(NVNcommandBuffer*,
1678 NVNconditionalRenderMode,
1679 NVNbufferAddress);
1680typedef void (*PFNNVNCOMMANDBUFFERSETRENDERTARGETSPROC)(NVNcommandBuffer*, int,
1681 const NVNtexture* const*,
1682 const NVNtextureView* const*,
1683 const NVNtexture*, const NVNtextureView*);
1684typedef void (*PFNNVNCOMMANDBUFFERDISCARDCOLORPROC)(NVNcommandBuffer*, int);
1685typedef void (*PFNNVNCOMMANDBUFFERDISCARDDEPTHSTENCILPROC)(NVNcommandBuffer*);
1686typedef void (*PFNNVNCOMMANDBUFFERDOWNSAMPLEPROC)(NVNcommandBuffer*, const NVNtexture*,
1687 const NVNtexture*);
1688typedef void (*PFNNVNCOMMANDBUFFERTILEDDOWNSAMPLEPROC)(NVNcommandBuffer*, const NVNtexture*,
1689 const NVNtexture*);
1690typedef void (*PFNNVNCOMMANDBUFFERDOWNSAMPLETEXTUREVIEWPROC)(NVNcommandBuffer*, const NVNtexture*,
1691 const NVNtextureView*,
1692 const NVNtexture*,
1693 const NVNtextureView*);
1694typedef void (*PFNNVNCOMMANDBUFFERTILEDDOWNSAMPLETEXTUREVIEWPROC)(NVNcommandBuffer*,
1695 const NVNtexture*,
1696 const NVNtextureView*,
1697 const NVNtexture*,
1698 const NVNtextureView*);
1699typedef void (*PFNNVNCOMMANDBUFFERBARRIERPROC)(NVNcommandBuffer*, int);
1700typedef void (*PFNNVNCOMMANDBUFFERWAITSYNCPROC)(NVNcommandBuffer*, const NVNsync*);
1701typedef void (*PFNNVNCOMMANDBUFFERFENCESYNCPROC)(NVNcommandBuffer*, NVNsync*, NVNsyncCondition,
1702 int);
1703typedef void (*PFNNVNCOMMANDBUFFERSETTEXTUREPOOLPROC)(NVNcommandBuffer*, const NVNtexturePool*);
1704typedef void (*PFNNVNCOMMANDBUFFERSETSAMPLERPOOLPROC)(NVNcommandBuffer*, const NVNsamplerPool*);
1705typedef void (*PFNNVNCOMMANDBUFFERSETSHADERSCRATCHMEMORYPROC)(NVNcommandBuffer*,
1706 const NVNmemoryPool*, ptrdiff_t,
1707 size_t);
1708typedef void (*PFNNVNCOMMANDBUFFERSAVEZCULLDATAPROC)(NVNcommandBuffer*, NVNbufferAddress, size_t);
1709typedef void (*PFNNVNCOMMANDBUFFERRESTOREZCULLDATAPROC)(NVNcommandBuffer*, NVNbufferAddress,
1710 size_t);
1711typedef void (*PFNNVNCOMMANDBUFFERSETCOPYROWSTRIDEPROC)(NVNcommandBuffer*, ptrdiff_t);
1712typedef void (*PFNNVNCOMMANDBUFFERSETCOPYIMAGESTRIDEPROC)(NVNcommandBuffer*, ptrdiff_t);
1713typedef ptrdiff_t (*PFNNVNCOMMANDBUFFERGETCOPYROWSTRIDEPROC)(const NVNcommandBuffer*);
1714typedef ptrdiff_t (*PFNNVNCOMMANDBUFFERGETCOPYIMAGESTRIDEPROC)(const NVNcommandBuffer*);
1715typedef void (*PFNNVNCOMMANDBUFFERDRAWTEXTUREPROC)(NVNcommandBuffer*, NVNtextureHandle,
1716 const NVNdrawTextureRegion*,
1717 const NVNdrawTextureRegion*);
1718typedef NVNboolean (*PFNNVNPROGRAMSETSUBROUTINELINKAGEPROC)(NVNprogram*, int,
1719 const NVNsubroutineLinkageMapPtr*);
1720typedef void (*PFNNVNCOMMANDBUFFERSETPROGRAMSUBROUTINESPROC)(NVNcommandBuffer*, NVNprogram*,
1721 NVNshaderStage, const int, const int,
1722 const int*);
1723typedef void (*PFNNVNCOMMANDBUFFERBINDCOVERAGEMODULATIONTABLEPROC)(NVNcommandBuffer*, const float*);
1724typedef void (*PFNNVNCOMMANDBUFFERRESOLVEDEPTHBUFFERPROC)(NVNcommandBuffer*);
1725typedef void (*PFNNVNCOMMANDBUFFERPUSHDEBUGGROUPSTATICPROC)(NVNcommandBuffer*, uint32_t,
1726 const char*);
1727typedef void (*PFNNVNCOMMANDBUFFERPUSHDEBUGGROUPDYNAMICPROC)(NVNcommandBuffer*, uint32_t,
1728 const char*);
1729typedef void (*PFNNVNCOMMANDBUFFERPUSHDEBUGGROUPPROC)(NVNcommandBuffer*, uint32_t, const char*);
1730typedef void (*PFNNVNCOMMANDBUFFERPOPDEBUGGROUPPROC)(NVNcommandBuffer*);
1731typedef void (*PFNNVNCOMMANDBUFFERPOPDEBUGGROUPIDPROC)(NVNcommandBuffer*, uint32_t);
1732typedef void (*PFNNVNCOMMANDBUFFERINSERTDEBUGMARKERSTATICPROC)(NVNcommandBuffer*, uint32_t,
1733 const char*);
1734typedef void (*PFNNVNCOMMANDBUFFERINSERTDEBUGMARKERDYNAMICPROC)(NVNcommandBuffer*, uint32_t,
1735 const char*);
1736typedef void (*PFNNVNCOMMANDBUFFERINSERTDEBUGMARKERPROC)(NVNcommandBuffer*, const char*);
1737typedef PFNNVNCOMMANDBUFFERMEMORYCALLBACKPROC (*PFNNVNCOMMANDBUFFERGETMEMORYCALLBACKPROC)(
1738 const NVNcommandBuffer*);
1739typedef void (*PFNNVNCOMMANDBUFFERGETMEMORYCALLBACKDATAPROC)(const NVNcommandBuffer*);
1740typedef NVNboolean (*PFNNVNCOMMANDBUFFERISRECORDINGPROC)(const NVNcommandBuffer*);
1741typedef NVNboolean (*PFNNVNSYNCINITIALIZEPROC)(NVNsync*, NVNdevice*);
1742typedef void (*PFNNVNSYNCFINALIZEPROC)(NVNsync*);
1743typedef void (*PFNNVNSYNCSETDEBUGLABELPROC)(NVNsync*, const char*);
1744typedef void (*PFNNVNQUEUEFENCESYNCPROC)(NVNqueue*, NVNsync*, NVNsyncCondition, int);
1745typedef NVNsyncWaitResult (*PFNNVNSYNCWAITPROC)(const NVNsync*, uint64_t);
1746typedef NVNboolean (*PFNNVNQUEUEWAITSYNCPROC)(NVNqueue*, const NVNsync*);
1747typedef void (*PFNNVNEVENTBUILDERSETDEFAULTSPROC)(NVNeventBuilder*);
1748typedef void (*PFNNVNEVENTBUILDERSETSTORAGEPROC)(NVNeventBuilder*, const NVNmemoryPool*, int64_t);
1749typedef NVNboolean (*PFNNVNEVENTINITIALIZEPROC)(NVNevent*, const NVNeventBuilder*);
1750typedef void (*PFNNVNEVENTFINALIZEPROC)(NVNevent*);
1751typedef uint32_t (*PFNNVNEVENTGETVALUEPROC)(const NVNevent*);
1752typedef void (*PFNNVNEVENTSIGNALPROC)(NVNevent*, NVNeventSignalMode, uint32_t);
1753typedef void (*PFNNVNCOMMANDBUFFERWAITEVENTPROC)(NVNcommandBuffer*, const NVNevent*,
1754 NVNeventWaitMode, uint32_t);
1755typedef void (*PFNNVNCOMMANDBUFFERSIGNALEVENTPROC)(NVNcommandBuffer*, const NVNevent*,
1756 NVNeventSignalMode, NVNeventSignalLocation, int,
1757 uint32_t);