If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Hybrid View

AMD R600g Now Does TBO, UBO & Advertises GLSL 1.40

Phoronix: AMD R600g Now Does TBO, UBO & Advertises GLSL 1.40

Last year UBO and TBO for the Radeon R600 Gallium3D driver was talked about and early patches proposed, but merged on Friday was finally this support for Uniform Buffer Objects and Texture Buffer Objects. With the OpenGL UBO/TBO support, the Radeon R600g driver is now advertising GLSL 1.40 as needed for OpenGL 3.1 compliance...

There is a tree on github with unproven geometry shader code for r600g, intel would need to add 965 support, it just needs a lot of piglit tests and a lot of review, the last missing bit then is GL_ARB_texture_multisample which is also under construction by another dev for 965, which could be fixed up for gallium fairly easily hopefully.

but writing the piglit tests for geometry shaders is probably the biggest problem.

There is a tree on github with unproven geometry shader code for r600g, intel would need to add 965 support, it just needs a lot of piglit tests and a lot of review, the last missing bit then is GL_ARB_texture_multisample which is also under construction by another dev for 965, which could be fixed up for gallium fairly easily hopefully.

but writing the piglit tests for geometry shaders is probably the biggest problem.

Dave.

Although there are no piglit tests for it yet, my geometry shader code on GitHub has had a decent amount of stress-testing; I'm not too concerned about an abundance of bugs in the existing code. Aside from piglit tests (which are, as you say, the biggest problem), though, there are a few other things that need to be done:

The changes will need to be rebased and reformatted into a sane patch set rather than the current haphazard mix of commits that add functionality with commits to fix mistakes in previous changes.

The interactions with FBOs (section "Dependencies on EXT_framebuffer_object" in the ARB_geometry_shader4 spec) need to be implemented. This might only be needed for the EXT/ARB extensions and not core, but with this much work done on the extensions it would be silly not to support them as well as the core version. It seems that doing this properly will also require changes to the softpipe driver.

If it hasn't already been done, the GLSL compiler will need to implement the core version of the geometry shader language. The main change is using the "gl_in[]" struct array for input/output instead of one input array per attribute. This will just require a lowering pass to lower gl_PerVertex accesses to the 2D array accesses used in the extension, which can be (and already are) sanely translated to TGSI by glsl_to_tgsi.

Also, sorry for suddenly disappearing from the graphics world last year. Hopefully I will be able to be able to do more for Mesa in the future, but for now there's not much choice but to leave my unfinished geometry shader work to be completed by someone else.