Pushed, thanks! Marek
On Tue, May 30, 2017 at 3:28 PM, Józef Kucia <[email protected]> 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 0000000..4a4037b > --- /dev/null > +++ b/tests/spec/arb_texture_view/rendering-r32ui.c > @@ -0,0 +1,101 @@ > +/* > + * Copyright (c) 2017 Józef Kucia <[email protected]> > + * > + * 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); > + > + glBindTexture(GL_TEXTURE_2D, view); > + glGetTexImage(GL_TEXTURE_2D, 0, GL_RED_INTEGER, GL_UNSIGNED_INT, > + data); > + if (data[0] != 0xff) { > + printf("Got value %#x\n", data[0]); > + pass = false; > + } > + > + glDeleteTextures(1, &view); > + glDeleteTextures(1, &tex); > + glDeleteFramebuffers(1, &framebuffer); > + glDeleteProgram(prog); > + > + pass = piglit_check_gl_error(GL_NO_ERROR) && pass; > + piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL); > +} > -- > 2.10.2 > > _______________________________________________ > Piglit mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
