docs: Expand ARB_gpu_shader5 to describe status of individual features
[mesa.git] / docs / GL3.txt
1
2 Status of OpenGL 3.x features in Mesa
3
4
5 Note: when an item is marked as "DONE" it means all the core Mesa
6 infrastructure is complete but it may be the case that few (if any) drivers
7 implement the features.
8
9
10 OpenGL Core and Compatibility context support
11
12 OpenGL 3.1 and later versions are only supported with the Core profile.
13 There are no plans to support GL_ARB_compatibility. The last supported OpenGL
14 version with all deprecated features is 3.0. Some of the later GL features
15 are exposed in the 3.0 context as extensions.
16
17
18 Feature Status
19 ----------------------------------------------------- ------------------------
20
21 GL 3.0 --- all DONE: i965, nv50, nvc0, r600, radeonsi
22
23 GLSL 1.30 DONE ()
24 glBindFragDataLocation, glGetFragDataLocation DONE
25 Conditional rendering (GL_NV_conditional_render) DONE (r300, swrast)
26 Map buffer subranges (GL_ARB_map_buffer_range) DONE (r300, swrast)
27 Clamping controls (GL_ARB_color_buffer_float) DONE (r300)
28 Float textures, renderbuffers (GL_ARB_texture_float) DONE (r300)
29 GL_EXT_packed_float DONE ()
30 GL_EXT_texture_shared_exponent DONE (swrast)
31 Float depth buffers (GL_ARB_depth_buffer_float) DONE ()
32 Framebuffer objects (GL_ARB_framebuffer_object) DONE (r300, swrast)
33 GL_ARB_half_float_pixel DONE (all drivers)
34 GL_ARB_half_float_vertex DONE (r300, swrast)
35 GL_EXT_texture_integer DONE ()
36 GL_EXT_texture_array DONE ()
37 Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (swrast)
38 GL_EXT_texture_compression_rgtc DONE (r300, swrast)
39 GL_ARB_texture_rg DONE (r300, swrast)
40 Transform feedback (GL_EXT_transform_feedback) DONE ()
41 Vertex array objects (GL_ARB_vertex_array_object) DONE (all drivers)
42 sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE ()
43 glClearBuffer commands DONE
44 glGetStringi command DONE
45 glTexParameterI, glGetTexParameterI commands DONE
46 glVertexAttribI commands DONE
47 Depth format cube textures DONE ()
48 GLX_ARB_create_context (GLX 1.4 is required) DONE
49 Multisample anti-aliasing DONE (r300)
50
51
52 GL 3.1 --- all DONE: i965, nv50, nvc0, r600, radeonsi
53
54 GLSL 1.40 DONE ()
55 Forward compatible context support/deprecations DONE ()
56 Instanced drawing (GL_ARB_draw_instanced) DONE (swrast)
57 Buffer copying (GL_ARB_copy_buffer) DONE (r300, swrast)
58 Primitive restart (GL_NV_primitive_restart) DONE (r300)
59 16 vertex texture image units DONE ()
60 Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts ()
61 Rectangular textures (GL_ARB_texture_rectangle) DONE (r300, swrast)
62 Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE (swrast)
63 Signed normalized textures (GL_EXT_texture_snorm) DONE (r300)
64
65
66 GL 3.2 --- all DONE: i965, nv50, nvc0, r600, radeonsi
67
68 Core/compatibility profiles DONE
69 GLSL 1.50 DONE ()
70 Geometry shaders DONE ()
71 BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (r300, swrast)
72 Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (r300, swrast)
73 Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (r300, swrast)
74 Provoking vertex (GL_ARB_provoking_vertex) DONE (r300, swrast)
75 Seamless cubemaps (GL_ARB_seamless_cube_map) DONE ()
76 Multisample textures (GL_ARB_texture_multisample) DONE ()
77 Frag depth clamp (GL_ARB_depth_clamp) DONE (swrast)
78 Fence objects (GL_ARB_sync) DONE (r300, swrast)
79 GLX_ARB_create_context_profile DONE
80
81
82 GL 3.3 --- all DONE: i965, nv50, nvc0, r600, radeonsi
83
84 GLSL 3.30 DONE ()
85 GL_ARB_blend_func_extended DONE (softpipe)
86 GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
87 GL_ARB_occlusion_query2 DONE (r300, swrast)
88 GL_ARB_sampler_objects DONE (all drivers)
89 GL_ARB_shader_bit_encoding DONE ()
90 GL_ARB_texture_rgb10_a2ui DONE ()
91 GL_ARB_texture_swizzle DONE (r300, swrast)
92 GL_ARB_timer_query DONE ()
93 GL_ARB_instanced_arrays DONE (r300)
94 GL_ARB_vertex_type_2_10_10_10_rev DONE ()
95
96
97 GL 4.0:
98
99 GLSL 4.0 not started
100 GL_ARB_texture_query_lod DONE (i965, nv50, nvc0)
101 GL_ARB_draw_buffers_blend DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
102 GL_ARB_draw_indirect DONE (i965)
103 GL_ARB_gpu_shader5 started
104 - 'precise' qualifier not started
105 - Dynamically uniform sampler array indices not started
106 - Unrestricted UBO array indices not started
107 - Implicit signed -> unsigned conversions not started
108 - Fused multiply-add DONE
109 - Packing/bitfield/conversion functions DONE
110 - Enhanced textureGather DONE
111 - Geometry shader instancing DONE
112 - Geometry shader multiple streams not started
113 - Enhanced per-sample shading DONE
114 - Interpolation functions started
115 GL_ARB_gpu_shader_fp64 not started
116 GL_ARB_sample_shading DONE (i965)
117 GL_ARB_shader_subroutine not started
118 GL_ARB_tessellation_shader not started
119 GL_ARB_texture_buffer_object_rgb32 DONE (i965, nvc0, r600, radeonsi, softpipe)
120 GL_ARB_texture_cube_map_array DONE (i965, nv50, nvc0, r600, softpipe)
121 GL_ARB_texture_gather DONE (i965, nv50, nvc0)
122 GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi)
123 GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi)
124
125
126 GL 4.1:
127
128 GLSL 4.1 not started
129 GL_ARB_ES2_compatibility DONE (i965, nv50, nvc0, r300, r600, radeonsi)
130 GL_ARB_get_program_binary DONE (0 binary formats)
131 GL_ARB_separate_shader_objects started (Ian Romanick, Gregory Hainaut)
132 GL_ARB_shader_precision not started
133 GL_ARB_vertex_attrib_64bit not started
134 GL_ARB_viewport_array DONE (i965, nv50, r600)
135
136
137 GL 4.2:
138
139 GLSL 4.2 not started
140 GL_ARB_texture_compression_bptc not started
141 GL_ARB_compressed_texture_pixel_storage not started
142 GL_ARB_shader_atomic_counters DONE (i965)
143 GL_ARB_texture_storage DONE (all drivers)
144 GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi)
145 GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi)
146 GL_ARB_shader_image_load_store in progress (curro)
147 GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
148 GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
149 GL_ARB_internalformat_query DONE (i965, nv50, nvc0, r300, r600, radeonsi)
150 GL_ARB_map_buffer_alignment DONE (all drivers)
151
152
153 GL 4.3:
154
155 GLSL 4.3 not started
156 GL_ARB_arrays_of_arrays started
157 GL_ARB_ES3_compatibility DONE (i965)
158 GL_ARB_clear_buffer_object DONE (all drivers)
159 GL_ARB_compute_shader started (Paul Berry)
160 GL_ARB_copy_image not started
161 GL_KHR_debug DONE (all drivers)
162 GL_ARB_explicit_uniform_location not started
163 GL_ARB_fragment_layer_viewport not started
164 GL_ARB_framebuffer_no_attachments not started
165 GL_ARB_internalformat_query2 not started
166 GL_ARB_invalidate_subdata DONE (all drivers)
167 GL_ARB_multi_draw_indirect DONE (i965)
168 GL_ARB_program_interface_query not started
169 GL_ARB_robust_buffer_access_behavior not started
170 GL_ARB_shader_image_size not started
171 GL_ARB_shader_storage_buffer_object not started
172 GL_ARB_stencil_texturing DONE (i965/gen8+)
173 GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi)
174 GL_ARB_texture_query_levels DONE (i965)
175 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
176 GL_ARB_texture_view DONE (i965)
177 GL_ARB_vertex_attrib_binding DONE (all drivers)
178
179
180 GL 4.4:
181
182 GLSL 4.4 not started
183 GL_MAX_VERTEX_ATTRIB_STRIDE not started
184 GL_ARB_buffer_storage DONE (i965, r300, r600, radeonsi)
185 GL_ARB_clear_texture not started
186 GL_ARB_enhanced_layouts not started
187 GL_ARB_multi_bind started (Fredrik Höglund)
188 GL_ARB_query_buffer_object not started
189 GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi, swrast)
190 GL_ARB_texture_stencil8 not started
191 GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600)
192
193
194 More info about these features and the work involved can be found at
195 http://dri.freedesktop.org/wiki/MissingFunctionality