Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
---
 tests/all.py                                       |  6 ++
 tests/spec/arb_texture_view/CMakeLists.gles3.txt   |  3 +
 .../sampling-2d-array-as-2d-layer.c                | 72 +++++++++++++---------
 .../sampling-2d-array-as-cubemap-array.c           | 63 ++++++++++++-------
 .../sampling-2d-array-as-cubemap.c                 | 59 +++++++++++-------
 5 files changed, 129 insertions(+), 74 deletions(-)

diff --git a/tests/all.py b/tests/all.py
index 4a5b3e6..f57be72 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -2595,6 +2595,12 @@ with profile.group_manager(
     g(['arb_texture_view-rendering-layers_gles3'], 'rendering-layers')
     g(['arb_texture_view-rendering-levels_gles3'], 'rendering-levels')
     g(['arb_texture_view-rendering-target_gles3'], 'rendering-target')
+    g(['arb_texture_view-sampling-2d-array-as-cubemap_gles3'],
+      'sampling-2d-array-as-cubemap')
+    g(['arb_texture_view-sampling-2d-array-as-cubemap-array_gles3'],
+      'sampling-2d-array-as-cubemap-array')
+    g(['arb_texture_view-sampling-2d-array-as-2d-layer_gles3'],
+      'sampling-2d-array-as-2d-layer')
 
 with profile.group_manager(
         PiglitGLTest,
diff --git a/tests/spec/arb_texture_view/CMakeLists.gles3.txt 
b/tests/spec/arb_texture_view/CMakeLists.gles3.txt
index 02ce468..2096f20 100644
--- a/tests/spec/arb_texture_view/CMakeLists.gles3.txt
+++ b/tests/spec/arb_texture_view/CMakeLists.gles3.txt
@@ -4,3 +4,6 @@ piglit_add_executable(arb_texture_view-rendering-formats_gles3 
rendering-formats
 piglit_add_executable(arb_texture_view-rendering-layers_gles3 
rendering_layers.c common.c)
 piglit_add_executable(arb_texture_view-rendering-levels_gles3 
rendering_levels.c common.c)
 piglit_add_executable(arb_texture_view-rendering-target_gles3 
rendering_target.c common.c)
+piglit_add_executable(arb_texture_view-sampling-2d-array-as-2d-layer_gles3 
sampling-2d-array-as-2d-layer.c)
+piglit_add_executable(arb_texture_view-sampling-2d-array-as-cubemap_gles3 
sampling-2d-array-as-cubemap.c)
+piglit_add_executable(arb_texture_view-sampling-2d-array-as-cubemap-array_gles3
 sampling-2d-array-as-cubemap-array.c)
diff --git a/tests/spec/arb_texture_view/sampling-2d-array-as-2d-layer.c 
b/tests/spec/arb_texture_view/sampling-2d-array-as-2d-layer.c
index 8189044..e6b49d1 100644
--- a/tests/spec/arb_texture_view/sampling-2d-array-as-2d-layer.c
+++ b/tests/spec/arb_texture_view/sampling-2d-array-as-2d-layer.c
@@ -33,13 +33,14 @@
 
 PIGLIT_GL_TEST_CONFIG_BEGIN
        config.supports_gl_compat_version = 30;
-//     config.supports_gl_core_version = 32;
+       config.supports_gl_es_version = 31;
        config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
 
 PIGLIT_GL_TEST_CONFIG_END
 
-static const float green[] = {0, 1, 0, 1};
-static const float red[] = {1, 0, 0, 1};
+static const GLubyte green[] = {0, 255, 0, 255};
+static const float greenf[] = {0, 1.0f, 0, 1.0f};
+static const GLubyte red[] = {255, 0, 0, 255};
 
 typedef struct Params {
        int num_layers;
@@ -62,9 +63,9 @@ static const Params testparams[] = {
        { 3, 35, 67, "35x67" }
 };
 
-static float *makesolidimage(int w, int h, const float color[4])
+static GLubyte *makesolidimage(int w, int h, const GLubyte color[4])
 {
-       float *p = malloc(w * h * 4 * sizeof(GLfloat));
+       GLubyte *p = malloc(w * h * 4 * sizeof(GLubyte));
        size_t n;
        assert(p);
        for (n = 0; n < w * h; n++) {
@@ -82,7 +83,7 @@ test_single_layer(const Params* p, int layer)
        int l;
        GLuint tex_src, tex_view;
        GLboolean pass;
-       GLfloat *image;
+       GLubyte *image;
 
        assert(layer < p->num_layers);
 
@@ -95,14 +96,14 @@ test_single_layer(const Params* p, int layer)
        image = makesolidimage(p->width, p->height, red);
        for (l = 0; l < p->num_layers; l++) {
                glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, l,
-                               p->width, p->height, 1, GL_RGBA, GL_FLOAT, 
image);
+                               p->width, p->height, 1, GL_RGBA, 
GL_UNSIGNED_BYTE, image);
        }
 
        /* make layer to check red, but green for pixel at (0,0) which should 
be the only one sampled */
        memcpy(image, green, sizeof(green));
 
        glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, layer,
-                       p->width, p->height, 1, GL_RGBA, GL_FLOAT, image);
+                       p->width, p->height, 1, GL_RGBA, GL_UNSIGNED_BYTE, 
image);
 
        free(image);
 
@@ -120,7 +121,7 @@ test_single_layer(const Params* p, int layer)
        /* draw it! */
        piglit_draw_rect(-1, -1, 2, 2);
 
-       pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height, green);
+       pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height, 
greenf);
        if (!pass) {
                printf("layer %d failed\n", layer);
        }
