<div dir="ltr">Okay, it's rebased on master:  <a href="http://cgit.freedesktop.org/~ldeks/piglit/log/tests?h=adsa-framebuffers">http://cgit.freedesktop.org/~ldeks/piglit/log/tests?h=adsa-framebuffers</a><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 6, 2015 at 10:48 AM, Dylan Baker <span dir="ltr"><<a href="mailto:baker.dylan.c@gmail.com" target="_blank">baker.dylan.c@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You're gonna have to rebase this series  on master, the all.py format<br>
has changed. If you want help with that let me know.<br>
<div><div class="h5"><br>
On Thu, Mar 05, 2015 at 06:01:13PM -0800, Laura Ekstrand wrote:<br>
> ---<br>
>  tests/all.py                                       |   1 +<br>
>  .../spec/arb_direct_state_access/CMakeLists.gl.txt |   1 +<br>
>  .../namedframebufferrenderbuffer.c                 | 159 +++++++++++++++++++++<br>
>  3 files changed, 161 insertions(+)<br>
>  create mode 100644 tests/spec/arb_direct_state_access/namedframebufferrenderbuffer.c<br>
><br>
> diff --git a/tests/all.py b/tests/all.py<br>
> index cd85fc5..8e45442 100644<br>
> --- a/tests/all.py<br>
> +++ b/tests/all.py<br>
> @@ -4028,6 +4028,7 @@ spec['ARB_direct_state_access']['unmapnamedbuffer-vbo'] = PiglitGLTest(['arb_dir<br>
>  spec['ARB_direct_state_access']['flushmappednamedbufferrange'] = PiglitGLTest(['arb_direct_state_access-flushmappednamedbufferrange'], run_concurrent=True)<br>
>  spec['ARB_direct_state_access']['getnamedbufferparameter'] = PiglitGLTest(['arb_direct_state_access-getnamedbufferparameter'], run_concurrent=True)<br>
>  spec['ARB_direct_state_access']['getnamedbuffersubdata'] = PiglitGLTest(['arb_direct_state_access-getnamedbuffersubdata'], run_concurrent=True)<br>
> +spec['ARB_direct_state_access']['namedframebufferrenderbuffer'] = PiglitGLTest(['arb_direct_state_access-namedframebufferrenderbuffer'], run_concurrent=True)<br>
><br>
>  arb_shader_image_load_store = spec['ARB_shader_image_load_store']<br>
>  arb_shader_image_load_store['atomicity'] = PiglitGLTest(['arb_shader_image_load_store-atomicity'], run_concurrent=True)<br>
> diff --git a/tests/spec/arb_direct_state_access/CMakeLists.gl.txt b/tests/spec/arb_direct_state_access/CMakeLists.gl.txt<br>
> index a9b82eb..488ca18 100644<br>
> --- a/tests/spec/arb_direct_state_access/CMakeLists.gl.txt<br>
> +++ b/tests/spec/arb_direct_state_access/CMakeLists.gl.txt<br>
> @@ -25,6 +25,7 @@ piglit_add_executable (arb_direct_state_access-unmapnamedbuffer-vbo unmapnamedbu<br>
>  piglit_add_executable (arb_direct_state_access-flushmappednamedbufferrange flushmappednamedbufferrange.c)<br>
>  piglit_add_executable (arb_direct_state_access-getnamedbufferparameter getnamedbufferparameter.c)<br>
>  piglit_add_executable (arb_direct_state_access-getnamedbuffersubdata getnamedbuffersubdata.c)<br>
> +piglit_add_executable (arb_direct_state_access-namedframebufferrenderbuffer namedframebufferrenderbuffer.c)<br>
>  piglit_add_executable (arb_direct_state_access-dsa-textures dsa-textures.c dsa-utils.c)<br>
>  piglit_add_executable (arb_direct_state_access-texturesubimage texturesubimage.c)<br>
>  piglit_add_executable (arb_direct_state_access-bind-texture-unit bind-texture-unit.c)<br>
> diff --git a/tests/spec/arb_direct_state_access/namedframebufferrenderbuffer.c b/tests/spec/arb_direct_state_access/namedframebufferrenderbuffer.c<br>
> new file mode 100644<br>
> index 0000000..df82400<br>
> --- /dev/null<br>
> +++ b/tests/spec/arb_direct_state_access/namedframebufferrenderbuffer.c<br>
> @@ -0,0 +1,159 @@<br>
> +/*<br>
> + * Copyright (c) 2012 VMware, Inc.<br>
> + * Copyright 2015 Intel Corporation<br>
> + *<br>
> + * Permission is hereby granted, free of charge, to any person obtaining a<br>
> + * copy of this software and associated documentation files (the "Software"),<br>
> + * to deal in the Software without restriction, including without limitation<br>
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,<br>
> + * and/or sell copies of the Software, and to permit persons to whom the<br>
> + * Software is furnished to do so, subject to the following conditions:<br>
> + *<br>
> + * The above copyright notice and this permission notice (including the next<br>
> + * paragraph) shall be included in all copies or substantial portions of the<br>
> + * Software.<br>
> + *<br>
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br>
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br>
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL<br>
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br>
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING<br>
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS<br>
> + * IN THE SOFTWARE.<br>
> + */<br>
> +<br>
> +/**<br>
> + * Test glViewport w/ FBOs.<br>
> + * In Mesa, on-screen windows and user-created FBOs are stored differently<br>
> + * (inverted).  Make sure viewports are handled properly.<br>
> + * Draw a test pattern (with many viewports) into the window, then draw the<br>
> + * same thing into an FBO.  Compare the images.  They should be the same.<br>
> + */<br>
> +<br>
> +#include "piglit-util-gl.h"<br>
> +<br>
> +PIGLIT_GL_TEST_CONFIG_BEGIN<br>
> +<br>
> +     config.supports_gl_compat_version = 10;<br>
> +<br>
> +     config.window_width = 500;<br>
> +     config.window_height = 500;<br>
> +     config.window_visual = PIGLIT_GL_VISUAL_RGB | PIGLIT_GL_VISUAL_DOUBLE;<br>
> +<br>
> +PIGLIT_GL_TEST_CONFIG_END<br>
> +<br>
> +/**<br>
> + * Draw an rgbw texture in a bunch of viewports which tile the window.<br>
> + * Note that viewports extend beyond the edges of the window too.<br>
> + */<br>
> +static void<br>
> +draw_test_image(void)<br>
> +{<br>
> +     int vx, vy, vw = 200, vh = 200;<br>
> +     GLuint texture;<br>
> +<br>
> +     texture = piglit_rgbw_texture(GL_RGBA8, 32, 32, GL_FALSE, GL_FALSE,<br>
> +                                   GL_UNSIGNED_BYTE);<br>
> +     glBindTextureUnit(0, texture);<br>
> +<br>
> +     glClear(GL_COLOR_BUFFER_BIT);<br>
> +<br>
> +     glMatrixMode(GL_PROJECTION);<br>
> +     glLoadIdentity();<br>
> +     glFrustum(-1, 1, -1, 1, 3, 9.5);<br>
> +<br>
> +     /* Draw some quads at an odd rotation.<br>
> +      * Note that we want near/far frustum clipping.<br>
> +      */<br>
> +     glMatrixMode(GL_MODELVIEW);<br>
> +     glPushMatrix();<br>
> +     glTranslatef(0, 1, -6.20);<br>
> +     glRotatef(-60, 1, 0, 0);<br>
> +     glRotatef(30, 0, 0, 1);<br>
> +     glScalef(3.5, 3.5, 3.5);<br>
> +<br>
> +     /* loop over viewports */<br>
> +     for (vy = -50; vy < piglit_height; vy += vh+10) {<br>
> +             for (vx = -30; vx < piglit_width; vx += vw+10) {<br>
> +                     glViewport(vx, vy, vw, vh);<br>
> +                     piglit_draw_rect_tex(-1, -1, 1, 1, 0, 0, 1, 1);<br>
> +             }<br>
> +     }<br>
> +<br>
> +     glPopMatrix();<br>
> +<br>
> +     glDeleteTextures(1, &texture);<br>
> +}<br>
> +<br>
> +<br>
> +enum piglit_result<br>
> +piglit_display(void)<br>
> +{<br>
> +     GLubyte *win_image, *fbo_image;<br>
> +     GLuint fbo, rb;<br>
> +     bool pass = true;<br>
> +<br>
> +     win_image = (GLubyte *) malloc(piglit_width * piglit_height * 3);<br>
> +     fbo_image = (GLubyte *) malloc(piglit_width * piglit_height * 3);<br>
> +<br>
> +     glPixelStorei(GL_PACK_ALIGNMENT, 1);<br>
> +     glPixelStorei(GL_UNPACK_ALIGNMENT, 1);<br>
> +<br>
> +     glCreateFramebuffers(1, &fbo);<br>
> +     glGenRenderbuffers(1, &rb);<br>
> +     glBindRenderbuffer(GL_RENDERBUFFER, rb);<br>
> +     glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA,<br>
> +                           piglit_width, piglit_height);<br>
> +     glNamedFramebufferRenderbuffer(fbo, GL_COLOR_ATTACHMENT0,<br>
> +                                    GL_RENDERBUFFER, rb);<br>
> +<br>
> +     if (!piglit_check_gl_error(GL_NO_ERROR))<br>
> +             piglit_report_result(PIGLIT_FAIL);<br>
> +<br>
> +     glBindFramebuffer(GL_FRAMEBUFFER, fbo);<br>
> +     assert(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) ==<br>
> +                      GL_FRAMEBUFFER_COMPLETE_EXT);<br>
> +<br>
> +     /* draw reference image in the window */<br>
> +     glBindFramebuffer(GL_FRAMEBUFFER, piglit_winsys_fbo);<br>
> +     draw_test_image();<br>
> +     glReadPixels(0, 0, piglit_width, piglit_height,<br>
> +                  GL_RGB, GL_UNSIGNED_BYTE, win_image);<br>
> +<br>
> +     /* draw test image in fbo */<br>
> +     glBindFramebuffer(GL_FRAMEBUFFER, fbo);<br>
> +     glReadBuffer(GL_COLOR_ATTACHMENT0);<br>
> +     draw_test_image();<br>
> +     glReadPixels(0, 0, piglit_width, piglit_height,<br>
> +                  GL_RGB, GL_UNSIGNED_BYTE, fbo_image);<br>
> +<br>
> +     /* compare images */<br>
> +     if (memcmp(win_image, fbo_image, piglit_width * piglit_height * 3)) {<br>
> +             printf("Image comparison failed!\n");<br>
> +             pass = false;<br>
> +     }<br>
> +     else if (!piglit_automatic) {<br>
> +             printf("Image comparison passed.\n");<br>
> +     }<br>
> +<br>
> +     glBindFramebuffer(GL_FRAMEBUFFER, piglit_winsys_fbo);<br>
> +<br>
> +     piglit_present_results();<br>
> +<br>
> +     glDeleteRenderbuffers(1, &rb);<br>
> +     glDeleteFramebuffers(1, &fbo);<br>
> +     free(win_image);<br>
> +     free(fbo_image);<br>
> +<br>
> +     return pass ? PIGLIT_PASS : PIGLIT_FAIL;<br>
> +}<br>
> +<br>
> +<br>
> +void<br>
> +piglit_init(int argc, char **argv)<br>
> +{<br>
> +     piglit_require_extension("GL_ARB_direct_state_access");<br>
> +     piglit_require_extension("GL_ARB_framebuffer_object");<br>
> +     glClearColor(0.2, 0.2, 0.2, 0.0);<br>
> +     glEnable(GL_TEXTURE_2D);<br>
> +}<br>
> --<br>
> 2.1.0<br>
><br>
</div></div>> _______________________________________________<br>
> Piglit mailing list<br>
> <a href="mailto:Piglit@lists.freedesktop.org">Piglit@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/piglit" target="_blank">http://lists.freedesktop.org/mailman/listinfo/piglit</a><br>
</blockquote></div><br></div>