[Piglit] [PATCH 3/8] texsubimage-depth-formats: add PBO option

Anuj Phogat anuj.phogat at gmail.com
Tue Jan 19 15:27:50 PST 2016


On Mon, Jan 18, 2016 at 1:40 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
> ---
>  tests/all.py                                |  1 +
>  tests/texturing/texsubimage-depth-formats.c | 37 +++++++++++++++++++++++++----
>  2 files changed, 34 insertions(+), 4 deletions(-)
>
> diff --git a/tests/all.py b/tests/all.py
> index 1db8062..56b57fe 100644
> --- a/tests/all.py
> +++ b/tests/all.py
> @@ -2289,6 +2289,7 @@ with profile.group_manager(
>      g(['texsubimage', 'pbo'])
>      g(['texsubimage', 'array', 'pbo'])
>      g(['texsubimage', 'cube_map_array', 'pbo'])
> +    g(['texsubimage-depth-formats', 'pbo'])
>      g(['texsubimage-unpack', 'pbo'])
>
>  # Group ARB_provoking_vertex
> diff --git a/tests/texturing/texsubimage-depth-formats.c b/tests/texturing/texsubimage-depth-formats.c
> index b6d9416..35263cb 100644
> --- a/tests/texturing/texsubimage-depth-formats.c
> +++ b/tests/texturing/texsubimage-depth-formats.c
> @@ -35,6 +35,8 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
>
>  PIGLIT_GL_TEST_CONFIG_END
>
> +static bool use_pbo = false;
> +
>  static GLuint tex[4];
>  struct size {
>         int width, height;
> @@ -69,6 +71,7 @@ load_texture(int formats_idx, int tex_size_idx)
>         unsigned n_pixels = w_by_2 * h_by_2;
>         unsigned buffer_size = n_pixels * formats[formats_idx].size;
>         void* texDepthData[4];
> +       GLuint buffer;
>
>         for (i = 0; i < 4; i++)
>                 texDepthData[i] = malloc(buffer_size);
> @@ -127,18 +130,37 @@ load_texture(int formats_idx, int tex_size_idx)
>         else
>                 glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
>
> +       if (use_pbo) {
> +               glGenBuffers(1, &buffer);
> +               glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffer);
> +       }
> +
> +       if (use_pbo)
> +               glBufferData(GL_PIXEL_UNPACK_BUFFER, buffer_size, texDepthData[0], GL_STATIC_DRAW);
>         glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w_by_2, h_by_2,
>                         formats[formats_idx].format, formats[formats_idx].type,
> -                       texDepthData[0]);
> +                       use_pbo ? NULL : texDepthData[0]);
> +
> +       if (use_pbo)
> +               glBufferData(GL_PIXEL_UNPACK_BUFFER, buffer_size, texDepthData[1], GL_STATIC_DRAW);
>         glTexSubImage2D(GL_TEXTURE_2D, 0, w_by_2, 0, w_by_2, h_by_2,
>                         formats[formats_idx].format, formats[formats_idx].type,
> -                       texDepthData[1]);
> +                       use_pbo ? NULL : texDepthData[1]);
> +
> +       if (use_pbo)
> +               glBufferData(GL_PIXEL_UNPACK_BUFFER, buffer_size, texDepthData[2], GL_STATIC_DRAW);
>         glTexSubImage2D(GL_TEXTURE_2D, 0, 0, h_by_2, w_by_2, h_by_2,
>                         formats[formats_idx].format, formats[formats_idx].type,
> -                       texDepthData[2]);
> +                       use_pbo ? NULL : texDepthData[2]);
> +
> +       if (use_pbo)
> +               glBufferData(GL_PIXEL_UNPACK_BUFFER, buffer_size, texDepthData[3], GL_STATIC_DRAW);
>         glTexSubImage2D(GL_TEXTURE_2D, 0, w_by_2, h_by_2, w_by_2, h_by_2,
>                         formats[formats_idx].format, formats[formats_idx].type,
> -                       texDepthData[3]);
> +                       use_pbo ? NULL : texDepthData[3]);
> +
> +       if (use_pbo)
> +               glDeleteBuffers(1, &buffer);
>
>         for (i = 0; i < 4; i++)
>                 free(texDepthData[i]);
> @@ -147,6 +169,13 @@ load_texture(int formats_idx, int tex_size_idx)
>  void
>  piglit_init(int argc, char **argv)
>  {
> +       for (int i = 1; i < argc; ++i) {
> +               if (!strcmp(argv[i], "pbo")) {
> +                       piglit_require_extension("GL_ARB_pixel_buffer_object");
> +                       use_pbo = true;
> +               }
> +       }
> +
>         piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
>         glClearColor(0.0, 0.0, 0.0, 1.0);
>  }
> --
> 2.5.0
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit

Patches 3-8 are:
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>


More information about the Piglit mailing list