[Piglit] [PATCH 00/16] Verify that meta does not pollute object namespaces

Ian Romanick idr at freedesktop.org
Wed Jan 6 16:53:00 PST 2016


From: Ian Romanick <ian.d.romanick at intel.com>

Here is the nearly complete set of tests.  There still a couple things
that should be done and a couple that could be done... but probably
aren't worth the effort.  More on that below.

The current series tests the cross-product of GL operations that are
implemented in meta and GL object types that could suffer from namespace
pollution problems.  Objects types tested are:

    Buffers
    Textures
    Framebuffers
    Renderbuffers
    Apple vertex array objects
    vertex and fragment assembly programs

Operations that are tests:

    glClear
    glBitmap
    glDrawPixels from client memory
    glCopyPixels from client memory
    glClearTexSubImage
    glTexSubImage2D from a PBO
    glGetTexImage to a PBO
    glGetTexImage of a compressed texture to a PBO
    glBlitFramebuffer
    glCopyImageSubData

These tests should be ported to OpenGL ES 1.x, and a test for
glDrawTexOES (from GL_OES_draw_texture).  I think Emil already
volunteered to do that. :)

In addition, we could test ATI fragment shader objects and occlusion
query objects.  I did not implement these for two reasons.  First, I
know that meta does not use them, so the tests should pass.  Second,
testing those object types will be a fair amount of work.  ATI fragment
shader objects don't support any query functions.  The only way to
determine that such an object was polluted would be to render using it.
Similarly, query objects require rendering to get any state in the first
place.  I feel like it's not worth the effort to test these two object
types.  Should someone feel like implementing it, I will gladly review
the patches.  Just be sure to CC me.

Ian Romanick (16):
  namespace-pollution: Initial framework and test cases for namespace
    pollution
  namespace-pollution: Add glBitmap as an operation to test
  namespace-pollution: Add glDrawPixels as an operation to test
  namespace-pollution: Add glCopyPixels as an operation to test
  namespace-pollution: Add glCopyTexSubImage2D as an operation to test
  namespace-pollution: Add glClearTexSubImage as an operation to test
  namespace-pollution: Add glTexSubImage2D as an operation to test
  namespace-pollution: Add glGetTexImage as an operation to test
  namespace-pollution: Add glBlitFramebuffer as an operation to test
  namespace-pollution: Add glCopyImageSubData as an operation to test
  namespace-pollution: Add framebuffer as an object to test
  namespace-pollution: Add glGetTexImage from a compressed texture as an
    operation to test
  namespace-pollution: Add renderbuffer as an object to test
  namespace-pollution: Add vertex program as an object to test
  namespace-pollution: Add fragment program as an object to test
  namespace-pollution: Add Apple vertex array as an object to test

 tests/all.py                               |    8 +
 tests/general/CMakeLists.gl.txt            |    1 +
 tests/general/object-namespace-pollution.c | 1677 ++++++++++++++++++++++++++++
 3 files changed, 1686 insertions(+)
 create mode 100644 tests/general/object-namespace-pollution.c

-- 
2.5.0



More information about the Piglit mailing list