MCPcopy Create free account
hub / github.com/KhronosGroup/glslang / initializeExtensionBehavior

Method initializeExtensionBehavior

glslang/MachineIndependent/Versions.cpp:159–430  ·  view source on GitHub ↗

Initialize all extensions, almost always to 'disable', as once their features are incorporated into a core version, their features are supported through allowing that core version, not through a pseudo-enablement of the extension.

Source from the content-addressed store, hash-verified

157// core version, not through a pseudo-enablement of the extension.
158//
159void TParseVersions::initializeExtensionBehavior()
160{
161 typedef struct {
162 const char *const extensionName;
163 EShTargetLanguageVersion minSpvVersion;
164 } extensionData;
165
166 const extensionData exts[] = { {E_GL_EXT_ray_tracing, EShTargetSpv_1_4},
167 {E_GL_NV_ray_tracing_motion_blur, EShTargetSpv_1_4},
168 {E_GL_EXT_mesh_shader, EShTargetSpv_1_4},
169 {E_GL_NV_cooperative_matrix2, EShTargetSpv_1_6}
170 };
171
172 for (size_t ii = 0; ii < sizeof(exts) / sizeof(exts[0]); ii++) {
173 // Add only extensions which require > spv1.0 to save space in map
174 if (exts[ii].minSpvVersion > EShTargetSpv_1_0) {
175 extensionMinSpv[exts[ii].extensionName] = exts[ii].minSpvVersion;
176 }
177 }
178
179 extensionBehavior[E_GL_OES_texture_3D] = EBhDisable;
180 extensionBehavior[E_GL_OES_standard_derivatives] = EBhDisable;
181 extensionBehavior[E_GL_EXT_frag_depth] = EBhDisable;
182 extensionBehavior[E_GL_OES_EGL_image_external] = EBhDisable;
183 extensionBehavior[E_GL_OES_EGL_image_external_essl3] = EBhDisable;
184 extensionBehavior[E_GL_EXT_YUV_target] = EBhDisable;
185 extensionBehavior[E_GL_EXT_shader_texture_lod] = EBhDisable;
186 extensionBehavior[E_GL_EXT_shadow_samplers] = EBhDisable;
187 extensionBehavior[E_GL_ARB_texture_rectangle] = EBhDisable;
188 extensionBehavior[E_GL_3DL_array_objects] = EBhDisable;
189 extensionBehavior[E_GL_ARB_shading_language_420pack] = EBhDisable;
190 extensionBehavior[E_GL_ARB_texture_gather] = EBhDisable;
191 extensionBehavior[E_GL_ARB_gpu_shader5] = EBhDisable;
192 extensionBehavior[E_GL_ARB_separate_shader_objects] = EBhDisable;
193 extensionBehavior[E_GL_ARB_compute_shader] = EBhDisable;
194 extensionBehavior[E_GL_ARB_tessellation_shader] = EBhDisable;
195 extensionBehavior[E_GL_ARB_enhanced_layouts] = EBhDisable;
196 extensionBehavior[E_GL_ARB_texture_cube_map_array] = EBhDisable;
197 extensionBehavior[E_GL_ARB_texture_multisample] = EBhDisable;
198 extensionBehavior[E_GL_ARB_shader_texture_lod] = EBhDisable;
199 extensionBehavior[E_GL_ARB_explicit_attrib_location] = EBhDisable;
200 extensionBehavior[E_GL_ARB_explicit_uniform_location] = EBhDisable;
201 extensionBehavior[E_GL_ARB_shader_image_load_store] = EBhDisable;
202 extensionBehavior[E_GL_ARB_shader_atomic_counters] = EBhDisable;
203 extensionBehavior[E_GL_ARB_shader_atomic_counter_ops] = EBhDisable;
204 extensionBehavior[E_GL_ARB_shader_draw_parameters] = EBhDisable;
205 extensionBehavior[E_GL_ARB_shader_group_vote] = EBhDisable;
206 extensionBehavior[E_GL_ARB_derivative_control] = EBhDisable;
207 extensionBehavior[E_GL_ARB_shader_texture_image_samples] = EBhDisable;
208 extensionBehavior[E_GL_ARB_viewport_array] = EBhDisable;
209 extensionBehavior[E_GL_ARB_gpu_shader_int64] = EBhDisable;
210 extensionBehavior[E_GL_ARB_gpu_shader_fp64] = EBhDisable;
211 extensionBehavior[E_GL_ARB_shader_ballot] = EBhDisable;
212 extensionBehavior[E_GL_ARB_sparse_texture2] = EBhDisable;
213 extensionBehavior[E_GL_ARB_sparse_texture_clamp] = EBhDisable;
214 extensionBehavior[E_GL_ARB_shader_stencil_export] = EBhDisable;
215// extensionBehavior[E_GL_ARB_cull_distance] = EBhDisable; // present for 4.5, but need extension control over block members
216 extensionBehavior[E_GL_ARB_post_depth_coverage] = EBhDisable;

Callers 1

ProcessDeferredFunction · 0.45

Calls 1

push_backMethod · 0.45

Tested by

no test coverage detected