summaryrefslogtreecommitdiff
path: root/tests/spec
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2019-03-08 17:25:05 -0800
committerIan Romanick <ian.d.romanick@intel.com>2019-06-26 08:31:49 -0700
commit9ad62be49e8de054539d303b5640a53984575fe7 (patch)
tree8959f5c2945a61116ef62e1afbc8340efabc4e16 /tests/spec
parent9f1aa3953a8bd526a04af70c656974f5365b216a (diff)
Fix many incorrect GLSL checks
piglit_require_GLSL() only checks that shader objects and the shading language exist. It does *NOT* check that any particular shader stage exists. It is perfectly valid to have an OpenGL 1.5 implementation that has only vertex shaders or only fragment shaders. piglit_require_GLSL_version(110) and piglit_require_GLSL_version(120) have the same failings as piglit_require_GLSL() and more. GLSL 1.10 is the minimum GLSL version that actually exists, so anything that has GLSL has version 1.10. GLSL 1.20 can be exposed by an implementation, so checking that version doesn't guarantee anything either. GLSL 1.30 implicitly requires OpenGL 3.0, so that is a strong check. All of the non-shader drivers in Mesa advertise shader objects and GLSL 1.20 and NEITHER vertex nor fragment stages. This fixes these tests to just skip on those drivers.
Diffstat (limited to 'tests/spec')
-rw-r--r--tests/spec/arb_draw_elements_base_vertex/drawelements-instanced.c3
-rw-r--r--tests/spec/arb_instanced_arrays/instanced_arrays.c3
-rw-r--r--tests/spec/arb_pipeline_statistics_query/pipeline_stats_frag.c3
-rw-r--r--tests/spec/arb_sampler_objects/sampler-incomplete.c2
-rw-r--r--tests/spec/arb_shader_texture_lod/execution/texgrad.c2
-rw-r--r--tests/spec/arb_shader_texture_lod/execution/texgradcube.c2
-rw-r--r--tests/spec/arb_transform_feedback2/api-queries.c2
-rw-r--r--tests/spec/arb_transform_feedback2/cannot-bind-when-active.c2
-rw-r--r--tests/spec/arb_transform_feedback2/draw-auto.c2
-rw-r--r--tests/spec/arb_transform_feedback2/istransformfeedback.c1
-rw-r--r--tests/spec/arb_transform_feedback2/pause-counting.c2
-rw-r--r--tests/spec/arb_vertex_buffer_object/mixed-immediate-and-vbo.c2
-rw-r--r--tests/spec/ext_transform_feedback/api-errors.c2
-rw-r--r--tests/spec/ext_transform_feedback/builtin-varyings.c1
-rw-r--r--tests/spec/ext_transform_feedback/generatemipmap.c2
-rw-r--r--tests/spec/ext_transform_feedback/immediate-reuse.c3
-rw-r--r--tests/spec/ext_transform_feedback/interleaved.c2
-rw-r--r--tests/spec/ext_transform_feedback/intervening-read.c7
-rw-r--r--tests/spec/ext_transform_feedback/output-type.c6
-rw-r--r--tests/spec/ext_transform_feedback/overflow-edge-cases.c2
-rw-r--r--tests/spec/ext_transform_feedback/pipeline-basic-primgen.c2
-rw-r--r--tests/spec/ext_transform_feedback/points.c2
-rw-r--r--tests/spec/ext_transform_feedback/position.c2
-rw-r--r--tests/spec/ext_transform_feedback/primgen.c2
-rw-r--r--tests/spec/ext_transform_feedback/separate.c2
-rw-r--r--tests/spec/glsl-1.10/execution/clipping/clip-plane-transformation.c3
-rw-r--r--tests/spec/glsl-1.10/execution/glsl-render-after-bad-attach.c3
-rw-r--r--tests/spec/glsl-1.20/getactiveuniform-constant.c2
-rw-r--r--tests/spec/nv_texture_barrier/blending-in-shader.c2
29 files changed, 43 insertions, 28 deletions
diff --git a/tests/spec/arb_draw_elements_base_vertex/drawelements-instanced.c b/tests/spec/arb_draw_elements_base_vertex/drawelements-instanced.c
index 5d134b792..46d175e3d 100644
--- a/tests/spec/arb_draw_elements_base_vertex/drawelements-instanced.c
+++ b/tests/spec/arb_draw_elements_base_vertex/drawelements-instanced.c
@@ -86,7 +86,8 @@ piglit_init(int argc, char **argv)
}
}
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
if (!user_va)
piglit_require_extension("GL_ARB_vertex_buffer_object");
piglit_require_extension("GL_ARB_draw_instanced");
diff --git a/tests/spec/arb_instanced_arrays/instanced_arrays.c b/tests/spec/arb_instanced_arrays/instanced_arrays.c
index b28a58940..a9260b5db 100644
--- a/tests/spec/arb_instanced_arrays/instanced_arrays.c
+++ b/tests/spec/arb_instanced_arrays/instanced_arrays.c
@@ -197,7 +197,8 @@ piglit_display(void)
void
piglit_init(int argc, char **argv)
{
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
piglit_require_extension("GL_ARB_instanced_arrays");
Program = piglit_build_simple_program(VertShaderText, FragShaderText);
diff --git a/tests/spec/arb_pipeline_statistics_query/pipeline_stats_frag.c b/tests/spec/arb_pipeline_statistics_query/pipeline_stats_frag.c
index 159536f77..a2cd444be 100644
--- a/tests/spec/arb_pipeline_statistics_query/pipeline_stats_frag.c
+++ b/tests/spec/arb_pipeline_statistics_query/pipeline_stats_frag.c
@@ -102,7 +102,8 @@ piglit_init(int argc, char *argv[])
GLuint prog;
piglit_require_gl_version(11);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
do_query_init(queries, ARRAY_SIZE(queries));
diff --git a/tests/spec/arb_sampler_objects/sampler-incomplete.c b/tests/spec/arb_sampler_objects/sampler-incomplete.c
index d357c2bab..bf16e2fb8 100644
--- a/tests/spec/arb_sampler_objects/sampler-incomplete.c
+++ b/tests/spec/arb_sampler_objects/sampler-incomplete.c
@@ -137,7 +137,7 @@ piglit_display(void)
void
piglit_init(int argc, char**argv)
{
- piglit_require_GLSL();
piglit_require_extension("GL_ARB_sampler_objects");
+ piglit_require_fragment_shader();
setup();
}
diff --git a/tests/spec/arb_shader_texture_lod/execution/texgrad.c b/tests/spec/arb_shader_texture_lod/execution/texgrad.c
index f8ba2844c..1390dcff0 100644
--- a/tests/spec/arb_shader_texture_lod/execution/texgrad.c
+++ b/tests/spec/arb_shader_texture_lod/execution/texgrad.c
@@ -81,7 +81,7 @@ void piglit_init(int argc, char **argv)
GLenum status;
int i, dim;
- piglit_require_GLSL();
+ piglit_require_fragment_shader();
piglit_require_extension("GL_EXT_framebuffer_object");
piglit_require_extension("GL_ARB_shader_texture_lod");
diff --git a/tests/spec/arb_shader_texture_lod/execution/texgradcube.c b/tests/spec/arb_shader_texture_lod/execution/texgradcube.c
index d0ed36e01..7d2e6c07c 100644
--- a/tests/spec/arb_shader_texture_lod/execution/texgradcube.c
+++ b/tests/spec/arb_shader_texture_lod/execution/texgradcube.c
@@ -80,7 +80,7 @@ void piglit_init(int argc, char **argv)
GLenum status;
int i, j, dim;
- piglit_require_GLSL();
+ piglit_require_fragment_shader();
piglit_require_extension("GL_EXT_framebuffer_object");
piglit_require_extension("GL_ARB_shader_texture_lod");
diff --git a/tests/spec/arb_transform_feedback2/api-queries.c b/tests/spec/arb_transform_feedback2/api-queries.c
index b2147d54f..03b39e124 100644
--- a/tests/spec/arb_transform_feedback2/api-queries.c
+++ b/tests/spec/arb_transform_feedback2/api-queries.c
@@ -98,8 +98,8 @@ void piglit_init(int argc, char **argv)
const char *varyings[] = {"x"};
bool pass = true;
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
- piglit_require_GLSL();
piglit_require_extension("GL_ARB_transform_feedback2");
pass = check_int(GL_TRANSFORM_FEEDBACK_BINDING, 0) && pass;
diff --git a/tests/spec/arb_transform_feedback2/cannot-bind-when-active.c b/tests/spec/arb_transform_feedback2/cannot-bind-when-active.c
index 754b48dac..5fa2d8062 100644
--- a/tests/spec/arb_transform_feedback2/cannot-bind-when-active.c
+++ b/tests/spec/arb_transform_feedback2/cannot-bind-when-active.c
@@ -60,8 +60,8 @@ void piglit_init(int argc, char **argv)
bool pass = true;
static const char *varyings[] = {"x"};
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
- piglit_require_GLSL();
piglit_require_extension("GL_ARB_transform_feedback2");
/* This is all just the boot-strap work for the test.
diff --git a/tests/spec/arb_transform_feedback2/draw-auto.c b/tests/spec/arb_transform_feedback2/draw-auto.c
index 856d29975..ccf409313 100644
--- a/tests/spec/arb_transform_feedback2/draw-auto.c
+++ b/tests/spec/arb_transform_feedback2/draw-auto.c
@@ -78,7 +78,7 @@ void piglit_init(int argc, char **argv)
/* Check the driver. */
piglit_require_gl_version(15);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_extension("GL_EXT_transform_feedback");
piglit_require_extension("GL_ARB_transform_feedback2");
if (instanced)
diff --git a/tests/spec/arb_transform_feedback2/istransformfeedback.c b/tests/spec/arb_transform_feedback2/istransformfeedback.c
index c1d8c217e..bd53e1894 100644
--- a/tests/spec/arb_transform_feedback2/istransformfeedback.c
+++ b/tests/spec/arb_transform_feedback2/istransformfeedback.c
@@ -67,7 +67,6 @@ piglit_init(int argc, char **argv)
GLuint id;
piglit_require_gl_version(15);
- piglit_require_GLSL();
piglit_require_extension("GL_EXT_transform_feedback");
piglit_require_extension("GL_ARB_transform_feedback2");
diff --git a/tests/spec/arb_transform_feedback2/pause-counting.c b/tests/spec/arb_transform_feedback2/pause-counting.c
index 947cc7412..99b55f2ce 100644
--- a/tests/spec/arb_transform_feedback2/pause-counting.c
+++ b/tests/spec/arb_transform_feedback2/pause-counting.c
@@ -64,8 +64,8 @@ void piglit_init(int argc, char **argv)
GLuint generated;
GLuint written;
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
- piglit_require_GLSL();
piglit_require_extension("GL_ARB_transform_feedback2");
/* This is all just the boot-strap work for the test.
diff --git a/tests/spec/arb_vertex_buffer_object/mixed-immediate-and-vbo.c b/tests/spec/arb_vertex_buffer_object/mixed-immediate-and-vbo.c
index 0e65b1bb4..5f43942ab 100644
--- a/tests/spec/arb_vertex_buffer_object/mixed-immediate-and-vbo.c
+++ b/tests/spec/arb_vertex_buffer_object/mixed-immediate-and-vbo.c
@@ -47,7 +47,7 @@ void
piglit_init(int argc, char **argv)
{
piglit_require_extension("GL_ARB_vertex_buffer_object");
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
}
const char *vs_source = {
diff --git a/tests/spec/ext_transform_feedback/api-errors.c b/tests/spec/ext_transform_feedback/api-errors.c
index 0bbcd66e2..b5437776c 100644
--- a/tests/spec/ext_transform_feedback/api-errors.c
+++ b/tests/spec/ext_transform_feedback/api-errors.c
@@ -448,7 +448,7 @@ piglit_init(int argc, char **argv)
print_usage_and_exit(argv[0]);
test = find_matching_test(argv[0], argv[1]);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
if (test->bind_mode == OFFSET) {
/* BindBufferOffset only exists in the EXT specification */
diff --git a/tests/spec/ext_transform_feedback/builtin-varyings.c b/tests/spec/ext_transform_feedback/builtin-varyings.c
index 34b091bff..959e247aa 100644
--- a/tests/spec/ext_transform_feedback/builtin-varyings.c
+++ b/tests/spec/ext_transform_feedback/builtin-varyings.c
@@ -455,6 +455,7 @@ piglit_init(int argc, char **argv)
test_to_run = find_matching_test(argv[0], argv[1]);
/* Set up test */
+ piglit_require_vertex_shader();
piglit_require_GLSL_version(test_to_run->version);
piglit_require_transform_feedback();
vs = piglit_compile_shader_text(GL_VERTEX_SHADER, test_to_run->vs);
diff --git a/tests/spec/ext_transform_feedback/generatemipmap.c b/tests/spec/ext_transform_feedback/generatemipmap.c
index dfd394670..37f0ac749 100644
--- a/tests/spec/ext_transform_feedback/generatemipmap.c
+++ b/tests/spec/ext_transform_feedback/generatemipmap.c
@@ -285,7 +285,7 @@ void piglit_init(int argc, char **argv)
if (buffer || prims_written) {
GLuint vs;
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vstext);
xfb_prog = glCreateProgram();
glAttachShader(xfb_prog, vs);
diff --git a/tests/spec/ext_transform_feedback/immediate-reuse.c b/tests/spec/ext_transform_feedback/immediate-reuse.c
index 8d8b0693b..c4289bbd9 100644
--- a/tests/spec/ext_transform_feedback/immediate-reuse.c
+++ b/tests/spec/ext_transform_feedback/immediate-reuse.c
@@ -82,7 +82,8 @@ piglit_init(int argc, char **argv)
{
GLuint vs, fs;
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
piglit_require_transform_feedback();
vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vstext);
diff --git a/tests/spec/ext_transform_feedback/interleaved.c b/tests/spec/ext_transform_feedback/interleaved.c
index 0d237d7e0..292f90096 100644
--- a/tests/spec/ext_transform_feedback/interleaved.c
+++ b/tests/spec/ext_transform_feedback/interleaved.c
@@ -66,7 +66,7 @@ void piglit_init(int argc, char **argv)
/* Check the driver. */
piglit_require_gl_version(15);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
glGetIntegerv(GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT, &maxcomps);
diff --git a/tests/spec/ext_transform_feedback/intervening-read.c b/tests/spec/ext_transform_feedback/intervening-read.c
index 7b8417f08..ef622b70f 100644
--- a/tests/spec/ext_transform_feedback/intervening-read.c
+++ b/tests/spec/ext_transform_feedback/intervening-read.c
@@ -208,8 +208,11 @@ piglit_init(int argc, char **argv)
else
print_usage_and_exit(argv[0]);
- piglit_require_GLSL();
- piglit_require_transform_feedback();
+ if (!use_gs) {
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
+ piglit_require_transform_feedback();
+ }
if (use_gs) {
vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vstext_gs);
diff --git a/tests/spec/ext_transform_feedback/output-type.c b/tests/spec/ext_transform_feedback/output-type.c
index 0dba71127..011a17a1e 100644
--- a/tests/spec/ext_transform_feedback/output-type.c
+++ b/tests/spec/ext_transform_feedback/output-type.c
@@ -1492,10 +1492,14 @@ test_ready:
/* Check the driver. */
piglit_require_gl_version(15);
- piglit_require_GLSL();
piglit_require_transform_feedback();
if (!test->is_floating_point)
piglit_require_GLSL_version(130);
+ else {
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
+ }
+
if (test->is_transform_feedback3)
piglit_require_extension("GL_ARB_transform_feedback3");
diff --git a/tests/spec/ext_transform_feedback/overflow-edge-cases.c b/tests/spec/ext_transform_feedback/overflow-edge-cases.c
index 0249c6739..9e940948f 100644
--- a/tests/spec/ext_transform_feedback/overflow-edge-cases.c
+++ b/tests/spec/ext_transform_feedback/overflow-edge-cases.c
@@ -142,7 +142,7 @@ piglit_init(int argc, char **argv)
int num_varyings;
int mode;
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
for (mode = 0; mode < ARRAY_SIZE(modes); mode++) {
diff --git a/tests/spec/ext_transform_feedback/pipeline-basic-primgen.c b/tests/spec/ext_transform_feedback/pipeline-basic-primgen.c
index 162f78dd8..e6d17d74e 100644
--- a/tests/spec/ext_transform_feedback/pipeline-basic-primgen.c
+++ b/tests/spec/ext_transform_feedback/pipeline-basic-primgen.c
@@ -52,7 +52,7 @@ void piglit_init(int argc, char **argv)
/* Check the driver. */
piglit_require_gl_version(15);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
glGenQueries(1, &q);
diff --git a/tests/spec/ext_transform_feedback/points.c b/tests/spec/ext_transform_feedback/points.c
index 7c7ce6c8a..ef7604bdf 100644
--- a/tests/spec/ext_transform_feedback/points.c
+++ b/tests/spec/ext_transform_feedback/points.c
@@ -68,7 +68,7 @@ piglit_init(int argc, char **argv)
/* Check the driver. */
piglit_require_gl_version(15);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
/* Create shaders. */
diff --git a/tests/spec/ext_transform_feedback/position.c b/tests/spec/ext_transform_feedback/position.c
index ff4470b13..8be422480 100644
--- a/tests/spec/ext_transform_feedback/position.c
+++ b/tests/spec/ext_transform_feedback/position.c
@@ -104,7 +104,7 @@ void piglit_init(int argc, char **argv)
/* Check the driver. */
piglit_require_gl_version(15);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
/* Create shaders. */
diff --git a/tests/spec/ext_transform_feedback/primgen.c b/tests/spec/ext_transform_feedback/primgen.c
index 4e1d2be70..f432ee4c0 100644
--- a/tests/spec/ext_transform_feedback/primgen.c
+++ b/tests/spec/ext_transform_feedback/primgen.c
@@ -57,7 +57,7 @@ void piglit_init(int argc, char **argv)
/* Check the driver. */
piglit_require_gl_version(15);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
glGenQueries(1, &q);
diff --git a/tests/spec/ext_transform_feedback/separate.c b/tests/spec/ext_transform_feedback/separate.c
index d4865cd57..77bb6af96 100644
--- a/tests/spec/ext_transform_feedback/separate.c
+++ b/tests/spec/ext_transform_feedback/separate.c
@@ -66,7 +66,7 @@ void piglit_init(int argc, char **argv)
/* Check the driver. */
piglit_require_gl_version(15);
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
piglit_require_transform_feedback();
glGetIntegerv(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT, &maxattrs);
diff --git a/tests/spec/glsl-1.10/execution/clipping/clip-plane-transformation.c b/tests/spec/glsl-1.10/execution/clipping/clip-plane-transformation.c
index 346a9ef4d..a7205e51e 100644
--- a/tests/spec/glsl-1.10/execution/clipping/clip-plane-transformation.c
+++ b/tests/spec/glsl-1.10/execution/clipping/clip-plane-transformation.c
@@ -304,8 +304,9 @@ piglit_init(int argc, char **argv)
piglit_require_extension("GL_ARB_vertex_program");
setup_arb_program();
} else if (use_glsl) {
- piglit_require_GLSL();
piglit_require_GLSL_version(use_glsl_130 ? 130 : 110);
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
setup_glsl_programs();
}
}
diff --git a/tests/spec/glsl-1.10/execution/glsl-render-after-bad-attach.c b/tests/spec/glsl-1.10/execution/glsl-render-after-bad-attach.c
index b3b08a585..a59419826 100644
--- a/tests/spec/glsl-1.10/execution/glsl-render-after-bad-attach.c
+++ b/tests/spec/glsl-1.10/execution/glsl-render-after-bad-attach.c
@@ -107,5 +107,6 @@ piglit_display(void)
void
piglit_init(int argc, char **argv)
{
- piglit_require_GLSL();
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
}
diff --git a/tests/spec/glsl-1.20/getactiveuniform-constant.c b/tests/spec/glsl-1.20/getactiveuniform-constant.c
index 4742ae77c..e493c7486 100644
--- a/tests/spec/glsl-1.20/getactiveuniform-constant.c
+++ b/tests/spec/glsl-1.20/getactiveuniform-constant.c
@@ -99,6 +99,8 @@ piglit_init(int argc, char **argv)
int i;
piglit_require_GLSL_version(120);
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vs_code);
fs = piglit_compile_shader_text(GL_FRAGMENT_SHADER, fs_code);
diff --git a/tests/spec/nv_texture_barrier/blending-in-shader.c b/tests/spec/nv_texture_barrier/blending-in-shader.c
index e4514c02e..3af958783 100644
--- a/tests/spec/nv_texture_barrier/blending-in-shader.c
+++ b/tests/spec/nv_texture_barrier/blending-in-shader.c
@@ -86,7 +86,7 @@ void piglit_init(int argc, char **argv)
piglit_require_extension("GL_EXT_framebuffer_object");
piglit_require_extension("GL_NV_texture_barrier");
- piglit_require_GLSL();
+ piglit_require_fragment_shader();
srand(0);
for (i = 0; i < 16 * 16 * 4; ++i) {