diff options
Diffstat (limited to 'progs/gallium/python/tests')
| -rwxr-xr-x | progs/gallium/python/tests/base.py | 2 | ||||
| -rwxr-xr-x | progs/gallium/python/tests/texture_blit.py | 105 | 
2 files changed, 52 insertions, 55 deletions
| diff --git a/progs/gallium/python/tests/base.py b/progs/gallium/python/tests/base.py index 6296eb5850..8c55e3ae5d 100755 --- a/progs/gallium/python/tests/base.py +++ b/progs/gallium/python/tests/base.py @@ -43,7 +43,7 @@ from gallium import *  # Enumerate all pixel formats  formats = {}  for name, value in globals().items(): -    if name.startswith("PIPE_FORMAT_") and isinstance(value, int) and name != "PIPE_FORMAT_COUNT": +    if name.startswith("PIPE_FORMAT_") and isinstance(value, int) and name not in ("PIPE_FORMAT_NONE", "PIPE_FORMAT_COUNT"):          formats[value] = name  def make_image(width, height, rgba): diff --git a/progs/gallium/python/tests/texture_blit.py b/progs/gallium/python/tests/texture_blit.py index 63686463fa..a2e62c89ee 100755 --- a/progs/gallium/python/tests/texture_blit.py +++ b/progs/gallium/python/tests/texture_blit.py @@ -28,6 +28,8 @@  ########################################################################## +import random +  from gallium import *  from base import * @@ -550,6 +552,8 @@ class TextureDepthSampleTest(TestCase):  def main(): +    random.seed(0xdead3eef) +      dev = Device()      suite = TestSuite() @@ -574,62 +578,55 @@ def main():      ]      ctx = dev.context_create() + +    n = 10000 -    for format in formats.iterkeys(): -        if format == PIPE_FORMAT_NONE: -            continue +    for i in range(n): +        format = random.choice(formats.keys())          if not util_format_is_depth_or_stencil(format): -            for target in targets: -                for size in sizes: -                    if target == PIPE_TEXTURE_3D: -                        depth = size -                    else: -                        depth = 1 -                    for face in faces: -                        if target != PIPE_TEXTURE_CUBE and face: -                            continue -                        levels = lods(size) -                        for last_level in range(levels): -                            for level in range(0, last_level + 1): -                                zslice = 0 -                                while zslice < depth >> level: -                                    test = TextureColorSampleTest( -                                        dev = dev, -                                        ctx = ctx, -                                        target = target, -                                        format = format,  -                                        width = size, -                                        height = size, -                                        depth = depth, -                                        last_level = last_level, -                                        face = face, -                                        level = level, -                                        zslice = zslice, -                                    ) -                                    suite.add_test(test) -                                    zslice = (zslice + 1)*2 - 1 -        else: -            target = PIPE_TEXTURE_2D -            depth = 1 -            face = 0 -            last_level = 0 -            level = 0 -            zslice = 0 -            for size in sizes: -                test = TextureDepthSampleTest( -                    dev = dev, -                    ctx = ctx, -                    target = target, -                    format = format,  -                    width = size, -                    height = size, -                    depth = depth, -                    last_level = last_level, -                    face = face, -                    level = level, -                    zslice = zslice, -                ) -                suite.add_test(test) +            is_depth_or_stencil = util_format_is_depth_or_stencil(format) + +            if is_depth_or_stencil: +                target = PIPE_TEXTURE_2D +            else: +                target = random.choice(targets) +             +            size = random.choice(sizes) + +            if target == PIPE_TEXTURE_3D: +                depth = size +            else: +                depth = 1 + +            if target == PIPE_TEXTURE_CUBE: +                face =random.choice(faces) +            else: +                face = PIPE_TEX_FACE_POS_X + +            levels = lods(size) +            last_level = random.randint(0, levels - 1) +            level = random.randint(0, last_level) +            zslice = random.randint(0, max(depth >> level, 1) - 1) + +            if is_depth_or_stencil: +                klass = TextureDepthSampleTest +            else: +                klass = TextureColorSampleTest + +            test = klass( +                dev = dev, +                ctx = ctx, +                target = target, +                format = format,  +                width = size, +                height = size, +                depth = depth, +                last_level = last_level, +                face = face, +                level = level, +                zslice = zslice, +            ) +            suite.add_test(test)      suite.run() | 