@@ -158,35 +159,48 @@ piglit_display(void)
        return pass ? PIGLIT_PASS : PIGLIT_FAIL;
 }
 
+#ifdef PIGLIT_USE_OPENGL
+#define GLSL_VERSION "130"
+#else
+#define GLSL_VERSION "310 es"
+#endif
+
+static const char *vs =
+       "#version " GLSL_VERSION "\n"
+       "in vec4 piglit_vertex;\n"
+       "void main() { \n"
+       "       gl_Position = piglit_vertex;\n"
+       "}\n";
+
+static const char *fs =
+       "#version " GLSL_VERSION "\n"
+       "#ifdef GL_ES\n"
+       "precision highp float;\n"
+       "precision highp sampler2D;\n"
+       "#endif\n"
+       "uniform sampler2D tex;\n"
+       "out vec4 color;\n"
+       "void main() { \n"
+       "       ivec2 size = textureSize(tex, 0);\n"
+       /* texel in (0,0) should be the only green texel in the entire texture 
*/
+       "       vec2 offset = vec2(0.5/float(size.x), 0.5/float(size.y));\n"
+       "       color = vec4(texture(tex, offset).xyz, 1.0);\n"
+       "}\n";
+
 void
 piglit_init(int argc, char **argv)
 {
        int tex_loc_view, prog_view;
-       char *vsCode;
-       char *fsCode;
 
+#ifdef PIGLIT_USE_OPENGL
        piglit_require_extension("GL_ARB_texture_view");
        piglit_require_extension("GL_ARB_texture_storage");
+#else
+       piglit_require_extension("GL_OES_texture_view");
+#endif
 
        /* setup shaders and program object for texture rendering */
-       vsCode =
-                "#version 130\n"
-                "void main()\n"
-                "{\n"
-                "    gl_Position = gl_Vertex;\n"
-                "}\n";
-       fsCode =
-                "#version 130\n"
-                "uniform sampler2D tex;\n"
-                "void main()\n"
-                "{\n"
-                "   ivec2 size = textureSize(tex, 0);\n"
-                /* texel in (0,0) should be the only green texel in the entire 
texture */
-                "   vec2 offset = vec2(0.5/float(size.x), 
0.5/float(size.y));\n"
-                "   vec4 color = texture(tex, offset);\n"
-                "   gl_FragColor = vec4(color.xyz, 1.0);\n"
-                "}\n";
-       prog_view = piglit_build_simple_program(vsCode, fsCode);
+       prog_view = piglit_build_simple_program(vs, fs);
        tex_loc_view = glGetUniformLocation(prog_view, "tex");
 
        glUseProgram(prog_view);
