Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/docs/features.txt
4545 views
1
# Status of OpenGL extensions in Mesa
2
3
Here's how to read this file:
4
5
all DONE: <driver>, ...
6
All the extensions are done for the given list of drivers.
7
8
DONE
9
The extension is done for Mesa and no implementation is necessary on the
10
driver-side.
11
12
DONE ()
13
The extension is done for Mesa and all the drivers in the "all DONE" list.
14
15
DONE (<driver>, ...)
16
The extension is done for Mesa, all the drivers in the "all DONE" list, and
17
all the drivers in the brackets.
18
19
in progress
20
The extension is started but not finished yet.
21
22
not started
23
The extension isn't started yet.
24
25
# OpenGL Core and Compatibility context support
26
27
Some drivers do not support the Compatibility profile or the
28
ARB_compatibility extensions. If an application does not request a
29
specific version without the forward-compatiblity flag, such drivers
30
will be limited to OpenGL 3.0. If an application requests OpenGL 3.1,
31
it will get a context that may or may not have the ARB_compatibility
32
extension enabled. Some of the later GL features are exposed in the 3.0
33
context as extensions.
34
35
36
Feature Status
37
------------------------------------------------------- ------------------------
38
39
GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12, panfrost
40
41
glBindFragDataLocation, glGetFragDataLocation DONE
42
GL_NV_conditional_render (Conditional rendering) DONE ()
43
GL_ARB_map_buffer_range (Map buffer subranges) DONE (v3d, vc4, lima)
44
GL_ARB_color_buffer_float (Clamping controls) DONE (v3d)
45
GL_ARB_texture_float (Float textures, renderbuffers) DONE (v3d)
46
GL_EXT_packed_float DONE (v3d)
47
GL_EXT_texture_shared_exponent DONE (v3d)
48
GL_ARB_depth_buffer_float (Float depth buffers) DONE (v3d)
49
GL_ARB_framebuffer_object (Framebuffer objects) DONE (v3d, vc4)
50
GL_ARB_half_float_pixel DONE (all drivers)
51
GL_ARB_half_float_vertex DONE (v3d, vc4, lima)
52
GL_EXT_texture_integer DONE (v3d)
53
GL_EXT_texture_array DONE (v3d)
54
GL_EXT_draw_buffers2 (Per-buffer blend and masks) DONE (v3d)
55
GL_EXT_texture_compression_rgtc DONE ()
56
GL_ARB_texture_rg DONE (v3d, lima)
57
GL_EXT_transform_feedback (Transform feedback) DONE (v3d)
58
GL_ARB_vertex_array_object (Vertex array objects) DONE (v3d, vc4, lima)
59
GL_EXT_framebuffer_sRGB (sRGB framebuffer format) DONE (v3d, vc4, lima)
60
glClearBuffer commands DONE
61
glGetStringi command DONE
62
glTexParameterI, glGetTexParameterI commands DONE
63
glVertexAttribI commands DONE
64
Depth format cube textures DONE ()
65
GLX_ARB_create_context (GLX 1.4 is required) DONE (v3d, vc4)
66
Multisample anti-aliasing DONE (freedreno/a5xx+, freedreno (*), llvmpipe (*), softpipe (*), swr (*))
67
8 draw buffers DONE (panfrost/t760+)
68
69
(*) freedreno (a2xx-a4xx), llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
70
71
72
GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12, panfrost
73
74
Forward compatible context support/deprecations DONE
75
GL_ARB_draw_instanced (Instanced drawing) DONE (v3d)
76
GL_ARB_copy_buffer (Buffer copying) DONE (v3d, vc4, lima)
77
GL_NV_primitive_restart (Primitive restart) DONE ()
78
16 vertex texture image units DONE ()
79
GL_ARB_texture_buffer_object (Texture buffer objs) DONE ()
80
GL_ARB_texture_rectangle (Rectangular textures) DONE (v3d, vc4, lima)
81
GL_ARB_uniform_buffer_object (Uniform buffer objs) DONE (v3d)
82
GL_EXT_texture_snorm (Signed normalized textures) DONE (v3d)
83
84
85
GL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12
86
87
Core/compatibility profiles DONE
88
Geometry shaders DONE (freedreno/a6xx)
89
GL_ARB_vertex_array_bgra (BGRA vertex order) DONE (v3d, panfrost)
90
GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (v3d, panfrost, lima)
91
GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (v3d, vc4, panfrost, lima)
92
GL_ARB_provoking_vertex (Provoking vertex) DONE (v3d, vc4, panfrost, lima)
93
GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (panfrost)
94
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, v3d, vc4, panfrost)
95
GL_ARB_depth_clamp (Frag depth clamp) DONE (panfrost)
96
GL_ARB_sync (Fence objects) DONE (v3d, vc4, panfrost, lima)
97
GLX_ARB_create_context_profile DONE
98
99
100
GL 3.3, GLSL 3.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12
101
102
GL_ARB_blend_func_extended DONE (freedreno/a3xx, freedreno/a6xx, swr, panfrost)
103
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
104
GL_ARB_occlusion_query2 DONE (swr, v3d, vc4, panfrost, lima)
105
GL_ARB_sampler_objects DONE (all drivers)
106
GL_ARB_shader_bit_encoding DONE (swr, v3d, panfrost)
107
GL_ARB_texture_rgb10_a2ui DONE (swr, panfrost)
108
GL_ARB_texture_swizzle DONE (swr, v3d, vc4, panfrost, lima)
109
GL_ARB_timer_query DONE (swr)
110
GL_ARB_instanced_arrays DONE (swr, v3d, panfrost)
111
GL_ARB_vertex_type_2_10_10_10_rev DONE (swr, v3d, panfrost)
112
113
114
GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
115
116
GL_ARB_draw_buffers_blend DONE (freedreno, i965/gen6+, nv50, softpipe, swr, panfrost, d3d12)
117
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, softpipe, swr, v3d)
118
GL_ARB_gpu_shader5 DONE (i965/gen7+)
119
- 'precise' qualifier DONE (softpipe)
120
- Dynamically uniform sampler array indices DONE (softpipe)
121
- Dynamically uniform UBO array indices DONE (freedreno, softpipe)
122
- Implicit signed -> unsigned conversions DONE (softpipe, swr)
123
- Fused multiply-add DONE (softpipe, swr)
124
- Packing/bitfield/conversion functions DONE (freedreno, softpipe, swr, panfrost)
125
- Enhanced textureGather DONE (freedreno, softpipe, swr, panfrost)
126
- Geometry shader instancing DONE (softpipe, swr)
127
- Geometry shader multiple streams DONE (softpipe, swr)
128
- Enhanced per-sample shading DONE ()
129
- Interpolation functions DONE (softpipe)
130
- New overload resolution rules DONE (softpipe)
131
GL_ARB_gpu_shader_fp64 DONE (i965/gen7+, softpipe, swr)
132
GL_ARB_sample_shading DONE (freedreno/a6xx, i965/gen6+, nv50, panfrost)
133
GL_ARB_shader_subroutine DONE (freedreno, i965/gen6+, nv50, softpipe, swr, d3d12)
134
GL_ARB_tessellation_shader DONE (freedreno/a6xx, i965/gen7+, swr)
135
GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, i965/gen6+, softpipe, swr, d3d12, panfrost)
136
GL_ARB_texture_cube_map_array DONE (freedreno/a4xx+, i965/gen6+, nv50, softpipe, swr)
137
GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, softpipe, swr, v3d, panfrost)
138
GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, softpipe, swr, v3d, panfrost, d3d12)
139
GL_ARB_transform_feedback2 DONE (freedreno/a3xx+, i965/gen6+, nv50, softpipe, swr, v3d, panfrost)
140
GL_ARB_transform_feedback3 DONE (freedreno/a3xx+, i965/gen7+, softpipe, swr)
141
142
143
GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
144
145
GL_ARB_ES2_compatibility DONE (freedreno, i965, nv50, softpipe, swr, v3d, vc4, panfrost, d3d12, lima)
146
GL_ARB_get_program_binary DONE (freedreno, 0 or 1 binary formats)
147
GL_ARB_separate_shader_objects DONE (all drivers)
148
GL_ARB_shader_precision DONE (i965/gen7+, all drivers that support GLSL 4.10)
149
GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, softpipe, swr)
150
GL_ARB_viewport_array DONE (i965, nv50, softpipe, swr)
151
152
153
GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
154
155
GL_ARB_texture_compression_bptc DONE (freedreno, i965, softpipe, swr, panfrost/if SoC supports)
156
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
157
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
158
GL_ARB_texture_storage DONE (all drivers)
159
GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, softpipe, swr, v3d)
160
GL_ARB_base_instance DONE (freedreno, i965, nv50, softpipe, swr, v3d)
161
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
162
GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
163
GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
164
GL_ARB_shading_language_packing DONE (all drivers)
165
GL_ARB_internalformat_query DONE (freedreno, i965, nv50, softpipe, swr, v3d, vc4, panfrost, d3d12, lima)
166
GL_ARB_map_buffer_alignment DONE (all drivers)
167
168
169
GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
170
171
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
172
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
173
GL_ARB_clear_buffer_object DONE (all drivers)
174
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
175
GL_ARB_copy_image DONE (i965, nv50, softpipe, swr)
176
GL_KHR_debug DONE (all drivers)
177
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
178
GL_ARB_fragment_layer_viewport DONE (i965, nv50, softpipe, swr)
179
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, softpipe, v3d)
180
GL_ARB_internalformat_query2 DONE (all drivers)
181
GL_ARB_invalidate_subdata DONE (all drivers)
182
GL_ARB_multi_draw_indirect DONE (freedreno, i965, softpipe, swr, v3d)
183
GL_ARB_program_interface_query DONE (all drivers)
184
GL_ARB_robust_buffer_access_behavior DONE (freedreno, i965)
185
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
186
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
187
GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, softpipe, swr, v3d, panfrost, d3d12)
188
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, softpipe, swr, d3d12)
189
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
190
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
191
GL_ARB_texture_view DONE (freedreno, i965, nv50, softpipe, swr)
192
GL_ARB_vertex_attrib_binding DONE (all drivers)
193
194
195
GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, zink
196
197
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
198
GL_ARB_buffer_storage DONE (freedreno, i965, nv50, swr, v3d, vc4)
199
GL_ARB_clear_texture DONE (i965, nv50, softpipe, swr, virgl)
200
GL_ARB_enhanced_layouts DONE (i965, nv50, softpipe, virgl)
201
- compile-time constant expressions DONE
202
- explicit byte offsets for blocks DONE
203
- forced alignment within blocks DONE
204
- specified vec4-slot component numbers DONE
205
- specified transform/feedback layout DONE
206
- input/output block locations DONE
207
GL_ARB_multi_bind DONE (all drivers)
208
GL_ARB_query_buffer_object DONE (i965/hsw+, virgl)
209
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, softpipe, swr, virgl, panfrost)
210
GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, softpipe, swr, virgl, v3d, panfrost, d3d12)
211
GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, i965, nv50, softpipe, swr, virgl, panfrost, d3d12)
212
213
GL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi, llvmpipe, zink
214
215
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, softpipe, virgl)
216
GL_ARB_clip_control DONE (freedreno, i965, nv50, softpipe, swr, virgl)
217
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, softpipe, swr, virgl, panfrost)
218
GL_ARB_cull_distance DONE (freedreno/a6xx, i965, nv50, softpipe, swr, virgl)
219
GL_ARB_derivative_control DONE (i965, nv50, softpipe, virgl)
220
GL_ARB_direct_state_access DONE (all drivers)
221
GL_ARB_get_texture_sub_image DONE (all drivers)
222
GL_ARB_shader_texture_image_samples DONE (i965, nv50, virgl)
223
GL_ARB_texture_barrier DONE (freedreno, i965, nv50, virgl)
224
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
225
GL_KHR_robustness DONE (freedreno, i965, virgl)
226
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
227
228
GL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink
229
230
GL_ARB_gl_spirv DONE (i965/gen7+, llvmpipe)
231
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, llvmpipe, virgl)
232
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, llvmpipe, softpipe, swr)
233
GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, swr, virgl)
234
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, llvmpipe, softpipe, virgl, v3d)
235
GL_ARB_shader_draw_parameters DONE (i965, llvmpipe, nvc0)
236
GL_ARB_shader_group_vote DONE (i965, nvc0, llvmpipe)
237
GL_ARB_spirv_extensions DONE (i965/gen7+, llvmpipe)
238
GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe (*), llvmpipe (*), d3d12, virgl)
239
GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, nvc0, llvmpipe, softpipe, virgl)
240
GL_KHR_no_error DONE (all drivers)
241
242
(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
243
244
These are the extensions cherry-picked to make GLES 3.1
245
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, softpipe, llvmpipe, zink, panfrost
246
247
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
248
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965/gen7+)
249
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, swr)
250
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
251
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, softpipe)
252
GL_ARB_program_interface_query DONE (all drivers)
253
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965/gen7+, swr)
254
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965/gen7+, swr)
255
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965/gen7+, swr)
256
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965/gen7+)
257
GL_ARB_shading_language_packing DONE (all drivers)
258
GL_ARB_separate_shader_objects DONE (all drivers)
259
GL_ARB_stencil_texturing DONE (freedreno, nv50, swr)
260
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, i965/gen7+, nv50, swr)
261
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
262
GL_ARB_vertex_attrib_binding DONE (all drivers)
263
GS5 Enhanced textureGather DONE (freedreno, i965/gen7+)
264
GS5 Packing/bitfield/conversion functions DONE (freedreno/a5xx+, i965/gen6+)
265
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
266
267
Additional functionality not covered above:
268
glMemoryBarrierByRegion DONE
269
glGetTexLevelParameter[fi]v - needs updates DONE
270
glGetBooleani_v - restrict to GLES enums
271
gl_HelperInvocation support DONE (i965, r600, panfrost)
272
273
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl, llvmpipe
274
275
GL_EXT_color_buffer_float DONE (all drivers)
276
GL_KHR_blend_equation_advanced DONE (freedreno/a6xx, i965, nvc0, panfrost)
277
GL_KHR_debug DONE (all drivers)
278
GL_KHR_robustness DONE (freedreno, i965, nvc0, r600, zink)
279
GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+, r600, v3d, vc4, panfrost, softpipe, swr, zink, lima)
280
GL_OES_copy_image DONE (all drivers)
281
GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
282
GL_OES_draw_elements_base_vertex DONE (all drivers)
283
GL_OES_geometry_shader DONE (freedreno/a6xx, i965/hsw+, nvc0, r600, softpipe, v3d, zink)
284
GL_OES_gpu_shader5 DONE (freedreno/a6xx, all drivers that support GL_ARB_gpu_shader5)
285
GL_OES_primitive_bounding_box DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, softpipe, v3d, zink)
286
GL_OES_sample_shading DONE (freedreno/a6xx, i965, nvc0, r600, zink, panfrost, zink)
287
GL_OES_sample_variables DONE (freedreno/a6xx, i965, nvc0, r600, zink, panfrost/bifrost, zink)
288
GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
289
GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
290
GL_OES_shader_multisample_interpolation DONE (freedreno/a6xx, i965, nvc0, r600, zink)
291
GL_OES_tessellation_shader DONE (freedreno/a6xx, all drivers that support GL_ARB_tessellation_shader)
292
GL_OES_texture_border_clamp DONE (all drivers)
293
GL_OES_texture_buffer DONE (freedreno, i965, nvc0, r600, softpipe, panfrost, zink)
294
GL_OES_texture_cube_map_array DONE (freedreno/a4xx+, i965/hsw+, nvc0, r600, softpipe, zink)
295
GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
296
GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
297
298
Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
299
300
GL_ARB_bindless_texture DONE (nvc0, radeonsi)
301
GL_ARB_cl_event not started
302
GL_ARB_compute_variable_group_size DONE (i965/gen7+, nvc0, radeonsi, zink)
303
GL_ARB_ES3_2_compatibility DONE (i965/gen8+, radeonsi, virgl, zink)
304
GL_ARB_fragment_shader_interlock DONE (i965, zink)
305
GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe, zink)
306
GL_ARB_parallel_shader_compile DONE (all drivers)
307
GL_ARB_post_depth_coverage DONE (i965, nvc0, radeonsi, llvmpipe, zink)
308
GL_ARB_robustness_isolation not started
309
GL_ARB_sample_locations DONE (nvc0, zink)
310
GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, r600, radeonsi, softpipe, swr, virgl)
311
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
312
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl, zink)
313
GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl, panfrost, zink)
314
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi, zink)
315
GL_ARB_shading_language_include DONE
316
GL_ARB_sparse_buffer DONE (radeonsi/CIK+, zink)
317
GL_ARB_sparse_texture not started
318
GL_ARB_sparse_texture2 not started
319
GL_ARB_sparse_texture_clamp not started
320
GL_ARB_texture_filter_minmax DONE (nvc0/gm200+, zink)
321
GL_EXT_color_buffer_half_float DONE (gallium drivers supporting required formats)
322
GL_EXT_depth_bounds_test DONE (i965/gen12+, nv50, nvc0, radeonsi, softpipe, swr, zink)
323
GL_EXT_memory_object DONE (radeonsi, i965/gen7+)
324
GL_EXT_memory_object_fd DONE (radeonsi, i965/gen7+)
325
GL_EXT_memory_object_win32 not started
326
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost)
327
GL_EXT_render_snorm DONE (i965, r600, radeonsi, softpipe, zink)
328
GL_EXT_semaphore DONE (radeonsi, i965/gen7+)
329
GL_EXT_semaphore_fd DONE (radeonsi, i965/gen7+)
330
GL_EXT_semaphore_win32 not started
331
GL_EXT_shader_group_vote DONE (all drivers that support GL_ARB_shader_group_vote)
332
GL_EXT_sRGB_write_control DONE (all drivers that support GLES 3.0+)
333
GL_EXT_texture_norm16 DONE (freedreno, i965, r600, radeonsi, nvc0i, softpipe, zink)
334
GL_EXT_texture_sRGB_R8 DONE (all drivers that support GLES 3.0+)
335
GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+, panfrost)
336
GL_KHR_texture_compression_astc_hdr DONE (i965/bxt, panfrost)
337
GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+, r600, radeonsi, panfrost, softpipe, swr, zink, lima)
338
GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
339
GL_OES_EGL_image DONE (all drivers)
340
GL_OES_EGL_image_external DONE (all drivers)
341
GL_OES_EGL_image_external_essl3 DONE (all drivers)
342
GL_OES_required_internalformat DONE (all drivers)
343
GL_OES_surfaceless_context DONE (all drivers)
344
GL_OES_texture_compression_astc DONE (core only)
345
GL_OES_texture_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink)
346
GL_OES_texture_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink)
347
GL_OES_texture_half_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink, lima)
348
GL_OES_texture_half_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink, lima)
349
GL_OES_texture_view DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, swr, zink)
350
GL_OES_viewport_array DONE (i965, nvc0, r600, radeonsi, softpipe, zink)
351
GLX_ARB_context_flush_control not started
352
GLX_ARB_robustness_application_isolation not started
353
GLX_ARB_robustness_share_group_isolation not started
354
355
GL_EXT_direct_state_access subfeatures (in the spec order):
356
GL 1.1: Client commands DONE
357
GL 1.0-1.3: Matrix and transpose matrix commands DONE
358
GL 1.1-1.2: Texture commands DONE
359
GL 1.2: 3D texture commands DONE
360
GL 1.2.1: Multitexture commands DONE
361
GL 1.2.1-3.0: Indexed texture commands DONE
362
GL 1.2.1-3.0: Indexed generic queries DONE
363
GL 1.2.1: EnableIndexed.. Get*Indexed DONE
364
GL_ARB_vertex_program DONE
365
GL 1.3: Compressed texture and multitexture commands DONE
366
GL 1.5: Buffer commands DONE
367
GL 2.0-2.1: Uniform and uniform matrix commands DONE
368
GL_EXT_texture_buffer_object DONE
369
GL_EXT_texture_integer DONE
370
GL_EXT_gpu_shader4 DONE
371
GL_EXT_gpu_program_parameters DONE
372
GL_NV_gpu_program4 n/a
373
GL_NV_framebuffer_multisample_coverage n/a
374
GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap DONE
375
GL 3.0: CopyBuffer command DONE
376
GL_EXT_geometry_shader4 commands (expose in GL 3.2) DONE
377
GL_NV_explicit_multisample n/a
378
GL 3.0: Vertex array/attrib/query/map commands DONE
379
Matrix GL tokens DONE
380
381
GL_EXT_direct_state_access additions from other extensions (complete list):
382
GL_AMD_framebuffer_sample_positions n/a
383
GL_AMD_gpu_shader_int64 n/a (not enabled in compat profile)
384
GL_ARB_bindless_texture DONE
385
GL_ARB_buffer_storage DONE
386
GL_ARB_clear_buffer_object DONE
387
GL_ARB_framebuffer_no_attachments DONE
388
GL_ARB_gpu_shader_fp64 DONE
389
GL_ARB_instanced_arrays DONE
390
GL_ARB_internalformat_query2 DONE
391
GL_ARB_sparse_texture n/a
392
GL_ARB_sparse_buffer DONE
393
GL_ARB_texture_buffer_range DONE
394
GL_ARB_texture_storage DONE
395
GL_ARB_texture_storage_multisample DONE
396
GL_ARB_vertex_attrib_64bit DONE
397
GL_ARB_vertex_attrib_binding DONE
398
GL_EXT_buffer_storage DONE
399
GL_EXT_external_buffer n/a
400
GL_EXT_separate_shader_objects n/a
401
GL_EXT_sparse_texture n/a
402
GL_EXT_texture_storage n/a
403
GL_EXT_vertex_attrib_64bit DONE
404
GL_EXT_EGL_image_storage n/a
405
GL_NV_bindless_texture n/a
406
GL_NV_gpu_shader5 n/a
407
GL_NV_texture_multisample n/a
408
GL_NV_vertex_buffer_unified_memory n/a
409
GL_NVX_linked_gpu_multicast n/a
410
GLX_NV_copy_buffer n/a
411
412
The following extensions are not part of any OpenGL or OpenGL ES version, and
413
we DO NOT WANT implementations of these extensions for Mesa.
414
415
GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders
416
GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program
417
GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
418
GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
419
420
Vulkan 1.0 -- all DONE: anv, lvp, radv, tu, v3dv, vn
421
422
Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
423
424
VK_KHR_16bit_storage DONE (anv/gen8+, lvp, radv, tu/a650, vn)
425
VK_KHR_bind_memory2 DONE (anv, lvp, radv, tu, v3dv, vn)
426
VK_KHR_dedicated_allocation DONE (anv, lvp, radv, tu, v3dv, vn)
427
VK_KHR_descriptor_update_template DONE (anv, lvp, radv, tu, v3dv, vn)
428
VK_KHR_device_group DONE (lvp, tu, v3dv, vn)
429
VK_KHR_device_group_creation DONE (lvp, tu, v3dv, vn)
430
VK_KHR_external_fence DONE (anv, lvp, radv, tu, v3dv, vn)
431
VK_KHR_external_fence_capabilities DONE (anv, lvp, radv, tu, v3dv, vn)
432
VK_KHR_external_memory DONE (anv, lvp, radv, tu, v3dv, vn)
433
VK_KHR_external_memory_capabilities DONE (anv, lvp, radv, tu, v3dv, vn)
434
VK_KHR_external_semaphore DONE (anv, lvp, radv, tu, v3dv, vn)
435
VK_KHR_external_semaphore_capabilities DONE (anv, lvp, radv, tu, v3dv, vn)
436
VK_KHR_get_memory_requirements2 DONE (anv, lvp, radv, tu, v3dv, vn)
437
VK_KHR_get_physical_device_properties2 DONE (anv, lvp, radv, tu, v3dv, vn)
438
VK_KHR_maintenance1 DONE (anv, lvp, radv, tu, v3dv, vn)
439
VK_KHR_maintenance2 DONE (anv, lvp, radv, tu, v3dv, vn)
440
VK_KHR_maintenance3 DONE (anv, lvp, radv, tu, v3dv, vn)
441
VK_KHR_multiview DONE (anv, lvp, radv, tu, vn)
442
VK_KHR_relaxed_block_layout DONE (anv, lvp, radv, tu, v3dv, vn)
443
VK_KHR_sampler_ycbcr_conversion DONE (anv, radv, tu, vn)
444
VK_KHR_shader_draw_parameters DONE (anv, lvp, radv, tu, vn)
445
VK_KHR_storage_buffer_storage_class DONE (anv, lvp, radv, tu, v3dv, vn)
446
VK_KHR_variable_pointers DONE (anv, lvp, radv, tu, v3dv, vn)
447
448
Vulkan 1.2 -- all DONE: anv, vn
449
450
VK_KHR_8bit_storage DONE (anv/gen8+, lvp, radv, vn)
451
VK_KHR_buffer_device_address DONE (anv/gen8+, lvp, radv, vn)
452
VK_KHR_create_renderpass2 DONE (anv, lvp, radv, tu, vn)
453
VK_KHR_depth_stencil_resolve DONE (anv, radv, tu, vn)
454
VK_KHR_draw_indirect_count DONE (anv, lvp, radv, tu, vn)
455
VK_KHR_driver_properties DONE (anv, lvp, radv, vn)
456
VK_KHR_image_format_list DONE (anv, lvp, radv, tu, v3dv, vn)
457
VK_KHR_imageless_framebuffer DONE (anv, lvp, radv, vn)
458
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, lvp, radv, tu, v3dv, vn)
459
VK_KHR_separate_depth_stencil_layouts DONE (anv, lvp, radv, vn)
460
VK_KHR_shader_atomic_int64 DONE (anv/gen9+, lvp, radv, vn)
461
VK_KHR_shader_float16_int8 DONE (anv/gen8+, radv, tu, vn)
462
VK_KHR_shader_float_controls DONE (anv/gen8+, radv, tu, vn)
463
VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, radv, vn)
464
VK_KHR_spirv_1_4 DONE (anv, radv, tu, vn)
465
VK_KHR_timeline_semaphore DONE (anv, radv, tu, vn)
466
VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv, v3dv, vn)
467
VK_KHR_vulkan_memory_model DONE (anv, radv, tu, vn)
468
VK_EXT_descriptor_indexing DONE (anv/gen9+, radv, tu, vn)
469
VK_EXT_host_query_reset DONE (anv, lvp, radv, tu, vn)
470
VK_EXT_sampler_filter_minmax DONE (anv/gen9+, lvp, radv, tu, vn)
471
VK_EXT_scalar_block_layout DONE (anv, lvp, radv/gfx7+, tu, vn)
472
VK_EXT_separate_stencil_usage DONE (anv, lvp, tu, vn)
473
VK_EXT_shader_viewport_index_layer DONE (anv, lvp, radv, tu, vn)
474
475
Khronos extensions that are not part of any Vulkan version:
476
477
VK_KHR_android_surface not started
478
VK_KHR_copy_commands2 DONE (anv, lvp, radv, v3dv)
479
VK_KHR_deferred_host_operations DONE (anv, radv)
480
VK_KHR_display DONE (anv, lvp, radv, tu, v3dv)
481
VK_KHR_display_swapchain not started
482
VK_KHR_external_fence_fd DONE (anv, radv, tu, v3dv)
483
VK_KHR_external_fence_win32 not started
484
VK_KHR_external_memory_fd DONE (anv, radv, tu, v3dv)
485
VK_KHR_external_memory_win32 not started
486
VK_KHR_external_semaphore_fd DONE (anv, radv, tu, v3dv)
487
VK_KHR_external_semaphore_win32 not started
488
VK_KHR_fragment_shading_rate not started
489
VK_KHR_get_display_properties2 DONE (anv, lvp, radv, tu, v3dv)
490
VK_KHR_get_surface_capabilities2 DONE (anv, lvp, radv, tu, v3dv, vn)
491
VK_KHR_incremental_present DONE (anv, lvp, radv, tu, v3dv)
492
VK_KHR_performance_query DONE (anv/gen8+, tu)
493
VK_KHR_pipeline_executable_properties DONE (anv, radv, tu)
494
VK_KHR_push_descriptor DONE (anv, lvp, radv, tu)
495
VK_KHR_shader_clock DONE (anv, radv)
496
VK_KHR_shader_non_semantic_info DONE (anv, radv)
497
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, radv)
498
VK_KHR_shader_terminate_invocation DONE (anv, radv, tu)
499
VK_KHR_shared_presentable_image not started
500
VK_KHR_surface DONE (anv, lvp, radv, tu, v3dv, vn)
501
VK_KHR_surface_protected_capabilities DONE (anv, lvp, radv, vn)
502
VK_KHR_swapchain DONE (anv, lvp, radv, tu, v3dv)
503
VK_KHR_swapchain_mutable_format DONE (anv, radv)
504
VK_KHR_wayland_surface DONE (anv, lvp, radv, tu, v3dv, vn)
505
VK_KHR_workgroup_memory_explicit_layout DONE (anv, radv)
506
VK_KHR_win32_keyed_mutex not started
507
VK_KHR_win32_surface DONE (lvp)
508
VK_KHR_xcb_surface DONE (anv, lvp, radv, tu, v3dv, vn)
509
VK_KHR_xlib_surface DONE (anv, lvp, radv, tu, v3dv, vn)
510
VK_KHR_zero_initialize_workgroup_memory DONE (anv, radv)
511
VK_EXT_4444_formats DONE (anv, radv, tu)
512
VK_EXT_calibrated_timestamps DONE (anv, lvp, radv)
513
VK_EXT_color_write_enable DONE (anv)
514
VK_EXT_conditional_rendering DONE (anv, lvp, radv, tu)
515
VK_EXT_conservative_rasterization DONE (anv/gen9+, radv)
516
VK_EXT_custom_border_color DONE (anv, lvp, radv, tu)
517
VK_EXT_debug_marker DONE (radv)
518
VK_EXT_depth_clip_enable DONE (anv, radv, tu)
519
VK_EXT_depth_range_unrestricted DONE (radv)
520
VK_EXT_discard_rectangles DONE (radv)
521
VK_EXT_display_control DONE (anv, radv, tu)
522
VK_EXT_extended_dynamic_state DONE (anv, lvp, radv, tu)
523
VK_EXT_extended_dynamic_state2 DONE (anv, lvp, radv)
524
VK_EXT_external_memory_dma_buf DONE (anv, radv, tu, v3dv)
525
VK_EXT_external_memory_host DONE (anv, radv)
526
VK_EXT_filter_cubic DONE (tu/a650)
527
VK_EXT_fragment_shader_interlock DONE (anv/gen9+)
528
VK_EXT_global_priority DONE (anv, radv)
529
VK_EXT_image_drm_format_modifier DONE (anv, radv/gfx9+, tu)
530
VK_EXT_image_robustness DONE (anv, radv)
531
VK_EXT_index_type_uint8 DONE (anv, lvp, radv/gfx8+, v3dv, tu)
532
VK_EXT_inline_uniform_block DONE (anv, radv)
533
VK_EXT_line_rasterization DONE (anv, lvp, radv)
534
VK_EXT_memory_budget DONE (anv, radv, tu)
535
VK_EXT_memory_priority DONE (radv)
536
VK_EXT_multi_draw DONE (anv, lvp, radv)
537
VK_EXT_pci_bus_info DONE (anv, radv)
538
VK_EXT_physical_device_drm DONE (anv, radv)
539
VK_EXT_pipeline_creation_cache_control DONE (anv, radv)
540
VK_EXT_pipeline_creation_feedback DONE (anv, radv)
541
VK_EXT_post_depth_coverage DONE (anv/gfx10+, lvp, radv)
542
VK_EXT_private_data DONE (anv, lvp, radv, tu, v3dv)
543
VK_EXT_provoking_vertex DONE (anv, lvp, radv, tu)
544
VK_EXT_queue_family_foreign DONE (anv, radv)
545
VK_EXT_robustness2 DONE (anv, radv, tu)
546
VK_EXT_sample_locations DONE (anv, radv/gfx9-, tu/a650)
547
VK_EXT_shader_atomic_float DONE (anv, radv)
548
VK_EXT_shader_demote_to_helper_invocation DONE (anv, radv, tu)
549
VK_EXT_shader_image_atomic_int64 DONE (radv)
550
VK_EXT_shader_stencil_export DONE (anv/gen9+, lvp, radv, tu)
551
VK_EXT_shader_subgroup_ballot DONE (anv, radv)
552
VK_EXT_shader_subgroup_vote DONE (anv, radv)
553
VK_EXT_subgroup_size_control DONE (anv, radv)
554
VK_EXT_texel_buffer_alignment DONE (anv, radv)
555
VK_EXT_transform_feedback DONE (anv, lvp, radv, tu, vn)
556
VK_EXT_vertex_attribute_divisor DONE (anv, radv, lvp, tu)
557
VK_EXT_vertex_input_dynamic_state DONE (lvp)
558
VK_EXT_ycbcr_image_arrays DONE (anv, radv)
559
VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, radv)
560
VK_ANDROID_native_buffer DONE (anv, radv)
561
VK_GOOGLE_decorate_string DONE (anv, lvp, radv)
562
VK_GOOGLE_hlsl_functionality1 DONE (anv, lvp, radv)
563
VK_GOOGLE_user_type DONE (anv, radv)
564
VK_IMG_filter_cubic DONE (tu/a650)
565
VK_NV_compute_shader_derivatives DONE (anv, radv)
566
VK_EXT_acquire_drm_display DONE (radv, anv)
567
568
569
OpenCL 1.0 -- all DONE:
570
571
Image support in progress
572
573
574
OpenCL 1.1 -- all DONE:
575
576
Additional queries for clGetDeviceInfo DONE (nvc0, r600, radeonsi)
577
CL_CONTEXT_NUM_DEVICES for clGetContextInfo DONE
578
Optional image formats not started
579
clCreateSubBuffer DONE
580
Read from, write to, copy rectangular regions DONE
581
clSetMemObjectDestructorCallback DONE
582
Control OpenCL C version when building DONE
583
Query for preferred work-group size multiple DONE (nvc0, r600, radeonsi)
584
Support user events DONE
585
clSetEventCallback DONE
586
Minimum requirement changes for clGetDeviceInfo DONE (nvc0, r600, radeonsi)
587
Arg prerequisite change for clEnqueueNDRangeKernel DONE ()
588
3-component vector data types DONE (nvc0, r600, radeonsi)
589
cl_khr_byte_addressable_store DONE (nvc0, r600, radeonsi)
590
cl_khr_global_int32_base_atomics DONE (nvc0, r600, radeonsi)
591
cl_khr_global_int32_extended_atomics DONE (nvc0, r600, radeonsi)
592
cl_khr_local_int32_base_atomics DONE (nvc0, r600, radeonsi)
593
cl_khr_local_int32_extended_atomics DONE (nvc0, r600, radeonsi)
594
595
596
OpenCL 1.2 -- all DONE:
597
598
Custom devices DONE
599
Built-in kernels DONE ()
600
Device partitioning DONE ()
601
Separate compilation and linking of programs DONE
602
Extend cl_mem_flags DONE
603
clEnqueueFillBuffer, clEnqueueFillImage DONE
604
Add CL_MAP_WRITE_INVALIDATE_REGION to cl_map_flags DONE
605
New image types not started
606
clCreateImage DONE
607
clEnqueueMigrateMemObjects DONE
608
Retrieve kernels information from a program DONE
609
clGetKernelArgInfo DONE
610
clEnqueueMarkerWithWaitList DONE
611
clEnqueueBarrierWithWaitList DONE
612
clUnloadPlatformCompiler DONE
613
cl_khr_fp64 DONE (nvc0, r600, radeonsi)
614
printf DONE (nvc0)
615
CL_KERNEL_ATTRIBUTES for clGetKernelInfo DONE
616
617
618
OpenCL 2.0 -- all DONE:
619
620
Shared virtual memory DONE (nvc0)
621
Device queues not started
622
- cl_khr_create_command_queue not started
623
- Additional queries for clGetDeviceInfo not started
624
Pipes not started
625
Extended 2D images creation not started
626
- cl_khr_image2d_from_buffer not started
627
- cl_khr_depth_images not started
628
- from sRGB images not started
629
clCreateSamplerWithProperties not started
630
cl_khr_3d_image_writes not started
631
632
633
OpenCL 2.1 -- all DONE:
634
635
Sub groups not started
636
- cl_khr_subgroups not started
637
- Additional queries for clGetDeviceInfo not started
638
cl_khr_il_program DONE (nvc0)
639
Device and host timer synchronization not started
640
clEnqueueSVMMigrateMem not started
641
clCloneKernel not started
642
Default device command queue not started
643
644
645
OpenCL 2.2 -- all DONE:
646
647
clSetProgramSpecializationConstant not started
648
clSetProgramReleaseCallback not started
649
Initialization and clean-up kernels not started
650
CL_MAX_SIZE_RESTRICTION_EXCEEDED for clSetKernelArg not started
651
Support SPIR-V 1.1 and 1.2 not started
652
653
654
OpenCL 3.0 -- all DONE
655
656
Optional device capabilities queries in progress
657
cl_khr_extended_versioning DONE
658
clSetContextDestructorCallback DONE
659
clCreateBufferWithProperties DONE
660
clCreateImageWithProperties DONE
661
Query properties arrays in progress
662
Supported OpenCL C versions and features queries DONE
663
CL_COMMAND_SVM_MIGRATE_MEM for clGetEventInfo not started
664
Latest conformance version passed for devices not started
665
666
667
Khronos, and EXT extensions that are not part of any OpenCL version:
668
669
cl_ext_atomic_counters_32 not started
670
cl_ext_atomic_counters_64 not started
671
cl_ext_device_fission not started
672
cl_ext_migrate_memobject not started
673
cl_khr_async_work_group_copy_fence not started
674
cl_khr_d3d10_sharing not started
675
cl_khr_d3d11_sharing not started
676
cl_khr_device_enqueue_local_arg_types not started
677
cl_khr_dx9_media_sharing not started
678
cl_khr_egl_event not started
679
cl_khr_egl_image not started
680
cl_khr_extended_async_copies not started
681
cl_khr_fp16 DONE ()
682
cl_khr_gl_depth_images not started
683
cl_khr_gl_event not started
684
cl_khr_gl_msaa_sharing not started
685
cl_khr_gl_sharing not started
686
cl_khr_icd DONE
687
cl_khr_initialize_memory not started
688
cl_khr_int64_base_atomics DONE ()
689
cl_khr_int64_extended_atomics DONE ()
690
cl_khr_mipmap_image not started
691
cl_khr_mipmap_image_writes not started
692
cl_khr_priority_hints not started
693
cl_khr_select_fprounding_mode not started
694
cl_khr_spir not started
695
cl_khr_srgb_image_writes not started
696
cl_khr_subgroup_named_barrier not started
697
cl_khr_subgroups not started
698
cl_khr_terminate_context not started
699
cl_khr_throttle_hints not started
700
701
702
Vendor specific extensions that are not part of any OpenCL version:
703
704
cl_arm_shared_virtual_memory DONE (nvc0)
705
706
707
The following extensions are not part of any OpenCL version, and we DO NOT WANT
708
implementations of these extensions for Mesa.
709
710
cl_nv_d3d10_sharing Superseded by cl_khr_d3d10_sharing
711
cl_nv_d3d11_sharing Superseded by cl_khr_d3d10_sharing
712
713
714
A graphical representation of this information can be found at
715
https://mesamatrix.net/
716
717