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.

Latest Linux Hardware Reviews
  1. 13-Way Low-End GPU Comparison With AMD's AM1 Athlon
  2. ASUS AM1I-A: A Mini-ITX Board For Socketed Kabini APUs
  3. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  4. Overclocking The AMD AM1 Athlon & Sempron APUs
Latest Linux Articles
  1. Ubuntu 12.04.4 vs. 13.10 vs. 14.04 LTS Desktop Benchmarks
  2. AMD OpenCL Performance With AM1 Kabini APUs
  3. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  4. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
Latest Linux News
  1. Git 2.0 Test Releases Begin With Many Changes
  2. Wine 1.7.17 Works On Its Task Scheduler, C Run-Time
  3. The Improv ARM Board Still Isn't Shipping; Riding A Dead Horse?
  4. Debian To Maintain 6.0 Squeeze As An LTS Release
  5. Wasteland 2 Is Finally Released For Linux Gamers
  6. FreeBSD Advances For ARM, Bhyve, Clang
  7. Ubuntu 14.04 LTS "Trusty Tahr" Officially Released
  8. Ubuntu 12.04 LTS vs. 14.04 LTS Server Benchmarks
  9. QEMU 2.0 Released With ARM, x86 Enhancements
  10. Running The Unity 8 Preview Session On Ubuntu 14.04 LTS
  11. R600 Gallium3D Disables LLVM Back-End By Default
  12. Fedora 21 Gets GNOME 3.12, PHP 5.6, Mono 3.4
Latest Forum Discussions
  1. Suggestions about how to make a Radeon HD 7790 work decently?
  2. The GNOME Foundation Is Running Short On Money
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. Radeon 8000M problematic on Linux?
  5. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  6. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  7. Suspected PHP Proxy Issue
  8. Change installation destination from home directory