diff options
author | Nanley Chery <nanley.g.chery@intel.com> | 2015-05-16 19:25:39 -0700 |
---|---|---|
committer | Nanley Chery <nanley.g.chery@intel.com> | 2015-10-05 16:05:04 -0700 |
commit | b8f9ad3830152ff4bdb390f0aa939f6354f5a43d (patch) | |
tree | fa1f24071b12b679cadaa9583d71585e2769db92 | |
parent | ebee6dab2ba4290c8748be05116cc86eecf63dc3 (diff) |
khr_texture_compression_astc: Add miptree tests
These tests run through every ASTC configuration, comparing the
render of a compressed texture against a render of the decompressed
version of that compressed texture. The compressed and decompressed
texture was generated with a reference codec.
v2. numerous changes (Chad).
v3. upgrade required GLES version to 2.
Reviewed-by: Chad Versace <chad.versace@intel.com>
Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
90 files changed, 408 insertions, 0 deletions
diff --git a/tests/all.py b/tests/all.py index 5de1c8cb3..cd244df24 100644 --- a/tests/all.py +++ b/tests/all.py @@ -4171,6 +4171,8 @@ with profile.group_manager( PiglitGLTest, grouptools.join('spec', 'khr_texture_compression_astc')) as g: g(['arb_texture_compression-invalid-formats', 'astc'], 'invalid formats') + g(['khr_compressed_astc-miptree_gl'], 'miptree-gl') + g(['khr_compressed_astc-miptree_gles2'], 'miptree-gles') with profile.group_manager( PiglitGLTest, diff --git a/tests/spec/CMakeLists.txt b/tests/spec/CMakeLists.txt index eeb883d5e..5dc37a10a 100644 --- a/tests/spec/CMakeLists.txt +++ b/tests/spec/CMakeLists.txt @@ -11,6 +11,7 @@ add_subdirectory (arb_compute_shader) add_subdirectory (arb_cull_distance) add_subdirectory (arb_debug_output) add_subdirectory (khr_debug) +add_subdirectory (khr_texture_compression_astc) add_subdirectory (arb_depth_clamp) add_subdirectory (arb_draw_indirect) add_subdirectory (arb_draw_instanced) diff --git a/tests/spec/khr_texture_compression_astc/CMakeLists.gl.txt b/tests/spec/khr_texture_compression_astc/CMakeLists.gl.txt new file mode 100644 index 000000000..5a86e6c4c --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/CMakeLists.gl.txt @@ -0,0 +1,7 @@ +link_libraries ( + piglitutil_${piglit_target_api} +) + +piglit_add_executable(khr_compressed_astc-miptree_${piglit_target_api} khr_compressed_astc-miptree.c) + +# vim: ft=cmake: diff --git a/tests/spec/khr_texture_compression_astc/CMakeLists.gles2.txt b/tests/spec/khr_texture_compression_astc/CMakeLists.gles2.txt new file mode 100644 index 000000000..83bd3e777 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/CMakeLists.gles2.txt @@ -0,0 +1,4 @@ +link_libraries(piglitutil_${piglit_target_api}) +piglit_add_executable(khr_compressed_astc-miptree_${piglit_target_api} khr_compressed_astc-miptree.c) + +# vim: ft=cmake: diff --git a/tests/spec/khr_texture_compression_astc/CMakeLists.txt b/tests/spec/khr_texture_compression_astc/CMakeLists.txt new file mode 100644 index 000000000..144a306f4 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/CMakeLists.txt @@ -0,0 +1 @@ +piglit_include_target_api() diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x10.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x10.ktx Binary files differnew file mode 100644 index 000000000..b70182cde --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x5.ktx Binary files differnew file mode 100644 index 000000000..4c5fe8d32 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x6.ktx Binary files differnew file mode 100644 index 000000000..35b8ae617 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x8.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x8.ktx Binary files differnew file mode 100644 index 000000000..915e5185f --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-10x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-12x10.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-12x10.ktx Binary files differnew file mode 100644 index 000000000..c14576966 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-12x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-12x12.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-12x12.ktx Binary files differnew file mode 100644 index 000000000..bc6adb06c --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-12x12.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-4x4.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-4x4.ktx Binary files differnew file mode 100644 index 000000000..e135d9789 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-4x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-5x4.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-5x4.ktx Binary files differnew file mode 100644 index 000000000..563fa213a --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-5x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-5x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-5x5.ktx Binary files differnew file mode 100644 index 000000000..7c3f26f60 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-5x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-6x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-6x5.ktx Binary files differnew file mode 100644 index 000000000..b74a7875f --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-6x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-6x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-6x6.ktx Binary files differnew file mode 100644 index 000000000..1dbd18aed --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-6x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x5.ktx Binary files differnew file mode 100644 index 000000000..bd46e7e5d --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x6.ktx Binary files differnew file mode 100644 index 000000000..0602b959b --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x8.ktx b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x8.ktx Binary files differnew file mode 100644 index 000000000..609fcbff5 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/hdr/waffles-8x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x10.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x10.ktx Binary files differnew file mode 100644 index 000000000..3ff453b40 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x5.ktx Binary files differnew file mode 100644 index 000000000..ebea223b8 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x6.ktx Binary files differnew file mode 100644 index 000000000..1eaa6a343 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x8.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x8.ktx Binary files differnew file mode 100644 index 000000000..fd30cf724 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-10x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-12x10.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-12x10.ktx Binary files differnew file mode 100644 index 000000000..5af4be05d --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-12x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-12x12.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-12x12.ktx Binary files differnew file mode 100644 index 000000000..21bfc9f38 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-12x12.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-4x4.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-4x4.ktx Binary files differnew file mode 100644 index 000000000..6623e5f3c --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-4x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-5x4.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-5x4.ktx Binary files differnew file mode 100644 index 000000000..b7a8ef860 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-5x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-5x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-5x5.ktx Binary files differnew file mode 100644 index 000000000..3d7e2c169 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-5x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-6x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-6x5.ktx Binary files differnew file mode 100644 index 000000000..fa1df5f07 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-6x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-6x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-6x6.ktx Binary files differnew file mode 100644 index 000000000..9b31ea8eb --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-6x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x5.ktx Binary files differnew file mode 100644 index 000000000..b696ca405 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x6.ktx Binary files differnew file mode 100644 index 000000000..3c49aa3d0 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x8.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x8.ktx Binary files differnew file mode 100644 index 000000000..0610539c9 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrl/waffles-8x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x10.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x10.ktx Binary files differnew file mode 100644 index 000000000..0323accdd --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x5.ktx Binary files differnew file mode 100644 index 000000000..43fcf49e9 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x6.ktx Binary files differnew file mode 100644 index 000000000..3dcb88ace --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x8.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x8.ktx Binary files differnew file mode 100644 index 000000000..4009a6e16 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-10x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-12x10.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-12x10.ktx Binary files differnew file mode 100644 index 000000000..fac683261 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-12x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-12x12.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-12x12.ktx Binary files differnew file mode 100644 index 000000000..1fad47dff --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-12x12.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-4x4.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-4x4.ktx Binary files differnew file mode 100644 index 000000000..580e37b4d --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-4x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-5x4.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-5x4.ktx Binary files differnew file mode 100644 index 000000000..bec98b311 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-5x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-5x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-5x5.ktx Binary files differnew file mode 100644 index 000000000..7be4e480f --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-5x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-6x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-6x5.ktx Binary files differnew file mode 100644 index 000000000..784230013 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-6x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-6x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-6x6.ktx Binary files differnew file mode 100644 index 000000000..98439131b --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-6x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x5.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x5.ktx Binary files differnew file mode 100644 index 000000000..21f50c8b1 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x6.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x6.ktx Binary files differnew file mode 100644 index 000000000..88f455313 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x8.ktx b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x8.ktx Binary files differnew file mode 100644 index 000000000..1370f6e06 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/compressed/ldrs/waffles-8x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x10.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x10.ktx Binary files differnew file mode 100644 index 000000000..2c23caeca --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x5.ktx Binary files differnew file mode 100644 index 000000000..d7fde2aba --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x6.ktx Binary files differnew file mode 100644 index 000000000..6ce0b117e --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x8.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x8.ktx Binary files differnew file mode 100644 index 000000000..002d98e2d --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-10x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-12x10.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-12x10.ktx Binary files differnew file mode 100644 index 000000000..401259fbe --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-12x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-12x12.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-12x12.ktx Binary files differnew file mode 100644 index 000000000..b7e4fc123 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-12x12.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-4x4.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-4x4.ktx Binary files differnew file mode 100644 index 000000000..32380df44 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-4x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-5x4.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-5x4.ktx Binary files differnew file mode 100644 index 000000000..0bffd326c --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-5x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-5x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-5x5.ktx Binary files differnew file mode 100644 index 000000000..44e08bc84 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-5x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-6x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-6x5.ktx Binary files differnew file mode 100644 index 000000000..ada9cf7c9 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-6x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-6x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-6x6.ktx Binary files differnew file mode 100644 index 000000000..e0bb42072 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-6x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x5.ktx Binary files differnew file mode 100644 index 000000000..80a7c81cc --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x6.ktx Binary files differnew file mode 100644 index 000000000..c6b64bc41 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x8.ktx b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x8.ktx Binary files differnew file mode 100644 index 000000000..4f8e3f8b0 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/hdr/waffles-8x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x10.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x10.ktx Binary files differnew file mode 100644 index 000000000..ba940851b --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x5.ktx Binary files differnew file mode 100644 index 000000000..32d733d46 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x6.ktx Binary files differnew file mode 100644 index 000000000..ef971826f --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x8.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x8.ktx Binary files differnew file mode 100644 index 000000000..c5cc8b0db --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-10x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-12x10.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-12x10.ktx Binary files differnew file mode 100644 index 000000000..5c9ad8b8b --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-12x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-12x12.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-12x12.ktx Binary files differnew file mode 100644 index 000000000..530c73ac5 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-12x12.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-4x4.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-4x4.ktx Binary files differnew file mode 100644 index 000000000..3058bc00f --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-4x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-5x4.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-5x4.ktx Binary files differnew file mode 100644 index 000000000..61ab53767 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-5x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-5x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-5x5.ktx Binary files differnew file mode 100644 index 000000000..76c770ea5 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-5x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-6x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-6x5.ktx Binary files differnew file mode 100644 index 000000000..4ad442d4c --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-6x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-6x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-6x6.ktx Binary files differnew file mode 100644 index 000000000..0db9ad024 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-6x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x5.ktx Binary files differnew file mode 100644 index 000000000..c5a8d88fc --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x6.ktx Binary files differnew file mode 100644 index 000000000..23ea6e4d3 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x8.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x8.ktx Binary files differnew file mode 100644 index 000000000..73340a7de --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrl/waffles-8x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x10.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x10.ktx Binary files differnew file mode 100644 index 000000000..592972503 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x5.ktx Binary files differnew file mode 100644 index 000000000..5d9d57869 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x6.ktx Binary files differnew file mode 100644 index 000000000..87aff56b0 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x8.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x8.ktx Binary files differnew file mode 100644 index 000000000..01d3f8d8b --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-10x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-12x10.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-12x10.ktx Binary files differnew file mode 100644 index 000000000..353d82919 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-12x10.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-12x12.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-12x12.ktx Binary files differnew file mode 100644 index 000000000..3139831fb --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-12x12.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-4x4.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-4x4.ktx Binary files differnew file mode 100644 index 000000000..e0be0d31a --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-4x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-5x4.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-5x4.ktx Binary files differnew file mode 100644 index 000000000..f73da887f --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-5x4.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-5x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-5x5.ktx Binary files differnew file mode 100644 index 000000000..f5bb6abab --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-5x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-6x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-6x5.ktx Binary files differnew file mode 100644 index 000000000..ef715780c --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-6x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-6x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-6x6.ktx Binary files differnew file mode 100644 index 000000000..1d7933dd9 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-6x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x5.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x5.ktx Binary files differnew file mode 100644 index 000000000..b405ad057 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x5.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x6.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x6.ktx Binary files differnew file mode 100644 index 000000000..6b39798ec --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x6.ktx diff --git a/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x8.ktx b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x8.ktx Binary files differnew file mode 100644 index 000000000..9816818d1 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/decompressed/ldrs/waffles-8x8.ktx diff --git a/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c b/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c new file mode 100644 index 000000000..20f241566 --- /dev/null +++ b/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c @@ -0,0 +1,393 @@ +/* + * Copyright 2015 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/** + * \file + * \brief Test texturing from an ASTC miptree of a real image. + * + * This test is an adaptation of the oes_compressed_etc1_rgb8_textures test. + * + * The files under compressed/ contain full miptrees, in the + * GL_*_ASTC_* formats, of a 2D texture of waffles and fruit [1]. The base + * level size was shrunken to 160x106 pixels. The files under the decompressed + * directory contain the same miptree in GL_RGBA format. Each miplevel was + * obtained by decompressing the corresponding ASTC texture with astcenc [2]. + * + * This test draws miplevels of the compressed textures in a space-efficient + * manner It does the same when drawing the decompressed texture on the right. + * Each miplevel of both images are compared for equality after being drawn. + * + * [1] The reference image is located at http://people.freedesktop.org/~chadversary/permalink/2012-07-09/1574cff2-d091-4421-a3cf-b56c7943d060.jpg. + * [2] astcenc is the reference ASTC compression tool, available at http://malideveloper.arm.com/develop-for-mali/tools/software-tools/astc-evaluation-codec/. + */ + +#include "piglit-util-gl.h" +#include "piglit_ktx.h" + +#define NUM_LEVELS 8 +#define LEVEL0_WIDTH 160 +#define LEVEL0_HEIGHT 106 + +#define NUM_VERTICES 4 + +static GLuint prog; + +static struct piglit_gl_test_config *piglit_config; + +enum test_type +{ + TEST_TYPE_HDR, + TEST_TYPE_LDR, + TEST_TYPE_SRGB, +}; + +enum piglit_result +test_miptrees(void* input_type); + +static enum test_type ldr_test = TEST_TYPE_LDR; +static enum test_type hdr_test = TEST_TYPE_HDR; +static enum test_type srgb_test = TEST_TYPE_SRGB; +static const struct piglit_subtest subtests[] = { + { + "LDR Profile", + "ldr", + test_miptrees, + &ldr_test, + }, + { + "HDR Profile", + "hdr", + test_miptrees, + &hdr_test, + }, + { + "sRGB decode", + "srgb", + test_miptrees, + &srgb_test, + }, + {NULL}, +}; + +PIGLIT_GL_TEST_CONFIG_BEGIN + + piglit_config = &config; + config.supports_gl_compat_version = 11; + config.supports_gl_es_version = 20; + + config.window_width = 2 * LEVEL0_WIDTH; + config.window_height = LEVEL0_HEIGHT + (LEVEL0_HEIGHT >> 1); + config.window_visual = PIGLIT_GL_VISUAL_RGB | PIGLIT_GL_VISUAL_DOUBLE; + + config.subtests = subtests; + +PIGLIT_GL_TEST_CONFIG_END + + +/** + * The \a filename is relative to the current test's source directory. + * + * A new texture is created and returned in \a tex_name. + */ +static void +load_texture(const char *dir1, const char *dir2, + const char *block_dim_str, GLuint *tex_name) +{ + struct piglit_ktx *ktx; + const struct piglit_ktx_info *info; + char filepath[4096]; + char cur_file[20]; + bool ok = true; + + /* Generate filename for compressed texture */ + snprintf(cur_file, sizeof(cur_file), "waffles-%s.ktx", + block_dim_str); + + piglit_join_paths(filepath, sizeof(filepath), 7, + piglit_source_dir(), + "tests", + "spec", + "khr_texture_compression_astc", + dir1, + dir2, + cur_file); + + ktx = piglit_ktx_read_file(filepath); + if (ktx == NULL) + piglit_report_result(PIGLIT_FAIL); + + info = piglit_ktx_get_info(ktx); + assert(info->num_miplevels == NUM_LEVELS); + assert(info->target == GL_TEXTURE_2D); + assert(info->pixel_width == LEVEL0_WIDTH); + assert(info->pixel_height == LEVEL0_HEIGHT); + + *tex_name = 0; + ok = piglit_ktx_load_texture(ktx, tex_name, NULL); + if (!ok) + piglit_report_result(PIGLIT_FAIL); + + piglit_ktx_destroy(ktx); +} + +/** Compares the compressed texture against the decompressed texture */ +bool draw_compare_levels(bool check_error, bool check_srgb, + GLint level_pixel_size_loc, GLint pixel_offset_loc, + GLuint compressed_tex, GLuint decompressed_tex) +{ + /* Fully-saturated magenta */ + static const float error_color[4] = {1.0, 0.0, 1.0, 1.0}; + + unsigned y = 0; + unsigned x = 0; + bool pass = true; + int level = 0; + + for (; level < NUM_LEVELS; ++level) { + int w = LEVEL0_WIDTH >> level; + int h = LEVEL0_HEIGHT >> level; + glUniform2f(level_pixel_size_loc, (float) w, (float) h); + + + /* Draw miplevel of compressed texture. */ + glBindTexture(GL_TEXTURE_2D, compressed_tex); + if (!check_srgb) + glTexParameteri(GL_TEXTURE_2D, + GL_TEXTURE_SRGB_DECODE_EXT, + GL_SKIP_DECODE_EXT); + glUniform2f(pixel_offset_loc, x, y); + glDrawArrays(GL_TRIANGLE_FAN, 0, NUM_VERTICES); + + /* Draw miplevel of decompressed texture. */ + if (!check_error) { + glBindTexture(GL_TEXTURE_2D, decompressed_tex); + if (!check_srgb) + glTexParameteri(GL_TEXTURE_2D, + GL_TEXTURE_SRGB_DECODE_EXT, + GL_SKIP_DECODE_EXT); + glUniform2f(pixel_offset_loc, LEVEL0_WIDTH + x, y); + glDrawArrays(GL_TRIANGLE_FAN, 0, NUM_VERTICES); + } + + /* Check the textures (or error-colors) for equivalence. */ + if (pass) { + if (check_error) { + pass = piglit_probe_rect_rgba(x, y, w, h, + error_color); + } else { + pass = piglit_probe_rects_equal(x, y, + LEVEL0_WIDTH + x, y, + w, h, GL_RGBA); + } + + if (!pass) + piglit_loge("Miplevel %d", level); + } + + /* Update the next miplevel arrangement */ + if (level == 1) + x += w; + else + y += h; + } + + /* Delete bound textures */ + glDeleteTextures(1, &compressed_tex); + glDeleteTextures(1, &decompressed_tex); + + piglit_present_results(); + return pass; +} + +enum piglit_result +test_miptrees(void* input_type) +{ + int subtest = 0; + enum test_type * type = (enum test_type*) input_type; + bool is_srgb_test = *type == TEST_TYPE_SRGB; + bool is_hdr_test = *type == TEST_TYPE_HDR; + + static const char * tests[3] = {"hdr", "ldrl", "ldrs"}; + static const char * block_dim_str[14] = { + "4x4", + "5x4", + "5x5", + "6x5", + "6x6", + "8x5", + "8x6", + "8x8", + "10x5", + "10x6", + "10x8", + "10x10", + "12x10", + "12x12" + }; + + bool has_hdr = piglit_is_extension_supported( + "GL_KHR_texture_compression_astc_hdr"); + + /* If testing sRGB mode, fast-forward to the srgb test. */ + if (is_srgb_test) { + subtest = TEST_TYPE_SRGB; + } else { + /* Skip if on an HDR system not running the HDR test + * or if on an LDR system running the HDR test. + */ + if (has_hdr != is_hdr_test) + return PIGLIT_SKIP; + piglit_require_extension("GL_EXT_texture_sRGB_decode"); + + } + + GLint pixel_offset_loc = glGetUniformLocation(prog, "pixel_offset"); + GLint level_pixel_size_loc = glGetUniformLocation(prog, + "level_pixel_size"); + + /* Test each submode */ + for (; subtest < ARRAY_SIZE(tests); ++subtest) { + + /* Check for error color if an LDR-only sys reading an HDR + * texture. No need to draw a reference mipmap in this case. + */ + int check_error = !has_hdr && subtest == TEST_TYPE_HDR; + int block_dims = 0; + for (; block_dims < ARRAY_SIZE(block_dim_str); ++block_dims) { + + /* Texture objects. */ + GLuint tex_compressed; + GLuint tex_decompressed; + + /* Load texture for current submode and block size */ + load_texture("compressed", tests[subtest], + block_dim_str[block_dims], + &tex_compressed); + if (!check_error) { + load_texture("decompressed", tests[subtest], + block_dim_str[block_dims], + &tex_decompressed); + } + + /* Draw and compare each level of the two textures */ + glClear(GL_COLOR_BUFFER_BIT); + if (!draw_compare_levels(check_error, is_srgb_test, + level_pixel_size_loc, + pixel_offset_loc, + tex_compressed, + tex_decompressed)) { + piglit_loge("Mode %s Block %s.", + tests[subtest], + block_dim_str[block_dims]); + return PIGLIT_FAIL; + } + } + } + return PIGLIT_PASS; +} + +void +piglit_init(int argc, char **argv) +{ + static const char vs_source[] = + "#version 100\n" + "\n" + "uniform vec2 window_pixel_size;\n" + "uniform vec2 level_pixel_size;\n" + "uniform vec2 pixel_offset;\n" + "\n" + "// vertex is some corner of the unit square [0,1]^2 \n" + "attribute vec2 vertex;\n" + "varying vec2 tex_coord;\n" + "\n" + "void main()\n" + "{\n" + " vec2 pos = vertex;\n" + " pos *= level_pixel_size;\n" + " pos += pixel_offset;\n" + " pos /= 0.5 * window_pixel_size;\n" + " pos -= vec2(1, 1);\n" + " gl_Position = vec4(pos.xy, 0.0, 1.0);\n" + "\n" + " tex_coord = vertex;\n" + "}\n"; + + static const char fs_source[] = + "#version 100\n" + "precision highp float;\n" + "\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_coord;\n" + "\n" + "void main()\n" + "{\n" + " vec4 t = texture2D(tex, tex_coord);\n" + " gl_FragColor = vec4(t.rgb, 1.0);\n" + "}\n"; + + /* Vertices to draw a square triangle strip. */ + static const GLfloat vertices[2 * NUM_VERTICES] = { + 0, 0, + 1, 0, + 1, 1, + 0, 1, + }; + + GLint vertex_loc; + GLuint vertex_buf; + GLuint vao; + + piglit_require_extension("GL_KHR_texture_compression_astc_ldr"); + + glClearColor(0.9098, 0.8314, 0.7843, 1.0); + glViewport(0, 0, piglit_width, piglit_height); + + glGenBuffers(1, &vertex_buf); + glBindBuffer(GL_ARRAY_BUFFER, vertex_buf); + + glGenVertexArrays(1, &vao); + glBindVertexArray(vao); + + prog = piglit_build_simple_program(vs_source, fs_source); + glReleaseShaderCompiler(); + glUseProgram(prog); + + vertex_loc = glGetAttribLocation(prog, "vertex"); + glEnableVertexAttribArray(vertex_loc); + glVertexAttribPointer(vertex_loc, 2, GL_FLOAT, GL_FALSE, 0, NULL); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, + GL_STATIC_DRAW); + + glUniform1i(glGetUniformLocation(prog, "tex"), 0); + glUniform2f(glGetUniformLocation(prog, "window_pixel_size"), + piglit_width, piglit_height); +} + +enum piglit_result +piglit_display(void) +{ + return piglit_run_selected_subtests(piglit_config->subtests, + piglit_config->selected_subtests, + piglit_config->num_selected_subtests, + PIGLIT_SKIP); +} |