summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/spec/arb_internalformat_query2/common.c29
-rw-r--r--tests/spec/arb_internalformat_query2/common.h31
-rw-r--r--tests/spec/arb_internalformat_query2/filter.c2
-rw-r--r--tests/spec/arb_internalformat_query2/format-components.c13
-rw-r--r--tests/spec/arb_internalformat_query2/generic-pname-checks.c3
-rw-r--r--tests/spec/arb_internalformat_query2/image-format-compatibility-type.c3
-rw-r--r--tests/spec/arb_internalformat_query2/internalformat-size-checks.c3
-rw-r--r--tests/spec/arb_internalformat_query2/internalformat-type-checks.c3
-rw-r--r--tests/spec/arb_internalformat_query2/max-dimensions.c7
-rw-r--r--tests/spec/arb_internalformat_query2/minmax.c1
-rw-r--r--tests/spec/arb_internalformat_query2/samples-pnames.c5
-rw-r--r--tests/spec/arb_internalformat_query2/texture-compressed-block.c3
12 files changed, 89 insertions, 14 deletions
diff --git a/tests/spec/arb_internalformat_query2/common.c b/tests/spec/arb_internalformat_query2/common.c
index 13e2a9118..9e62f0d30 100644
--- a/tests/spec/arb_internalformat_query2/common.c
+++ b/tests/spec/arb_internalformat_query2/common.c
@@ -1064,3 +1064,32 @@ test_data_get_params_size(test_data *data)
{
return data->params_size;
}
+
+void
+initialize_valid_internalformats()
+{
+ if (piglit_get_gl_version() == 43 ||
+ piglit_is_extension_supported("GL_ARB_ES3_compatibility")) {
+ unsigned i, j;
+
+ num_valid_internalformats = ARRAY_SIZE(base_valid_internalformats) +
+ ARRAY_SIZE(arb_es3_compatibility_valid_internalformats);
+
+ valid_internalformats = malloc(sizeof(GLenum) *
+ num_valid_internalformats);
+
+ for (i = 0; i < ARRAY_SIZE(base_valid_internalformats); i++) {
+ valid_internalformats[i] = base_valid_internalformats[i];
+ }
+
+ for (i = ARRAY_SIZE(base_valid_internalformats), j = 0;
+ i < num_valid_internalformats; i++, j++) {
+ valid_internalformats[i] =
+ arb_es3_compatibility_valid_internalformats[j];
+ }
+
+ } else {
+ num_valid_internalformats = ARRAY_SIZE(base_valid_internalformats);
+ valid_internalformats = (GLenum *) base_valid_internalformats;
+ }
+}
diff --git a/tests/spec/arb_internalformat_query2/common.h b/tests/spec/arb_internalformat_query2/common.h
index df6858101..86aa4c729 100644
--- a/tests/spec/arb_internalformat_query2/common.h
+++ b/tests/spec/arb_internalformat_query2/common.h
@@ -168,7 +168,11 @@ static const GLenum invalid_pnames[] = {
GL_TEXTURE_COMPONENTS,
};
-/* From spec:
+/*
+ * The following are the valid internalformats defined when the spec
+ * was written (at 4.2).
+ *
+ * From spec:
*
* "INTERNALFORMAT_SUPPORTED:
* <skip>
@@ -184,7 +188,7 @@ static const GLenum invalid_pnames[] = {
* - unsized or base internal format, if the implementation accepts
* it for texture or image specification."
*/
-static const GLenum valid_internalformats[] = {
+static const GLenum base_valid_internalformats[] = {
/* Base/unsized internal format (from Table 3.11) */
GL_DEPTH_COMPONENT,
GL_DEPTH_STENCIL,
@@ -279,6 +283,27 @@ static const GLenum valid_internalformats[] = {
GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
};
+/*
+ * Below the new internalformats added by ARB_ES3_compatibility, core
+ * since 4.3. You can find those internalformats at Spec 4.3 Table
+ * 8.14
+ */
+static const GLenum arb_es3_compatibility_valid_internalformats[] = {
+ GL_COMPRESSED_RGB8_ETC2,
+ GL_COMPRESSED_SRGB8_ETC2,
+ GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+ GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+ GL_COMPRESSED_RGBA8_ETC2_EAC,
+ GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+ GL_COMPRESSED_R11_EAC,
+ GL_COMPRESSED_SIGNED_R11_EAC,
+ GL_COMPRESSED_RG11_EAC,
+ GL_COMPRESSED_SIGNED_RG11_EAC,
+};
+
+GLenum *valid_internalformats;
+unsigned num_valid_internalformats;
+
typedef struct _test_data test_data;
test_data* test_data_new(int testing64,
@@ -360,3 +385,5 @@ bool create_texture(const GLenum target,
const GLenum internalformat,
GLuint *tex_out,
GLuint *buffer_out);
+
+void initialize_valid_internalformats();
diff --git a/tests/spec/arb_internalformat_query2/filter.c b/tests/spec/arb_internalformat_query2/filter.c
index 502eea94c..c7b8534d9 100644
--- a/tests/spec/arb_internalformat_query2/filter.c
+++ b/tests/spec/arb_internalformat_query2/filter.c
@@ -218,7 +218,7 @@ check_filter()
for (testing64 = 0; testing64 <= 1; testing64++) {
test_data_set_testing64(data, testing64);
pass = try_local(valid_targets, ARRAY_SIZE(valid_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
GL_FILTER, data)
&& pass;
}
diff --git a/tests/spec/arb_internalformat_query2/format-components.c b/tests/spec/arb_internalformat_query2/format-components.c
index a484e01f2..70ba7dc2f 100644
--- a/tests/spec/arb_internalformat_query2/format-components.c
+++ b/tests/spec/arb_internalformat_query2/format-components.c
@@ -139,6 +139,16 @@ is_color_format(GLenum internalformat)
case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:
case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:
case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:
+ case GL_COMPRESSED_RGB8_ETC2:
+ case GL_COMPRESSED_SRGB8_ETC2:
+ case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
+ case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
+ case GL_COMPRESSED_RGBA8_ETC2_EAC:
+ case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
+ case GL_COMPRESSED_R11_EAC:
+ case GL_COMPRESSED_SIGNED_R11_EAC:
+ case GL_COMPRESSED_RG11_EAC:
+ case GL_COMPRESSED_SIGNED_RG11_EAC:
return GL_TRUE;
default:
return GL_FALSE;
@@ -252,7 +262,7 @@ check_format_components(void)
test_data_set_testing64(data, testing64);
pass = try(valid_targets, ARRAY_SIZE(valid_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
pnames[i], data)
&& pass;
}
@@ -274,6 +284,7 @@ piglit_init(int argc, char **argv)
bool pass = true;
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
pass = check_format_components()
&& pass;
diff --git a/tests/spec/arb_internalformat_query2/generic-pname-checks.c b/tests/spec/arb_internalformat_query2/generic-pname-checks.c
index e521fac31..bd44da038 100644
--- a/tests/spec/arb_internalformat_query2/generic-pname-checks.c
+++ b/tests/spec/arb_internalformat_query2/generic-pname-checks.c
@@ -263,7 +263,7 @@ check_basic(const GLenum *pnames, unsigned num_pnames,
test_data_set_testing64(data, testing64);
pass = try_basic(valid_targets, ARRAY_SIZE(valid_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
pnames[i],
possible_values, num_possible_values,
data)
@@ -288,6 +288,7 @@ piglit_init(int argc, char **argv)
GLenum pname;
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
pname = GL_INTERNALFORMAT_PREFERRED;
pass = check_basic(&pname, 1, NULL, 0) && pass;
diff --git a/tests/spec/arb_internalformat_query2/image-format-compatibility-type.c b/tests/spec/arb_internalformat_query2/image-format-compatibility-type.c
index 81a8dc4d0..c7f0790b5 100644
--- a/tests/spec/arb_internalformat_query2/image-format-compatibility-type.c
+++ b/tests/spec/arb_internalformat_query2/image-format-compatibility-type.c
@@ -165,7 +165,7 @@ check_format_compatibility_type(void)
test_data_set_testing64(data, testing64);
pass = try_local(valid_targets, ARRAY_SIZE(valid_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
data)
&& pass;
@@ -185,6 +185,7 @@ piglit_init(int argc, char **argv)
bool pass = true;
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
pass = check_format_compatibility_type() && pass;
diff --git a/tests/spec/arb_internalformat_query2/internalformat-size-checks.c b/tests/spec/arb_internalformat_query2/internalformat-size-checks.c
index 928133133..ca96287cd 100644
--- a/tests/spec/arb_internalformat_query2/internalformat-size-checks.c
+++ b/tests/spec/arb_internalformat_query2/internalformat-size-checks.c
@@ -148,7 +148,7 @@ check_textures_size(void)
test_data_set_testing64(data, testing64);
pass = try_textures_size(texture_targets, ARRAY_SIZE(texture_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
pnames[i],
data)
&& pass;
@@ -170,6 +170,7 @@ piglit_init(int argc, char **argv)
bool pass = true;
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
pass = check_textures_size()
&& pass;
diff --git a/tests/spec/arb_internalformat_query2/internalformat-type-checks.c b/tests/spec/arb_internalformat_query2/internalformat-type-checks.c
index c6e46f504..038506bca 100644
--- a/tests/spec/arb_internalformat_query2/internalformat-type-checks.c
+++ b/tests/spec/arb_internalformat_query2/internalformat-type-checks.c
@@ -166,7 +166,7 @@ check_textures_type(void)
test_data_set_testing64(data, testing64);
pass = try_textures_type(texture_targets, ARRAY_SIZE(texture_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
pnames[i],
data)
&& pass;
@@ -188,6 +188,7 @@ piglit_init(int argc, char **argv)
bool pass = true;
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
pass = check_textures_type()
&& pass;
diff --git a/tests/spec/arb_internalformat_query2/max-dimensions.c b/tests/spec/arb_internalformat_query2/max-dimensions.c
index 72ec358ba..50190d56d 100644
--- a/tests/spec/arb_internalformat_query2/max-dimensions.c
+++ b/tests/spec/arb_internalformat_query2/max-dimensions.c
@@ -347,7 +347,7 @@ check_max_dimension(const GLenum pname,
test_data_set_testing64(data, testing64);
pass = try(valid_targets, ARRAY_SIZE(valid_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
pname, min_dimensions, data)
&& pass;
}
@@ -509,7 +509,7 @@ check_max_layers()
test_data_set_testing64(data, testing64);
pass = try_max_layers(valid_targets, ARRAY_SIZE(valid_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
data)
&& pass;
}
@@ -668,7 +668,7 @@ check_max_combined_dimensions()
test_data_set_testing64(data, testing64);
pass = try_max_combined_dimensions(valid_targets, ARRAY_SIZE(valid_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
data)
&& pass;
}
@@ -685,6 +685,7 @@ piglit_init(int argc, char **argv)
bool pass = true;
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
pass = check_max_dimension(GL_MAX_WIDTH, 1) && pass;
pass = check_max_dimension(GL_MAX_HEIGHT, 2) && pass;
diff --git a/tests/spec/arb_internalformat_query2/minmax.c b/tests/spec/arb_internalformat_query2/minmax.c
index 2571e3b21..b07dcb2ea 100644
--- a/tests/spec/arb_internalformat_query2/minmax.c
+++ b/tests/spec/arb_internalformat_query2/minmax.c
@@ -291,6 +291,7 @@ piglit_init(int argc, char **argv)
piglit_require_extension("GL_ARB_framebuffer_object");
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
/* Need GL 3 or extensions to support the valid_formats[] above */
if (piglit_get_gl_version() < 30) {
diff --git a/tests/spec/arb_internalformat_query2/samples-pnames.c b/tests/spec/arb_internalformat_query2/samples-pnames.c
index 42c18d9de..9f9008a24 100644
--- a/tests/spec/arb_internalformat_query2/samples-pnames.c
+++ b/tests/spec/arb_internalformat_query2/samples-pnames.c
@@ -238,7 +238,7 @@ check_num_sample_counts(void)
* returned.
*/
pass = try(without_multisample_targets, ARRAY_SIZE(without_multisample_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
GL_NUM_SAMPLE_COUNTS, data)
&& pass;
}
@@ -296,7 +296,7 @@ check_samples(void)
*/
pass = try(without_multisample_targets, ARRAY_SIZE(without_multisample_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
GL_SAMPLES, data)
&& pass;
}
@@ -316,6 +316,7 @@ piglit_init(int argc, char **argv)
piglit_require_extension("GL_ARB_framebuffer_object");
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
pass = check_num_sample_counts() && pass;
pass = check_samples() && pass;
diff --git a/tests/spec/arb_internalformat_query2/texture-compressed-block.c b/tests/spec/arb_internalformat_query2/texture-compressed-block.c
index 9a5e96c20..656816fbe 100644
--- a/tests/spec/arb_internalformat_query2/texture-compressed-block.c
+++ b/tests/spec/arb_internalformat_query2/texture-compressed-block.c
@@ -173,7 +173,7 @@ check_texture_compressed_block(const GLenum *pnames, unsigned num_pnames)
for (testing64 = 0; testing64 <= 1; testing64++) {
test_data_set_testing64(data, testing64);
pass = try_local(valid_targets, ARRAY_SIZE(valid_targets),
- valid_internalformats, ARRAY_SIZE(valid_internalformats),
+ valid_internalformats, num_valid_internalformats,
pnames[i], data)
&& pass;
}
@@ -195,6 +195,7 @@ piglit_init(int argc, char **argv)
bool pass = true;
piglit_require_extension("GL_ARB_internalformat_query2");
+ initialize_valid_internalformats();
pass = check_texture_compressed_block(pnames, ARRAY_SIZE(pnames))
&& pass;