--- /dev/null
+Conformance Test
+
+ CTS_ARB_sparse_texture_clamp
+
+Contributors
+
+ Adam Czupryna, Mobica
+
+Contacts
+
+ Adam Czupryna, Mobica (adam.czupryna 'at' mobica.com)
+
+Status
+
+ In review
+
+Version
+
+ December 19, 2016 (version 1)
+
+Dependencies
+
+ OpenGL 4.5 is required.
+
+ ARB_sparse_texture2 extension is required.
+
+ This specification is written against:
+ - ARB_sparse_texture_clamp specification,
+ - OpenGL 4.5 (core) specification.
+
+Overview
+
+ This test verifies if functionality provided by ARB_sparse_texture_clamp
+ works as expected:
+
+ * Check if new built-in GLSL texture lookup functions that are provided
+ by this extension could specify a minimum level of detail to use for
+ lookups where level of detail is computed automatically.
+
+New Tests
+
+ Shader Extension Test
+
+ * Create shader that require ARB_sparse_texture_clamp extension
+ and check if ARB_sparse_texture_clamp is defined and equal 1.
+ Check if shader compiles with no error.
+
+ Sparse Texture Clamp Lookup Residency Tests
+
+ * Iterate through all sparse supported targets.
+ Allocate sparse texture for current <target> with committed and
+ uncommitted regions.
+ Create multiple fragment shaders that enable ARB_sparse_texture_clamp
+ extension and each uses one of the function from list below
+ (if supported by <target>):
+
+ - sparseTextureClampARB
+ - sparseTextureOffsetClampARB
+ - sparseTextureGradClampARB
+ - sparseTextureGradOffsetClampARB
+
+ Shaders should check texture access residency information and pass
+ vec4(1, 1, 1, 1) to the output if access committed region and
+ vec4(0, 0, 0, 1) otherwise.
+
+ Iterate through shaders, create and use program for current iteration
+ and draw a full screen quad.
+
+ Read back the contents of the color attachment on the CPU side. The test expects
+ that the texels will be filled with (1, 1, 1, 1) if the areas of the sparse texture accessed
+ in the shader would be in committed regions, (0, 0, 0, 1) otherwise.
+
+ Run the test for different values of <lodClamp> argument.
+
+ Sparse and Non-sparse Texture Clamp Lookup Color Tests
+
+ * Iterate through all sparse and non-sparse supported targets.
+ Allocate texture for current <target>.
+ Fill the texture with different values for miplevels [0, lodClamp) that for miplevels [lodClamp, lastMipLevel].
+
+ Create multiple fragment shaders that enables ARB_sparse_texture_clamp
+ extension and each use one of the function from list below
+ (if supported by <target>):
+
+ - textureClampARB
+ - textureOffsetClampARB
+ - textureGradClampARB
+ - textureGradOffsetClampARB
+ - sparseTextureClampARB
+ - sparseTextureOffsetClampARB
+ - sparseTextureGradClampARB
+ - sparseTextureGradOffsetClampARB
+
+ Iterate through shaders, create and use program for current iteration
+ and draw a full screen quad. In the shader sample the texture with the value lodClamp as <lodClamp> argument.
+
+ Verify that the <lodClamp> argument was taken into account during automatic lod computations
+ by reading pixels from framebuffer and checking if their values are as equal to the ones
+ from the region [lodClamp, lastMipLevel].
+
+ Run the test for different values of <lodClamp> argument.
+
+Revision History
+
+ Revision 1, 19th December, 2016 (Adam Czupryna)
+ - Intial version;