diff --git a/tests/spec/arb_texture_view/sampling-2d-array-as-cubemap-array.c 
b/tests/spec/arb_texture_view/sampling-2d-array-as-cubemap-array.c
index 52d6328..6d7574c 100644
--- a/tests/spec/arb_texture_view/sampling-2d-array-as-cubemap-array.c
+++ b/tests/spec/arb_texture_view/sampling-2d-array-as-cubemap-array.c
@@ -34,12 +34,14 @@
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
        config.supports_gl_compat_version = 30;
+       config.supports_gl_es_version = 31;
        config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
 
 PIGLIT_GL_TEST_CONFIG_END
 
-static float green[] = {0, 1, 0, 1};
-static float red[] = {1, 0, 0, 1};
+static const GLubyte green[] = {0, 255, 0, 255};
+static const float greenf[] = {0, 1.0f, 0, 1.0f};
+static const GLubyte red[] = {255, 0, 0, 255};
 
 enum piglit_result
 piglit_display(void)
@@ -52,41 +54,56 @@ piglit_display(void)
 
        piglit_draw_rect(-1, -1, 2, 2);
 
-       pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height, green);
+       pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height, 
greenf);
 
        piglit_present_results();
 
        return pass ? PIGLIT_PASS : PIGLIT_FAIL;
 }
 
+#ifdef PIGLIT_USE_OPENGL
+#define GLSL_VERSION "130"
+#else
+#define GLSL_VERSION "310 es"
+#endif
+
+static const char *vs =
+       "#version " GLSL_VERSION "\n"
+       "in vec4 piglit_vertex;\n"
+       "void main() { \n"
+       "       gl_Position = piglit_vertex;\n"
+       "}\n";
+
+static const char *fs =
+       "#version " GLSL_VERSION "\n"
+       "#extension GL_ARB_texture_cube_map_array: enable\n"
+       "#extension GL_OES_texture_cube_map_array: enable\n"
+       "#ifdef GL_ES\n"
+       "precision highp float;\n"
+       "precision highp samplerCubeArray;\n"
+       "#endif\n"
+       "uniform samplerCubeArray tex;\n"
+       "out vec4 color;\n"
+       "void main() { \n"
+       "       color = vec4(texture(tex, vec4(-1, 0, 0, 1)).xyz, 1.0);\n"
+       "}\n";
+
 void
 piglit_init(int argc, char **argv)
 {
-       char *vsCode;
-       char *fsCode;
        int tex_loc_cube, prog_cube, l;
        GLuint tex_2DArray, tex_Cube;
 
+#ifdef PIGLIT_USE_OPENGL
        piglit_require_extension("GL_ARB_texture_view");
        piglit_require_extension("GL_ARB_texture_cube_map_array");
+#else
+       piglit_require_extension("GL_OES_texture_view");
+       piglit_require_extension("GL_OES_texture_cube_map_array");
+#endif
 
        /* setup shaders and program object for Cube rendering */
-       (void)!asprintf(&vsCode,
-                "void main()\n"
-                "{\n"
-                "    gl_Position = gl_Vertex;\n"
-                "}\n");
-       (void)!asprintf(&fsCode,
-                "#extension GL_ARB_texture_cube_map_array: require\n"
-                "uniform samplerCubeArray tex;\n"
-                "void main()\n"
-                "{\n"
-                "   vec4 color = texture(tex, vec4(-1, 0, 0, 1));\n"
-                "   gl_FragColor = vec4(color.xyz, 1.0);\n"
-                "}\n");
-       prog_cube = piglit_build_simple_program(vsCode, fsCode);
-       free(fsCode);
-       free(vsCode);
+       prog_cube = piglit_build_simple_program(vs, fs);
        tex_loc_cube = glGetUniformLocation(prog_cube, "tex");
 
        glGenTextures(1, &tex_2DArray);
@@ -97,11 +114,11 @@ piglit_init(int argc, char **argv)
        /* load each array layer with red */
        for (l = 0; l < 16; l++) {
                glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, l,
-                               1, 1, 1, GL_RGBA, GL_FLOAT, red);
+                               1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, red);
        }
        /* make array layer 9 have green */
        glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, 9,
