[Mesa-dev] XOrg EVoC - Piglit tests for ARB_gpu_shader5 and ARB_tessellation_shader

Ken Phillis Jr kphillisjr at gmail.com
Thu Jul 19 16:14:23 PDT 2012

On Thu, Jul 19, 2012 at 10:13 AM, Eric Anholt <eric at anholt.net> wrote:
> Ken Phillis Jr <kphillisjr at gmail.com> writes:
>> Hi, I am looking to enter the Xorg EVoC for 2012, and am wanting to Implement
>> two Core extensions for OpenGL 4.0 and GLSL 4.00.
>> ------------------------------------------------------------------------
>> Name:
>>       Piglit - Implement Tessellation shaders Extension Tests
>> Summary:
>>       To implement the initial Tessellation shader support into the Piglit testing
>>       framework. This will be done using extensions to OpenGL 3.2, and GLSL 1.50.
>>       These extensions are called ARB_tessellation_shader, and ARB_gpu_shader5.
> This is also a bit of putting the cart in front of the horse in terms of
> piglit's development, since we don't even have geometry shader testing
> yet, which is required for tesselation.  Intel's plans at least don't
> have us doing GL 3.2 (geometry shaders) until 2013, and I don't expect
> other community folks to jump on it, at least testing-wise, before then.

I know that the opengl 3.x code is not in place for mesa for the most
part. It's just that it's probably more worth while to add as much
tests as possible to get people interested in developing mesa and the

>> Description:
>>       I would like to start off by studying the Piglit code base, and looking at
>>       what changes are required so that the OpenGL 3.20, and GLSL 1.50 overall
>>       requirements for these extensions are met. If there is no major problems
>>       with the current framework, I'll start Implementing the numerous tests of
>>       ARB_tessellation_shader. Once I finish Implementing the tests for this
>>       extension, I will move on to the ARB_gpu_shader5 extension, and Implement
>>       the core of this extension. Once both Extensions are finished, I will start
>>       implementation of the Interaction tests with other extensions.
>>       At the end of each Stage I will submit a review of All the code written up
>>       to that point, and Improve the overall readability. This includes adding
>>       documentation, and comments where Features are added and/or modified.
> The piece I'm wondering about is how you're going to test your test
> code.  You didn't mention what drivers you'd be working with to do so.
> Do you have both AMD and NVIDIA hardware available that you can validate
> your tests against?  Though both drivers frequently have conformance
> issues, you usually need to have some explanation for what they're doing
> and how it's wrong.

I was planning on testing against Opengl 4.x capable Nvidia and Radeon
 graphics cards. Also, needless to say, that also includes testing
their latest drivers to at least make sure the tests are somewhat
working properly. After All, It's not that difficult to expect that
both cards will have drivers that don't fully comply with all the

>> Schedule:
>>       I plan on working on this project full time for 10 to 14 weeks, and then
>>       continue working on this project for another 2 to 4 weeks part time
>>       improving documentation and code readability.
>>               *Week 1: Study the Specifications and Piglit's Design, and Start
>>                       implementing the Missing features that will prevent general testing
>>                       of these two extensions. If no Changes are required, the
>>                       Implementation of ARB_tessellation_shader will start.
>>               *Week 2-4: Continue Implementing the tests and Utilities for the
>>                       extension ARB_tessellation_shader.
>>               *Week 5: Submit the ARB_tessellation_shader source for Code Review, and
>>                       begin Implementing ARB_gpu_shader5 Utilities and tests.
> Please start submitting new tests as soon as you have a couple done and
> ready.  It would be sad to get to week 5 and find a bunch of coding
> style-type issues that you had to go fix up on all the tests.

All along the development will be sent regularly to the publicly
available github repository (https://github.com/kphillisjr/piglit ).
This means that when work is completed it's first sent here, and then
if a user (or developer ) wants to pull the changes and test them
themselves they are free to do so. The 5th week is more of a broad
request for test users to be able to see if the tests are working and
also see if the tests actually cause some systems to crash because of
driver bugs. I will also probably wind up sending a request with more
than 20 patches at this time.

>>               *Week 6-7: Continue the ARB_gpu_shader5 Implementation.
>>               *Week 8: Submit ARB_gpu_shader5 sources for Code Review, and then begin
>>                       Implementing the code review changes for ARB_tessellation_shader.
>>               *Week 9: Continue Implementing code review Changes, and begin work on
>>                       ARB_gpu_shader5, and ARB_tessellation_shader interactions.
>>               *Week 10-12: Continue Implementation of Interactions, and Apply
>>                       changes suggested in code review.
>>               *Week 13+: Submit Code for Final Review Once Again, and apply fixes.

weeks 6 on is more about bring the other portions together.

ARB_gpu_shader5 is a small extension of the exist geometry shader
code, and ARB_tessellation_shader does not specifically require this.

More information about the mesa-dev mailing list