[Piglit] [PATCH 5/7] khr_texture_compression_astc: Add sRGB skip decode test
Anuj Phogat
anuj.phogat at gmail.com
Fri Jul 22 21:01:35 UTC 2016
This adds the testing of EXT_texture_sRGB_decode with ASTC
compressed textures.
Cc: Nanley Chery <nanley.g.chery at intel.com>
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
tests/all.py | 2 +-
.../khr_compressed_astc-miptree.c | 26 +++++++++++++++++++---
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/tests/all.py b/tests/all.py
index 6db24ad..e2998d0 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -4355,7 +4355,7 @@ with profile.group_manager(
g(['khr_compressed_astc-basic_gl'], 'basic-gl')
g(['khr_compressed_astc-basic_gles2'], 'basic-gles')
- for subtest in ('hdr', 'ldr', 'srgb', "srgb-fp"):
+ for subtest in ('hdr', 'ldr', 'srgb', "srgb-fp", "srgb-sd"):
g(['khr_compressed_astc-miptree_gl', '-subtest', subtest],
'miptree-gl {}'.format(subtest))
g(['khr_compressed_astc-miptree_gles2', '-subtest', subtest],
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
index 61edc5f..da43cb8 100644
--- a/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c
+++ b/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c
@@ -60,6 +60,7 @@ enum test_type
TEST_TYPE_LDR,
TEST_TYPE_SRGB,
TEST_TYPE_SRGB_FP,
+ TEST_TYPE_SRGB_SD,
};
enum piglit_result
@@ -69,6 +70,7 @@ 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 enum test_type srgb_fp_test = TEST_TYPE_SRGB_FP;
+static enum test_type srgb_skip_test = TEST_TYPE_SRGB_SD;
static const struct piglit_subtest subtests[] = {
{
"LDR Profile",
@@ -94,6 +96,12 @@ static const struct piglit_subtest subtests[] = {
test_miptrees,
&srgb_fp_test,
},
+ {
+ "sRGB skip decode",
+ "srgb-sd",
+ test_miptrees,
+ &srgb_skip_test,
+ },
{NULL},
};
@@ -159,7 +167,7 @@ load_texture(const char *dir1, const char *dir2,
}
/** Compares the compressed texture against the decompressed texture */
-bool draw_compare_levels(bool check_error,
+bool draw_compare_levels(bool check_error, bool srgb_skip_decode,
GLint level_pixel_size_loc, GLint pixel_offset_loc,
GLuint compressed_tex, GLuint decompressed_tex)
{
@@ -179,12 +187,20 @@ bool draw_compare_levels(bool check_error,
/* Draw miplevel of compressed texture. */
glBindTexture(GL_TEXTURE_2D, compressed_tex);
+ if (srgb_skip_decode)
+ 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 (srgb_skip_decode)
+ 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);
}
@@ -224,9 +240,10 @@ test_miptrees(void* input_type)
{
const enum test_type subtest = *(enum test_type*) input_type;
const bool is_srgb_test = subtest == TEST_TYPE_SRGB;
+ const bool is_srgb_skip_decode_test = subtest == TEST_TYPE_SRGB_SD;
const bool is_hdr_test = subtest == TEST_TYPE_HDR;
- static const char * tests[4] = {"hdr", "ldrl", "ldrs", "ldrs"};
+ static const char * tests[5] = {"hdr", "ldrl", "ldrs", "ldrs", "ldrs"};
static const char * block_dim_str[14] = {
"4x4",
"5x4",
@@ -248,6 +265,9 @@ test_miptrees(void* input_type)
GLint level_pixel_size_loc = glGetUniformLocation(prog,
"level_pixel_size");
+ if (is_srgb_skip_decode_test)
+ piglit_require_extension("GL_EXT_texture_sRGB_decode");
+
/* Check for error color if an LDR-only sys reading an HDR
* texture. No need to draw a reference mipmap in this case.
*/
@@ -283,7 +303,7 @@ test_miptrees(void* input_type)
/* Draw and compare each level of the two textures */
glClear(GL_COLOR_BUFFER_BIT);
- if (!draw_compare_levels(check_error,
+ if (!draw_compare_levels(check_error, is_srgb_skip_decode_test,
level_pixel_size_loc,
pixel_offset_loc,
tex_compressed,
--
2.5.5
More information about the Piglit
mailing list