-                       1, 1, 1, GL_RGBA, GL_FLOAT, green);
+                       1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, green);
 
        glGenTextures(1, &tex_Cube);
        /* the texture view starts at layer 2, so face 1 (-X) of
diff --git a/tests/spec/arb_texture_view/sampling-2d-array-as-cubemap.c 
b/tests/spec/arb_texture_view/sampling-2d-array-as-cubemap.c
index eaee0a0..fbfe99a 100644
--- a/tests/spec/arb_texture_view/sampling-2d-array-as-cubemap.c
+++ b/tests/spec/arb_texture_view/sampling-2d-array-as-cubemap.c
@@ -34,12 +34,14 @@
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
        config.supports_gl_compat_version = 30;
+       config.supports_gl_es_version = 31;
        config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
 
 PIGLIT_GL_TEST_CONFIG_END
 
-static float green[] = {0, 1, 0, 1};
-static float red[] = {1, 0, 0, 1};
+static const GLubyte green[] = {0, 255, 0, 255};
+static const float greenf[] = {0, 1.0f, 0, 1.0f};
+static const GLubyte red[] = {255, 0, 0, 255};
 
 enum piglit_result
 piglit_display(void)
@@ -52,39 +54,52 @@ piglit_display(void)
 
        piglit_draw_rect(-1, -1, 2, 2);
 
-       pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height, green);
+       pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height, 
greenf);
 
        piglit_present_results();
 
        return pass ? PIGLIT_PASS : PIGLIT_FAIL;
 }
 
+#ifdef PIGLIT_USE_OPENGL
+#define GLSL_VERSION "130"
+#else
+#define GLSL_VERSION "310 es"
+#endif
+
+static const char *vs =
+       "#version " GLSL_VERSION "\n"
+       "in vec4 piglit_vertex;\n"
+       "void main() { \n"
+       "       gl_Position = piglit_vertex;\n"
+       "}\n";
+
+static const char *fs =
+       "#version " GLSL_VERSION "\n"
+       "#ifdef GL_ES\n"
+       "precision highp float;\n"
+       "precision highp samplerCube;\n"
+       "#endif\n"
+       "uniform samplerCube tex;\n"
+       "out vec4 color;\n"
+       "void main() { \n"
+       "       color = vec4(texture(tex, vec3(-1, 0, 0)).xyz, 1.0);\n"
+       "}\n";
+
 void
 piglit_init(int argc, char **argv)
 {
-       char *vsCode;
-       char *fsCode;
        int tex_loc_cube, prog_cube, l;
        GLuint tex_2DArray, tex_Cube;
 
+#ifdef PIGLIT_USE_OPENGL
        piglit_require_extension("GL_ARB_texture_view");
+#else
+       piglit_require_extension("GL_OES_texture_view");
+#endif
 
        /* setup shaders and program object for Cube rendering */
-       (void)!asprintf(&vsCode,
-                "void main()\n"
-                "{\n"
-                "    gl_Position = gl_Vertex;\n"
-                "}\n");
-       (void)!asprintf(&fsCode,
-                "uniform samplerCube tex;\n"
-                "void main()\n"
-                "{\n"
-                "   vec4 color = textureCube(tex, vec3(-1, 0, 0));\n"
-                "   gl_FragColor = vec4(color.xyz, 1.0);\n"
-                "}\n");
-       prog_cube = piglit_build_simple_program(vsCode, fsCode);
-       free(fsCode);
-       free(vsCode);
+       prog_cube = piglit_build_simple_program(vs, fs);
        tex_loc_cube = glGetUniformLocation(prog_cube, "tex");
 
        glGenTextures(1, &tex_2DArray);
@@ -95,11 +110,11 @@ piglit_init(int argc, char **argv)
        /* load each array layer with red */
        for (l = 0; l < 8; l++) {
                glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, l,
-                               1, 1, 1, GL_RGBA, GL_FLOAT, red);
+                               1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, red);
        }
        /* make array layer 3 have green */
        glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, 3,
-                       1, 1, 1, GL_RGBA, GL_FLOAT, green);
+                       1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, green);
 
        glGenTextures(1, &tex_Cube);
        /* the texture view starts at layer 2, so face 1 (-X) will have green */
-- 
2.7.3

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to