Home | History | Annotate | Download | only in specs
      1 Conformance Test
      2 
      3     CTS_ARB_sparse_texture_clamp
      4 
      5 Contributors
      6 
      7     Adam Czupryna, Mobica
      8 
      9 Contacts
     10 
     11     Adam Czupryna, Mobica (adam.czupryna 'at' mobica.com)
     12 
     13 Status
     14 
     15     In review
     16 
     17 Version
     18 
     19     December 19, 2016 (version 1)
     20 
     21 Dependencies
     22 
     23     OpenGL 4.5 is required.
     24 
     25     ARB_sparse_texture2 extension is required.
     26 
     27     This specification is written against:
     28       - ARB_sparse_texture_clamp specification,
     29       - OpenGL 4.5 (core) specification.
     30 
     31 Overview
     32 
     33     This test verifies if functionality provided by ARB_sparse_texture_clamp
     34     works as expected:
     35 
     36       * Check if new built-in GLSL texture lookup functions that are provided
     37         by this extension could specify a minimum level of detail to use for
     38         lookups where level of detail is computed automatically.
     39 
     40 New Tests
     41 
     42     Shader Extension Test
     43 
     44       * Create shader that require ARB_sparse_texture_clamp extension
     45         and check if ARB_sparse_texture_clamp is defined and equal 1.
     46         Check if shader compiles with no error.
     47 
     48     Sparse Texture Clamp Lookup Residency Tests
     49 
     50       * Iterate through all sparse supported targets.
     51         Allocate sparse texture for current <target> with committed and
     52           uncommitted regions.
     53         Create multiple fragment shaders that enable ARB_sparse_texture_clamp
     54           extension and each uses one of the function from list below
     55           (if supported by <target>):
     56 
     57           - sparseTextureClampARB
     58           - sparseTextureOffsetClampARB
     59           - sparseTextureGradClampARB
     60           - sparseTextureGradOffsetClampARB
     61 
     62         Shaders should check texture access residency information and pass
     63           vec4(1, 1, 1, 1) to the output if access committed region and
     64           vec4(0, 0, 0, 1) otherwise.
     65 
     66         Iterate through shaders, create and use program for current iteration
     67           and draw a full screen quad.
     68 
     69         Read back the contents of the color attachment on the CPU side. The test expects
     70           that the texels will be filled with (1, 1, 1, 1) if the areas of the sparse texture accessed
     71           in the shader would be in committed regions, (0, 0, 0, 1) otherwise.
     72 
     73         Run the test for different values of <lodClamp> argument.
     74 
     75     Sparse and Non-sparse Texture Clamp Lookup Color Tests
     76 
     77       * Iterate through all sparse and non-sparse supported targets.
     78         Allocate texture for current <target>.
     79         Fill the texture with different values for miplevels [0, lodClamp) that for miplevels [lodClamp, lastMipLevel].
     80 
     81         Create multiple fragment shaders that enables ARB_sparse_texture_clamp
     82           extension and each use one of the function from list below
     83           (if supported by <target>):
     84 
     85           - textureClampARB
     86           - textureOffsetClampARB
     87           - textureGradClampARB
     88           - textureGradOffsetClampARB
     89           - sparseTextureClampARB
     90           - sparseTextureOffsetClampARB
     91           - sparseTextureGradClampARB
     92           - sparseTextureGradOffsetClampARB
     93 
     94         Iterate through shaders, create and use program for current iteration
     95           and draw a full screen quad. In the shader sample the texture with the value lodClamp as <lodClamp> argument.
     96 
     97         Verify that the <lodClamp> argument was taken into account during automatic lod computations
     98           by reading pixels from framebuffer and checking if their values are as equal to the ones
     99           from the region [lodClamp, lastMipLevel].
    100 
    101         Run the test for different values of <lodClamp> argument.
    102 
    103 Revision History
    104 
    105     Revision 1, 19th December, 2016 (Adam Czupryna)
    106      - Intial version;
    107