[Piglit] [PATCH 7/8] teximage-errors: Only run the depth texture subtests when depth textures are supported
From: Ian Romanick Fixes failure on radeon and probably others. Signed-off-by: Ian Romanick --- tests/texturing/teximage-errors.c | 32 ++-- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/tests/texturing/teximage-errors.c b/tests/texturing/teximage-errors.c index 1c9fe14..bb993d3 100644 --- a/tests/texturing/teximage-errors.c +++ b/tests/texturing/teximage-errors.c @@ -236,20 +236,24 @@ piglit_display(void) pass = test_targets() && pass; pass = test_pos_and_sizes() && pass; - /* From OpenGL 3.3 spec, page 141: - *"Textures with a base internal format of DEPTH_COMPONENT or - * DEPTH_STENCIL require either depth component data or depth/stencil - * component data. Textures with other base internal formats require - * RGBA component data. The error INVALID_OPERATION is generated if - * one of the base internal format and format is DEPTH_COMPONENT or - * DEPTH_STENCIL, and the other is neither of these values." - */ - pass = test_depth_formats(formats_allowed, GL_NO_ERROR, - ARRAY_SIZE(formats_allowed)) - && pass; - pass = test_depth_formats(formats_not_allowed, GL_INVALID_OPERATION, - ARRAY_SIZE(formats_not_allowed)) - && pass; + if (piglit_get_gl_version() >= 14 + || piglit_is_extension_supported("GL_ARB_depth_texture")) { + /* From OpenGL 3.3 spec, page 141: + *"Textures with a base internal format of DEPTH_COMPONENT or + * DEPTH_STENCIL require either depth component data or depth/stencil + * component data. Textures with other base internal formats require + * RGBA component data. The error INVALID_OPERATION is generated if + * one of the base internal format and format is DEPTH_COMPONENT or + * DEPTH_STENCIL, and the other is neither of these values." + */ + pass = test_depth_formats(formats_allowed, GL_NO_ERROR, +ARRAY_SIZE(formats_allowed)) + && pass; + pass = test_depth_formats(formats_not_allowed, GL_INVALID_OPERATION, +ARRAY_SIZE(formats_not_allowed)) + && pass; + } + return pass ? PIGLIT_PASS: PIGLIT_FAIL; } -- 2.9.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH 4/8] texsubimage-depth-formats: Require ARB_depth_texture
From: Ian Romanick Signed-off-by: Ian Romanick --- tests/texturing/texsubimage-depth-formats.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/texturing/texsubimage-depth-formats.c b/tests/texturing/texsubimage-depth-formats.c index aa6f586..ead2811 100644 --- a/tests/texturing/texsubimage-depth-formats.c +++ b/tests/texturing/texsubimage-depth-formats.c @@ -170,6 +170,8 @@ load_texture(int formats_idx, int tex_size_idx) void piglit_init(int argc, char **argv) { + piglit_require_extension("GL_ARB_depth_texture"); + for (int i = 1; i < argc; ++i) { if (!strcmp(argv[i], "pbo")) { piglit_require_extension("GL_ARB_pixel_buffer_object"); -- 2.9.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH 2/8] fbo: Require ARB_depth_texture in more tests
From: Ian Romanick All of these tests fail when run on implementations that support ARB_framebuffer_object but not ARB_depth_texture. Signed-off-by: Ian Romanick --- tests/fbo/fbo-depth-tex1d.c | 1 + tests/fbo/fbo-incomplete-invalid-texture.c | 2 +- ...same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/fbo/fbo-depth-tex1d.c b/tests/fbo/fbo-depth-tex1d.c index 51acd9a..e0810e3 100644 --- a/tests/fbo/fbo-depth-tex1d.c +++ b/tests/fbo/fbo-depth-tex1d.c @@ -211,6 +211,7 @@ void piglit_init(int argc, char **argv) unsigned i, p; piglit_require_extension("GL_EXT_framebuffer_object"); + piglit_require_extension("GL_ARB_depth_texture"); for (p = 1; p < argc; p++) { for (i = 0; i < sizeof(formats)/sizeof(*formats); i++) { diff --git a/tests/fbo/fbo-incomplete-invalid-texture.c b/tests/fbo/fbo-incomplete-invalid-texture.c index ac183b4..48d6c86 100644 --- a/tests/fbo/fbo-incomplete-invalid-texture.c +++ b/tests/fbo/fbo-incomplete-invalid-texture.c @@ -52,7 +52,7 @@ piglit_init(int argc, char **argv) GLenum status; piglit_require_extension("GL_ARB_framebuffer_object"); - + piglit_require_extension("GL_ARB_depth_texture"); glGenTextures(1, &tex); glBindTexture(GL_TEXTURE_2D, tex); diff --git a/tests/spec/arb_framebuffer_object/same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c b/tests/spec/arb_framebuffer_object/same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c index 389f92c..fb0e59f 100644 --- a/tests/spec/arb_framebuffer_object/same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c +++ b/tests/spec/arb_framebuffer_object/same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c @@ -143,6 +143,7 @@ void piglit_init(int argc, char **argv) GLuint tex; piglit_require_extension("GL_ARB_framebuffer_object"); + piglit_require_extension("GL_ARB_depth_texture"); glGenTextures(1, &tex); glGenFramebuffers(1, &fb); -- 2.9.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH 6/8] fbo: Use renderbuffers instead of textures
From: Ian Romanick This allows fbo-blit-stretch to run on platforms that support ARB_framebuffer_object but not ARB_texture_non_power_of_two. Coneptually similar to 7b3f6d5. Signed-off-by: Ian Romanick --- tests/fbo/fbo-blit-stretch.cpp | 26 -- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/tests/fbo/fbo-blit-stretch.cpp b/tests/fbo/fbo-blit-stretch.cpp index 935d0d4..da85335 100644 --- a/tests/fbo/fbo-blit-stretch.cpp +++ b/tests/fbo/fbo-blit-stretch.cpp @@ -321,22 +321,22 @@ run_test(const TestCase &test) GLboolean pass; - GLuint tex; + GLuint rbo; GLuint fbo; GLenum status; glGenFramebuffers(1, &fbo); glBindFramebuffer(GL_FRAMEBUFFER, fbo); - tex = piglit_rgbw_texture(GL_RGBA, test.srcW, test.srcH, GL_FALSE, GL_TRUE, GL_UNSIGNED_NORMALIZED); + glGenRenderbuffers(1, &rbo); + glBindRenderbuffer(GL_RENDERBUFFER, rbo); + glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, test.srcW, test.srcH); + glBindRenderbuffer(GL_RENDERBUFFER, 0); - glBindTexture(GL_TEXTURE_2D, tex); - - glFramebufferTexture2D(GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - GL_TEXTURE_2D, - tex, - 0); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + GL_RENDERBUFFER, + rbo); if (!piglit_check_gl_error(GL_NO_ERROR)) piglit_report_result(PIGLIT_FAIL); @@ -344,6 +344,12 @@ run_test(const TestCase &test) if (status != GL_FRAMEBUFFER_COMPLETE) { pass = GL_TRUE; } else { + GLubyte *image = piglit_rgbw_image_ubyte(test.srcW, test.srcH, +GL_TRUE); + glDrawPixels(test.srcW, test.srcH, GL_RGBA, GL_UNSIGNED_BYTE, +image); + free(image); + glViewport(0, 0, piglit_width, piglit_height); piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE); @@ -364,7 +370,7 @@ run_test(const TestCase &test) glBindFramebuffer(GL_FRAMEBUFFER, piglit_winsys_fbo); glDeleteFramebuffers(1, &fbo); - glDeleteTextures(1, &tex); + glDeleteRenderbuffers(1, &rbo); return pass; } -- 2.9.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH 3/8] getteximage-depth: Require ARB_depth_texture
From: Ian Romanick Signed-off-by: Ian Romanick --- tests/texturing/getteximage-depth.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/texturing/getteximage-depth.c b/tests/texturing/getteximage-depth.c index 2986962..bc79466 100644 --- a/tests/texturing/getteximage-depth.c +++ b/tests/texturing/getteximage-depth.c @@ -592,6 +592,8 @@ piglit_init(int argc, char **argv) enum piglit_result status = PIGLIT_PASS; bool ret; + piglit_require_extension("GL_ARB_depth_texture"); + for (i = 0; i < ARRAY_SIZE(target_list); i++) { switch (target_list[i]) { -- 2.9.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH 8/8] teximage-errors: Fix comment formatting after previous commit
From: Ian Romanick Signed-off-by: Ian Romanick --- tests/texturing/teximage-errors.c | 17 ++--- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/texturing/teximage-errors.c b/tests/texturing/teximage-errors.c index bb993d3..fe95c82 100644 --- a/tests/texturing/teximage-errors.c +++ b/tests/texturing/teximage-errors.c @@ -238,13 +238,16 @@ piglit_display(void) if (piglit_get_gl_version() >= 14 || piglit_is_extension_supported("GL_ARB_depth_texture")) { - /* From OpenGL 3.3 spec, page 141: - *"Textures with a base internal format of DEPTH_COMPONENT or - * DEPTH_STENCIL require either depth component data or depth/stencil - * component data. Textures with other base internal formats require - * RGBA component data. The error INVALID_OPERATION is generated if - * one of the base internal format and format is DEPTH_COMPONENT or - * DEPTH_STENCIL, and the other is neither of these values." + /* Section 3.8.3 (Texture Image Specification) of the OpenGL 3.3 + * Core Profile spec says: + * + *Textures with a base internal format of DEPTH_COMPONENT or + *DEPTH_STENCIL require either depth component data or + *depth/stencil component data. Textures with other base + *internal formats require RGBA component data. The error + *INVALID_OPERATION is generated if one of the base internal + *format and format is DEPTH_COMPONENT or DEPTH_STENCIL, and + *the other is neither of these values. */ pass = test_depth_formats(formats_allowed, GL_NO_ERROR, ARRAY_SIZE(formats_allowed)) -- 2.9.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH 1/8] fbo: Fix trivial typo in comment
From: Ian Romanick Signed-off-by: Ian Romanick --- tests/fbo/fbo-incomplete-invalid-texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fbo/fbo-incomplete-invalid-texture.c b/tests/fbo/fbo-incomplete-invalid-texture.c index cd8adaf..ac183b4 100644 --- a/tests/fbo/fbo-incomplete-invalid-texture.c +++ b/tests/fbo/fbo-incomplete-invalid-texture.c @@ -61,7 +61,7 @@ piglit_init(int argc, char **argv) glGenFramebuffers(1, &fbo); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo); - /* The format of the pixel data is invalide for the specified + /* The format of the pixel data is invalid for the specified * internalFormat. This should fail and generate * GL_INVALID_OPERATION. This leaves the texture in a weird, broken * state. -- 2.9.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH 5/8] fbo: Remove support for the checkerboard test pattern
From: Ian Romanick The comment says (correctly) that it should not be used, and removing it make a later change easier. Signed-off-by: Ian Romanick --- tests/fbo/fbo-blit-stretch.cpp | 18 +- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/tests/fbo/fbo-blit-stretch.cpp b/tests/fbo/fbo-blit-stretch.cpp index 75c787a..935d0d4 100644 --- a/tests/fbo/fbo-blit-stretch.cpp +++ b/tests/fbo/fbo-blit-stretch.cpp @@ -41,13 +41,6 @@ #include "piglit-util-gl.h" -/* - * XXX: Checkerboard is not a good test pattern, because OpenGL spec allows the - * implementation to clamp against source rectangle edge, as oposed to clamp - * against the source edges, causing different results along the edge. - */ -#define CHECKERBOARD 0 - #define DSTW 200 #define DSTH 150 @@ -193,11 +186,7 @@ lerp2d(float xy00, float xy01, float xy10, float xy11, float wx, float wy) } static float clearColor[4] = { -#if CHECKERBOARD - 0.0, 0.0, 1.0, 1.0 -#else 0.5, 0.5, 0.5, 0.5 -#endif }; static GLboolean @@ -339,13 +328,8 @@ run_test(const TestCase &test) glGenFramebuffers(1, &fbo); glBindFramebuffer(GL_FRAMEBUFFER, fbo); -#if CHECKERBOARD - const float color1[4] = {1.0f, 0.0f, 0.0f, 1.0f}; - const float color2[4] = {0.0f, 1.0f, 0.0f, 1.0f}; - tex = piglit_checkerboard_texture(0, 0, test.srcW, test.srcH, 1, 1, color1, color2); -#else tex = piglit_rgbw_texture(GL_RGBA, test.srcW, test.srcH, GL_FALSE, GL_TRUE, GL_UNSIGNED_NORMALIZED); -#endif + glBindTexture(GL_TEXTURE_2D, tex); glFramebufferTexture2D(GL_FRAMEBUFFER, -- 2.9.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH] test/gleantest: fix missing --quick property from quick profile
Quoting Timothy Arceri (2017-05-18 23:21:13) > --- > framework/test/gleantest.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/framework/test/gleantest.py b/framework/test/gleantest.py > index b2d56f3..0220c1a 100644 > --- a/framework/test/gleantest.py > +++ b/framework/test/gleantest.py > @@ -49,21 +49,21 @@ class GleanTest(Test): > > def __init__(self, name, **kwargs): > super(GleanTest, self).__init__( > [self._EXECUTABLE, "-o", "-v", "-v", "-v", "-t", "+" + name], > **kwargs) > > @Test.command.getter > def command(self): > return super(GleanTest, self).command + self.GLOBAL_PARAMS > > -@Test.command.setter > +@command.setter > def command(self, new): > self._command = [n for n in new if not n in self.GLOBAL_PARAMS] > > def interpret_result(self): > if self.result.returncode != 0 or 'FAIL' in self.result.out: > self.result.result = 'fail' > else: > self.result.result = 'pass' > super(GleanTest, self).interpret_result() > > -- > 2.9.4 I know this already landed, but: Oops. I fixed the other instances of that. That is the correct fix I think, and it does make sense, but it's a pretty obscure case in the python class model. property is actually a special kind of class called a descriptor, basically it provides a getter, setter, and deleter method that get called when you query, assign, or delete the attribute. When the subclass overrides @Test.command.getter you actually create a new instance, so if you call @Test.command.{getter,setter,deleter} twice only one of the new instances is kept. Dylan > > ___ > Piglit mailing list > Piglit@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/piglit signature.asc Description: signature ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH] glsl-1.50: add linker test for unused in out blocks
This test exposes a Mesa GLSL linker bug. The test fails with the following error message: error: Input block `blk' is not an output of the previous stage Section 4.3.4 (Inputs) of the GLSL 1.50 spec says: "Only the input variables that are actually read need to be written by the previous stage; it is allowed to have superfluous declarations of input variables." --- .../interstage-multiple-shader-objects.shader_test | 38 ++ 1 file changed, 38 insertions(+) create mode 100644 tests/spec/glsl-1.50/linker/interstage-multiple-shader-objects.shader_test diff --git a/tests/spec/glsl-1.50/linker/interstage-multiple-shader-objects.shader_test b/tests/spec/glsl-1.50/linker/interstage-multiple-shader-objects.shader_test new file mode 100644 index 000..66a46d5 --- /dev/null +++ b/tests/spec/glsl-1.50/linker/interstage-multiple-shader-objects.shader_test @@ -0,0 +1,38 @@ +# Exercises a Mesa GLSL linker bug. +# +# Note that the output block is not used and it is not declared in the main +# shader object. + +[require] +GLSL >= 1.50 + +[vertex shader] +out blk { + vec4 foo; +} inst; + +void set_output(vec4 v) +{ + gl_Position = v; +} + +[vertex shader] +void set_output(vec4 v); + +void main() +{ + set_output(vec4(1.0)); +} + +[fragment shader] +in blk { + vec4 foo; +} inst; + +void main() +{ + gl_FragColor = vec4(1.0); +} + +[test] +link success -- 2.10.2 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH] arb_texture_view: add simple test for rendering to R32UI texture view
Pushed, thanks! Marek On Tue, May 30, 2017 at 3:28 PM, Józef Kucia wrote: > This test exposes a Radeonsi driver bug. > > The test works on Nvidia binary driver and Mesa Intel (Broadwell). > It fails on Radeonsi with Cape Verde GPU. > --- > tests/all.py | 1 + > tests/spec/arb_texture_view/CMakeLists.gl.txt | 1 + > tests/spec/arb_texture_view/rendering-r32ui.c | 101 > ++ > 3 files changed, 103 insertions(+) > create mode 100644 tests/spec/arb_texture_view/rendering-r32ui.c > > diff --git a/tests/all.py b/tests/all.py > index 38aabc1..f0a7c05 100644 > --- a/tests/all.py > +++ b/tests/all.py > @@ -2613,6 +2613,7 @@ with profile.test_list.group_manager( > g(['arb_texture_view-rendering-levels'], 'rendering-levels') > g(['arb_texture_view-rendering-layers'], 'rendering-layers') > g(['arb_texture_view-rendering-formats'], 'rendering-formats') > +g(['arb_texture_view-rendering-r32ui'], 'rendering-r32ui') > g(['arb_texture_view-lifetime-format'], 'lifetime-format') > g(['arb_texture_view-getteximage-srgb'], 'getteximage-srgb') > g(['arb_texture_view-texsubimage-levels'], 'texsubimage-levels') > diff --git a/tests/spec/arb_texture_view/CMakeLists.gl.txt > b/tests/spec/arb_texture_view/CMakeLists.gl.txt > index 47b3320..39330da 100644 > --- a/tests/spec/arb_texture_view/CMakeLists.gl.txt > +++ b/tests/spec/arb_texture_view/CMakeLists.gl.txt > @@ -23,6 +23,7 @@ piglit_add_executable(arb_texture_view-queries queries.c) > piglit_add_executable(arb_texture_view-rendering-formats rendering-formats.c) > piglit_add_executable(arb_texture_view-rendering-layers rendering_layers.c > common.c) > piglit_add_executable(arb_texture_view-rendering-levels rendering_levels.c > common.c) > +piglit_add_executable(arb_texture_view-rendering-r32ui rendering-r32ui.c) > piglit_add_executable(arb_texture_view-rendering-target rendering_target.c > common.c) > piglit_add_executable(arb_texture_view-sampling-2d-array-as-2d-layer > sampling-2d-array-as-2d-layer.c) > piglit_add_executable(arb_texture_view-sampling-2d-array-as-cubemap-array > sampling-2d-array-as-cubemap-array.c) > diff --git a/tests/spec/arb_texture_view/rendering-r32ui.c > b/tests/spec/arb_texture_view/rendering-r32ui.c > new file mode 100644 > index 000..4a4037b > --- /dev/null > +++ b/tests/spec/arb_texture_view/rendering-r32ui.c > @@ -0,0 +1,101 @@ > +/* > + * Copyright (c) 2017 Józef Kucia > + * > + * 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 rendering-r32ui.c > + * Exercises a Radeonsi bug. > + */ > + > +#include "piglit-util-gl.h" > + > +PIGLIT_GL_TEST_CONFIG_BEGIN > + > +config.supports_gl_compat_version = 30; > +config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE; > + > +PIGLIT_GL_TEST_CONFIG_END > + > +static const char *vs = > + "#version 130\n" > + "void main() { \n" > + " gl_Position = gl_Vertex;\n" > + "}\n"; > + > +static const char *ps = > + "#version 130\n" > + "out uvec4 color;\n" > + "void main() {\n" > + " color = uvec4(0xff, 0, 0, 0);\n" > + "}\n"; > + > +#define TEX_SIZE 64 > + > +enum piglit_result > +piglit_display(void) > +{ > + return PIGLIT_FAIL; > +} > + > +void > +piglit_init(int argc, char **argv) > +{ > + GLuint tex, view, framebuffer, prog; > + GLuint data[TEX_SIZE * TEX_SIZE]; > + bool pass = true; > + > + piglit_require_gl_version(30); > + piglit_require_extension("GL_ARB_texture_view"); > + > + glGenTextures(1, &tex); > + glBindTexture(GL_TEXTURE_2D, tex); > + glTexStorage2D(GL_TEXTURE_2D, 1, GL_R32F, TEX_SIZE, TEX_SIZE); > + > + glGenTextures(1, &view); > + glTextureView(view, GL_TEXTURE_2D, tex, GL_R32UI, 0, 1, 0, 1); > + > + glGenFramebuffers(1
[Piglit] [PATCH] arb_texture_view: add simple test for rendering to R32UI texture view
This test exposes a Radeonsi driver bug. The test works on Nvidia binary driver and Mesa Intel (Broadwell). It fails on Radeonsi with Cape Verde GPU. --- tests/all.py | 1 + tests/spec/arb_texture_view/CMakeLists.gl.txt | 1 + tests/spec/arb_texture_view/rendering-r32ui.c | 101 ++ 3 files changed, 103 insertions(+) create mode 100644 tests/spec/arb_texture_view/rendering-r32ui.c diff --git a/tests/all.py b/tests/all.py index 38aabc1..f0a7c05 100644 --- a/tests/all.py +++ b/tests/all.py @@ -2613,6 +2613,7 @@ with profile.test_list.group_manager( g(['arb_texture_view-rendering-levels'], 'rendering-levels') g(['arb_texture_view-rendering-layers'], 'rendering-layers') g(['arb_texture_view-rendering-formats'], 'rendering-formats') +g(['arb_texture_view-rendering-r32ui'], 'rendering-r32ui') g(['arb_texture_view-lifetime-format'], 'lifetime-format') g(['arb_texture_view-getteximage-srgb'], 'getteximage-srgb') g(['arb_texture_view-texsubimage-levels'], 'texsubimage-levels') diff --git a/tests/spec/arb_texture_view/CMakeLists.gl.txt b/tests/spec/arb_texture_view/CMakeLists.gl.txt index 47b3320..39330da 100644 --- a/tests/spec/arb_texture_view/CMakeLists.gl.txt +++ b/tests/spec/arb_texture_view/CMakeLists.gl.txt @@ -23,6 +23,7 @@ piglit_add_executable(arb_texture_view-queries queries.c) piglit_add_executable(arb_texture_view-rendering-formats rendering-formats.c) piglit_add_executable(arb_texture_view-rendering-layers rendering_layers.c common.c) piglit_add_executable(arb_texture_view-rendering-levels rendering_levels.c common.c) +piglit_add_executable(arb_texture_view-rendering-r32ui rendering-r32ui.c) piglit_add_executable(arb_texture_view-rendering-target rendering_target.c common.c) piglit_add_executable(arb_texture_view-sampling-2d-array-as-2d-layer sampling-2d-array-as-2d-layer.c) piglit_add_executable(arb_texture_view-sampling-2d-array-as-cubemap-array sampling-2d-array-as-cubemap-array.c) diff --git a/tests/spec/arb_texture_view/rendering-r32ui.c b/tests/spec/arb_texture_view/rendering-r32ui.c new file mode 100644 index 000..4a4037b --- /dev/null +++ b/tests/spec/arb_texture_view/rendering-r32ui.c @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2017 Józef Kucia + * + * 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 rendering-r32ui.c + * Exercises a Radeonsi bug. + */ + +#include "piglit-util-gl.h" + +PIGLIT_GL_TEST_CONFIG_BEGIN + +config.supports_gl_compat_version = 30; +config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE; + +PIGLIT_GL_TEST_CONFIG_END + +static const char *vs = + "#version 130\n" + "void main() { \n" + " gl_Position = gl_Vertex;\n" + "}\n"; + +static const char *ps = + "#version 130\n" + "out uvec4 color;\n" + "void main() {\n" + " color = uvec4(0xff, 0, 0, 0);\n" + "}\n"; + +#define TEX_SIZE 64 + +enum piglit_result +piglit_display(void) +{ + return PIGLIT_FAIL; +} + +void +piglit_init(int argc, char **argv) +{ + GLuint tex, view, framebuffer, prog; + GLuint data[TEX_SIZE * TEX_SIZE]; + bool pass = true; + + piglit_require_gl_version(30); + piglit_require_extension("GL_ARB_texture_view"); + + glGenTextures(1, &tex); + glBindTexture(GL_TEXTURE_2D, tex); + glTexStorage2D(GL_TEXTURE_2D, 1, GL_R32F, TEX_SIZE, TEX_SIZE); + + glGenTextures(1, &view); + glTextureView(view, GL_TEXTURE_2D, tex, GL_R32UI, 0, 1, 0, 1); + + glGenFramebuffers(1, &framebuffer); + glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, + GL_TEXTURE_2D, view, 0); + + prog = piglit_build_simple_program(vs, ps); + glUseProgram(prog); + + piglit_draw_rect(-1, -1, 2, 2); + +
Re: [Piglit] [PATCH] arb_get_program_binary: check correctly got_error
Reviewed-by: Lionel Landwerlin On 29/05/17 16:18, Juan A. Suarez Romero wrote: Seems it was checking if *not* error got, instead of the other way around. Suggested-by: Fabio Lagalla Signed-off-by: Juan A. Suarez Romero --- tests/spec/arb_get_program_binary/retrievable_hint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/spec/arb_get_program_binary/retrievable_hint.c b/tests/spec/arb_get_program_binary/retrievable_hint.c index 8283c5b..9263a89 100644 --- a/tests/spec/arb_get_program_binary/retrievable_hint.c +++ b/tests/spec/arb_get_program_binary/retrievable_hint.c @@ -79,7 +79,7 @@ piglit_init(int argc, char **argv) */ value = 0xDEADBEEF; glGetProgramiv(prog, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, &value); - got_error = piglit_check_gl_error(0); + got_error = !piglit_check_gl_error(0); if (!got_error) { if (value == 0xDEADBEEF) { ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH] arb_shader_image_load_store: set KHR_no_error compatibility
Looks good to me: Reviewed-by: Timothy Arceri On 26/05/17 06:21, Samuel Pitoiset wrote: Signed-off-by: Samuel Pitoiset --- tests/spec/arb_shader_image_load_store/atomicity.c | 1 + tests/spec/arb_shader_image_load_store/bitcast.c| 1 + tests/spec/arb_shader_image_load_store/coherency.c | 1 + tests/spec/arb_shader_image_load_store/dead-fragments.c | 1 + tests/spec/arb_shader_image_load_store/early-z.c| 1 + tests/spec/arb_shader_image_load_store/host-mem-barrier.c | 1 + tests/spec/arb_shader_image_load_store/indexing.c | 1 + tests/spec/arb_shader_image_load_store/invalid.c| 1 + tests/spec/arb_shader_image_load_store/layer.c | 1 + tests/spec/arb_shader_image_load_store/level.c | 1 + tests/spec/arb_shader_image_load_store/max-images.c | 1 + tests/spec/arb_shader_image_load_store/max-size.c | 1 + tests/spec/arb_shader_image_load_store/minmax.c | 1 + tests/spec/arb_shader_image_load_store/qualifiers.c | 1 + tests/spec/arb_shader_image_load_store/restrict.c | 1 + tests/spec/arb_shader_image_load_store/semantics.c | 1 + tests/spec/arb_shader_image_load_store/shader-mem-barrier.c | 1 + tests/spec/arb_shader_image_load_store/state.c | 1 + tests/spec/arb_shader_image_load_store/unused.c | 1 + 19 files changed, 19 insertions(+) diff --git a/tests/spec/arb_shader_image_load_store/atomicity.c b/tests/spec/arb_shader_image_load_store/atomicity.c index fe6bdb3e1..f53dddaa2 100644 --- a/tests/spec/arb_shader_image_load_store/atomicity.c +++ b/tests/spec/arb_shader_image_load_store/atomicity.c @@ -65,6 +65,7 @@ config.supports_gl_core_version = 32; config.window_width = W; config.window_height = H; config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +config.khr_no_error_support = PIGLIT_NO_ERRORS; PIGLIT_GL_TEST_CONFIG_END diff --git a/tests/spec/arb_shader_image_load_store/bitcast.c b/tests/spec/arb_shader_image_load_store/bitcast.c index 9180e79c0..5f3e2c124 100644 --- a/tests/spec/arb_shader_image_load_store/bitcast.c +++ b/tests/spec/arb_shader_image_load_store/bitcast.c @@ -46,6 +46,7 @@ config.supports_gl_core_version = 32; config.window_width = W; config.window_height = H; config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +config.khr_no_error_support = PIGLIT_NO_ERRORS; PIGLIT_GL_TEST_CONFIG_END diff --git a/tests/spec/arb_shader_image_load_store/coherency.c b/tests/spec/arb_shader_image_load_store/coherency.c index d1ecbe8b4..a3ef5fe1a 100644 --- a/tests/spec/arb_shader_image_load_store/coherency.c +++ b/tests/spec/arb_shader_image_load_store/coherency.c @@ -72,6 +72,7 @@ config.supports_gl_core_version = 32; config.window_width = L; config.window_height = L; config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +config.khr_no_error_support = PIGLIT_NO_ERRORS; PIGLIT_GL_TEST_CONFIG_END diff --git a/tests/spec/arb_shader_image_load_store/dead-fragments.c b/tests/spec/arb_shader_image_load_store/dead-fragments.c index 70c8f3f7a..c06aaa002 100644 --- a/tests/spec/arb_shader_image_load_store/dead-fragments.c +++ b/tests/spec/arb_shader_image_load_store/dead-fragments.c @@ -53,6 +53,7 @@ config.supports_gl_core_version = 32; config.window_width = W; config.window_height = H; config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +config.khr_no_error_support = PIGLIT_NO_ERRORS; PIGLIT_GL_TEST_CONFIG_END diff --git a/tests/spec/arb_shader_image_load_store/early-z.c b/tests/spec/arb_shader_image_load_store/early-z.c index 913a220df..c55d81a87 100644 --- a/tests/spec/arb_shader_image_load_store/early-z.c +++ b/tests/spec/arb_shader_image_load_store/early-z.c @@ -63,6 +63,7 @@ config.supports_gl_core_version = 32; config.window_width = W; config.window_height = H; config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +config.khr_no_error_support = PIGLIT_NO_ERRORS; PIGLIT_GL_TEST_CONFIG_END diff --git a/tests/spec/arb_shader_image_load_store/host-mem-barrier.c b/tests/spec/arb_shader_image_load_store/host-mem-barrier.c index 12b966a13..cceaf28ca 100644 --- a/tests/spec/arb_shader_image_load_store/host-mem-barrier.c +++ b/tests/spec/arb_shader_image_load_store/host-mem-barrier.c @@ -60,6 +60,7 @@ config.supports_gl_core_version = 32; config.window_width = L; config.window_height = L; config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +config.khr_no_error_support = PIGLIT_NO_ERRORS; PIGLIT_GL_TEST_CONFIG_END diff --git a/tests/spec/arb_shader_image_load_store/indexing.c b/tests/spec/arb_shader_image_load_store/indexing.c index bf4a56976..acef2db17 100644 --- a/tests/spec/arb_shader_image_load_store/indexing.c +++ b/tests/spec/arb_shader_image_load_store/indexing.c @@ -54,6 +54,7 @@ config.supports_gl_core_