[Piglit] [PATCH v4] khr_texture_compression_astc: Rewrite miptree test

Ilia Mirkin imirkin at alum.mit.edu
Thu Dec 3 11:24:43 PST 2015


Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

Note I haven't actually run it on a420 to see if it works there... but
from inspection these changes all seem fine.

  -ilia

On Thu, Dec 3, 2015 at 2:23 PM, Nanley Chery <nanleychery at gmail.com> wrote:
> From: Nanley Chery <nanley.g.chery at intel.com>
>
> Modify the miptree test to only run one subset of ASTC formats
> at a time.
>
> v2. Modify miptree test to only check the given subtest.
>     Use the -subtest option to run a specific subtest.
> v3. Indent function arguments and misc cleanups (Ilia).
>     Initialize texture objects to 0 (Ilia).
> v4. Don't enumerate subtests in all.py (Ilia).
>
> Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
> ---
>  .../khr_compressed_astc-miptree.c                  | 84 +++++++++-------------
>  1 file changed, 34 insertions(+), 50 deletions(-)
>
> diff --git a/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c b/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c
> index 20f2415..6429c2e 100644
> --- a/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c
> +++ b/tests/spec/khr_texture_compression_astc/khr_compressed_astc-miptree.c
> @@ -222,10 +222,9 @@ bool draw_compare_levels(bool check_error, bool check_srgb,
>  enum piglit_result
>  test_miptrees(void* input_type)
>  {
> -       int subtest =  0;
> -       enum test_type * type = (enum test_type*) input_type;
> -       bool is_srgb_test = *type == TEST_TYPE_SRGB;
> -       bool is_hdr_test  = *type == TEST_TYPE_HDR;
> +       const enum test_type subtest = *(enum test_type*) input_type;
> +       const bool is_srgb_test = subtest == TEST_TYPE_SRGB;
> +       const bool is_hdr_test  = subtest == TEST_TYPE_HDR;
>
>         static const char * tests[3] = {"hdr", "ldrl", "ldrs"};
>         static const char * block_dim_str[14] = {
> @@ -245,62 +244,47 @@ test_miptrees(void* input_type)
>                 "12x12"
>         };
>
> -       bool has_hdr = piglit_is_extension_supported(
> -                       "GL_KHR_texture_compression_astc_hdr");
> -
> -       /* If testing sRGB mode, fast-forward to the srgb test. */
> -       if (is_srgb_test) {
> -               subtest =  TEST_TYPE_SRGB;
> -       } else {
> -               /* Skip if on an HDR system not running the HDR test
> -                * or if on an LDR system running the HDR test.
> -                */
> -               if (has_hdr != is_hdr_test)
> -                       return PIGLIT_SKIP;
> +       if (!is_srgb_test)
>                 piglit_require_extension("GL_EXT_texture_sRGB_decode");
>
> -       }
> -
>         GLint pixel_offset_loc = glGetUniformLocation(prog, "pixel_offset");
>         GLint level_pixel_size_loc = glGetUniformLocation(prog,
>                                                         "level_pixel_size");
>
> -       /* Test each submode */
> -       for (; subtest < ARRAY_SIZE(tests); ++subtest) {
> -
> -               /*  Check for error color if an LDR-only sys reading an HDR
> -                *  texture. No need to draw a reference mipmap in this case.
> -                */
> -               int check_error = !has_hdr && subtest == TEST_TYPE_HDR;
> -               int block_dims = 0;
> -               for (; block_dims < ARRAY_SIZE(block_dim_str); ++block_dims) {
> -
> -                       /* Texture objects. */
> -                       GLuint tex_compressed;
> -                       GLuint tex_decompressed;
> -
> -                       /* Load texture for current submode and block size */
> -                       load_texture("compressed", tests[subtest],
> +       /*  Check for error color if an LDR-only sys reading an HDR
> +        *  texture. No need to draw a reference mipmap in this case.
> +        */
> +       const bool has_hdr = piglit_is_extension_supported(
> +               "GL_KHR_texture_compression_astc_hdr");
> +       const bool check_error = is_hdr_test && !has_hdr;
> +       int block_dims;
> +       for (block_dims = 0; block_dims < ARRAY_SIZE(block_dim_str); ++block_dims) {
> +
> +               /* Texture objects. */
> +               GLuint tex_compressed = 0;
> +               GLuint tex_decompressed = 0;
> +
> +               /* Load texture for current submode and block size */
> +               load_texture("compressed", tests[subtest],
> +                               block_dim_str[block_dims],
> +                               &tex_compressed);
> +               if (!check_error) {
> +                       load_texture("decompressed", tests[subtest],
>                                         block_dim_str[block_dims],
> -                                       &tex_compressed);
> -                       if (!check_error) {
> -                               load_texture("decompressed", tests[subtest],
> -                                               block_dim_str[block_dims],
> -                                               &tex_decompressed);
> -                       }
> +                                       &tex_decompressed);
> +               }
>
> -                       /* Draw and compare each level of the two textures */
> -                       glClear(GL_COLOR_BUFFER_BIT);
> -                       if (!draw_compare_levels(check_error, is_srgb_test,
> -                                               level_pixel_size_loc,
> -                                               pixel_offset_loc,
> -                                               tex_compressed,
> -                                               tex_decompressed)) {
> -                               piglit_loge("Mode %s Block %s.",
> +               /* Draw and compare each level of the two textures */
> +               glClear(GL_COLOR_BUFFER_BIT);
> +               if (!draw_compare_levels(check_error, is_srgb_test,
> +                                       level_pixel_size_loc,
> +                                       pixel_offset_loc,
> +                                       tex_compressed,
> +                                       tex_decompressed)) {
> +                       piglit_loge("Mode %s Block %s.",
>                                         tests[subtest],
>                                         block_dim_str[block_dims]);
> -                               return PIGLIT_FAIL;
> -                       }
> +                       return PIGLIT_FAIL;
>                 }
>         }
>         return PIGLIT_PASS;
> --
> 2.6.2
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list