1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Mesa's OpenGL 3.0 TODO List Is Becoming Smaller

Mesa

Published on 30 June 2011 04:35 PM EDT
Written by Michael Larabel in Mesa
15 Comments

Via a commit to the TODO list concerning Mesa's support for the OpenGL 3.0 specification, Marek Olšák has confirmed that vertex texture image units for OGL3 are "DONE" and working on the R600 Gallium3D driver.

The OpenGL 3.0 target is actually getting shockingly close to completion. According to their TODO list, all that's left is completing the GLSL 1.30 (GL Shading Language) work, float-depth buffers, non-normalized Integer texture/frame-buffer formats, 1D/2D texture arrays, transform feedback, sRGB frame-buffer format, and depth-format cube textures. Of those outstanding action items, some items like 1D/2D texture arrays is setup within core Mesa and the software rasterizer, but isn't yet implemented by the hardware drivers.

The only items for attaining OpenGL 3.0 support that haven't been worked on at all are the float-depth buffers and depth format cube textures. Likely the biggest work item to achieve though is the proper GL Shading Language 1.30 support. Working a bit towards the GLSL 1.30 milestone is the GLSL IR to TGSI direct translator, which adds native integer support, but the Gallium3D drivers need to support the proper TGSI opcode.

Here's what the official OpenGL 3.0 TODO list looks like as of this afternoon:
GLSL 1.30 (GL_EXT_gpu_shader4, etc.) started
Conditional rendering (GL_NV_conditional_render) DONE (swrast, softpipe, i965)
Map buffer subranges (GL_ARB_map_buffer_range) DONE
Clamping controls (GL_ARB_color_buffer_float) DONE
Float textures, renderbuffers (GL_ARB_texture_float) DONE (gallium r300)
GL_EXT_packed_float DONE (gallium r600)
GL_EXT_texture_shared_exponent DONE (gallium, swrast)
Float depth buffers (GL_ARB_depth_buffer_float) not started
Framebuffer objects (GL_EXT_framebuffer_object) DONE
Half-float DONE
Multisample blit DONE
Non-normalized Integer texture/framebuffer formats ~50% done
1D/2D Texture arrays core Mesa, swrast done
Packed depth/stencil formats DONE
Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE
GL_EXT_texture_compression_rgtc DONE (swrast, gallium r600)
Red and red/green texture formats DONE (swrast, i965, gallium)
Transform feedback (GL_EXT_transform_feedback) ~50% done
glBindFragDataLocation, glGetFragDataLocation,
glBindBufferRange, glBindBufferBase commands
Vertex array objects (GL_APPLE_vertex_array_object) DONE
sRGB framebuffer format (GL_EXT_framebuffer_sRGB) core GL done (i965, gallium), GLX todo
glClearBuffer commands DONE
glGetStringi command DONE
glTexParameterI, glGetTexParameterI commands DONE
glVertexAttribI commands DONE (but converts int
values to floats)
Depth format cube textures 0% done

When all of those items are marked as being done, it will be released as Mesa 8.0. This could end up being the next release rather than Mesa 7.12 if the developers and community are able to nail in the final bits of OpenGL 3.0 / GLSL 1.30 support over the next six months.

While it will be good to finally see open-source driver support for the OpenGL 3.0 specification, by the time it's here, the Khronos Group specification will have been nearly five years old. The proprietary ATI/AMD and NVIDIA graphics drivers on Linux have meanwhile supported GL3 from nearly the start.

Beyond OpenGL 3.0, there's already 3.1/3.2/3.3 and even OpenGL 4.0/4.1 to additionally address. Several of the work items for OpenGL 3.1/3.2 compliance have been addressed, with the main 3.1 items left being texture buffer objects, uniform buffer objects, and GLSL 1.40 support. Six of the nine OpenGL 3.1 items are already marked as done.

With OpenGL 3.2, seven of the 11 items are "DONE", but the items that are untouched include the core/compatibility profiles, GLSL 1.50, and multi-sample textures. For OpenGL 3.3, 4.0, and 4.1 the burden is much greater and it's unlikely we'll see such support within the next year or two, unless some vendor(s) dramatically step-up their efforts.

The GL3/GL4 TODO list is available from the Mesa Git tree.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  2. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  3. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
  4. AMD Radeon R9 285 Tonga Performance On Linux
Latest Linux Articles
  1. 6-Way Ubuntu 14.10 Linux Desktop Benchmarks
  2. Ubuntu 14.10 XMir System Compositor Benchmarks
  3. Btrfs RAID HDD Testing On Ubuntu Linux 14.10
  4. Ubuntu 14.10 Linux 32-bit vs. 64-bit Performance
Latest Linux News
  1. Mono Brings C# To The Unreal Engine 4
  2. Coreboot Now Has Support For Intel Broadwell Hardware
  3. Enlightenment's EFL 1.12 Alpha Has Evas GL-DRM Engine, OpenGL ES 1.1 Support
  4. GTK+ Lands Experimental Backend For Mir Display Server
  5. Ubuntu 14.10 Officially Released
  6. Mesa 10.4 Might Re-Enable HyperZ For R600g/RadeonSI
  7. Intel GVT-g GPU Virtualization Moves Closer
  8. GTK+ 3.16 To Bring Several New Features
  9. Debian 8.0 Jessie Has Many Multimedia Improvements
  10. What Linux Benchmarks Would You Like To See Next?
Latest Forum Discussions
  1. Linux hacker compares Solaris kernel code:
  2. HOPE: The Ease Of Python With The Speed Of C++
  3. Advertisements On Phoronix
  4. Updated and Optimized Ubuntu Free Graphics Drivers
  5. Users/Developers Threatening Fork Of Debian GNU/Linux
  6. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  7. AMD Releases UVD Video Decode Support For R600 GPUs
  8. Proof that strlcpy is un-needed