NVAPI Reference Documentation
545
Loading...
Searching...
No Matches
nvShaderExtnEnums.h
1
/************************************************************************************************************************************\
2
|* *|
3
|* Copyright © 2012 NVIDIA Corporation. All rights reserved. *|
4
|* *|
5
|* NOTICE TO USER: *|
6
|* *|
7
|* This software is subject to NVIDIA ownership rights under U.S. and international Copyright laws. *|
8
|* *|
9
|* This software and the information contained herein are PROPRIETARY and CONFIDENTIAL to NVIDIA *|
10
|* and are being provided solely under the terms and conditions of an NVIDIA software license agreement. *|
11
|* Otherwise, you have no rights to use or access this software in any manner. *|
12
|* *|
13
|* If not covered by the applicable NVIDIA software license agreement: *|
14
|* NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. *|
15
|* IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. *|
16
|* NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, *|
17
|* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. *|
18
|* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, *|
19
|* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, *|
20
|* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. *|
21
|* *|
22
|* U.S. Government End Users. *|
23
|* This software is a "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT 1995), *|
24
|* consisting of "commercial computer software" and "commercial computer software documentation" *|
25
|* as such terms are used in 48 C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government only as a commercial end item. *|
26
|* Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), *|
27
|* all U.S. Government End Users acquire the software with only those rights set forth herein. *|
28
|* *|
29
|* Any use of this software in individual and commercial software must include, *|
30
|* in the user documentation and internal comments to the code, *|
31
|* the above Disclaimer (as applicable) and U.S. Government End Users Notice. *|
32
|* *|
33
\************************************************************************************************************************************/
34
38
39
// This file can be included both from HLSL shader code as well as C++ code.
40
// The app should call NvAPI_D3D11_IsNvShaderExtnOpCodeSupported() / NvAPI_D3D12_IsNvShaderExtnOpCodeSupported()
41
// to check for support for every nv shader extension opcode it plans to use
42
43
44
45
//----------------------------------------------------------------------------//
46
//---------------------------- NV Shader Extn Version -----------------------//
47
//----------------------------------------------------------------------------//
48
#define NV_SHADER_EXTN_VERSION 1
49
50
//----------------------------------------------------------------------------//
51
//---------------------------- Misc constants --------------------------------//
52
//----------------------------------------------------------------------------//
53
#define NV_WARP_SIZE 32
54
#define NV_WARP_SIZE_LOG2 5
55
56
//----------------------------------------------------------------------------//
57
//---------------------------- opCode constants ------------------------------//
58
//----------------------------------------------------------------------------//
59
60
61
#define NV_EXTN_OP_SHFL 1
62
#define NV_EXTN_OP_SHFL_UP 2
63
#define NV_EXTN_OP_SHFL_DOWN 3
64
#define NV_EXTN_OP_SHFL_XOR 4
65
66
#define NV_EXTN_OP_VOTE_ALL 5
67
#define NV_EXTN_OP_VOTE_ANY 6
68
#define NV_EXTN_OP_VOTE_BALLOT 7
69
70
#define NV_EXTN_OP_GET_LANE_ID 8
71
#define NV_EXTN_OP_FP16_ATOMIC 12
72
#define NV_EXTN_OP_FP32_ATOMIC 13
73
74
#define NV_EXTN_OP_GET_SPECIAL 19
75
76
#define NV_EXTN_OP_UINT64_ATOMIC 20
77
78
#define NV_EXTN_OP_MATCH_ANY 21
79
80
// FOOTPRINT - For Sample and SampleBias
81
#define NV_EXTN_OP_FOOTPRINT 28
82
#define NV_EXTN_OP_FOOTPRINT_BIAS 29
83
84
#define NV_EXTN_OP_GET_SHADING_RATE 30
85
86
// FOOTPRINT - For SampleLevel and SampleGrad
87
#define NV_EXTN_OP_FOOTPRINT_LEVEL 31
88
#define NV_EXTN_OP_FOOTPRINT_GRAD 32
89
90
// SHFL Generic
91
#define NV_EXTN_OP_SHFL_GENERIC 33
92
93
#define NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE 51
94
#define NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED 52
95
96
// HitObject API
97
#define NV_EXTN_OP_HIT_OBJECT_TRACE_RAY 67
98
#define NV_EXTN_OP_HIT_OBJECT_MAKE_HIT 68
99
#define NV_EXTN_OP_HIT_OBJECT_MAKE_HIT_WITH_RECORD_INDEX 69
100
#define NV_EXTN_OP_HIT_OBJECT_MAKE_MISS 70
101
#define NV_EXTN_OP_HIT_OBJECT_REORDER_THREAD 71
102
#define NV_EXTN_OP_HIT_OBJECT_INVOKE 72
103
#define NV_EXTN_OP_HIT_OBJECT_IS_MISS 73
104
#define NV_EXTN_OP_HIT_OBJECT_GET_INSTANCE_ID 74
105
#define NV_EXTN_OP_HIT_OBJECT_GET_INSTANCE_INDEX 75
106
#define NV_EXTN_OP_HIT_OBJECT_GET_PRIMITIVE_INDEX 76
107
#define NV_EXTN_OP_HIT_OBJECT_GET_GEOMETRY_INDEX 77
108
#define NV_EXTN_OP_HIT_OBJECT_GET_HIT_KIND 78
109
#define NV_EXTN_OP_HIT_OBJECT_GET_RAY_DESC 79
110
#define NV_EXTN_OP_HIT_OBJECT_GET_ATTRIBUTES 80
111
#define NV_EXTN_OP_HIT_OBJECT_GET_SHADER_TABLE_INDEX 81
112
#define NV_EXTN_OP_HIT_OBJECT_LOAD_LOCAL_ROOT_TABLE_CONSTANT 82
113
#define NV_EXTN_OP_HIT_OBJECT_IS_HIT 83
114
#define NV_EXTN_OP_HIT_OBJECT_IS_NOP 84
115
#define NV_EXTN_OP_HIT_OBJECT_MAKE_NOP 85
116
117
// Micro-map API
118
#define NV_EXTN_OP_RT_TRIANGLE_OBJECT_POSITIONS 86
119
#define NV_EXTN_OP_RT_MICRO_TRIANGLE_OBJECT_POSITIONS 87
120
#define NV_EXTN_OP_RT_MICRO_TRIANGLE_BARYCENTRICS 88
121
#define NV_EXTN_OP_RT_IS_MICRO_TRIANGLE_HIT 89
122
#define NV_EXTN_OP_RT_IS_BACK_FACING 90
123
#define NV_EXTN_OP_RT_MICRO_VERTEX_OBJECT_POSITION 91
124
#define NV_EXTN_OP_RT_MICRO_VERTEX_BARYCENTRICS 92
125
126
//----------------------------------------------------------------------------//
127
//-------------------- GET_SPECIAL subOpCode constants -----------------------//
128
//----------------------------------------------------------------------------//
129
#define NV_SPECIALOP_THREADLTMASK 4
130
#define NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED 5
131
#define NV_SPECIALOP_GLOBAL_TIMER_LO 9
132
#define NV_SPECIALOP_GLOBAL_TIMER_HI 10
133
134
//----------------------------------------------------------------------------//
135
//----------------------------- Texture Types -------------------------------//
136
//----------------------------------------------------------------------------//
137
#define NV_EXTN_TEXTURE_1D 2
138
#define NV_EXTN_TEXTURE_1D_ARRAY 3
139
#define NV_EXTN_TEXTURE_2D 4
140
#define NV_EXTN_TEXTURE_2D_ARRAY 5
141
#define NV_EXTN_TEXTURE_3D 6
142
#define NV_EXTN_TEXTURE_CUBE 7
143
#define NV_EXTN_TEXTURE_CUBE_ARRAY 8
144
145
146
//---------------------------------------------------------------------------//
147
//----------------FOOTPRINT Enums for NvFootprint* extns---------------------//
148
//---------------------------------------------------------------------------//
149
#define NV_EXTN_FOOTPRINT_MODE_FINE 0
150
#define NV_EXTN_FOOTPRINT_MODE_COARSE 1
Generated by
1.9.8