python/tests: Test all existing gallium formats.
This commit is contained in:
@@ -43,18 +43,9 @@ from gallium import *
|
|||||||
# Enumerate all pixel formats
|
# Enumerate all pixel formats
|
||||||
formats = {}
|
formats = {}
|
||||||
for name, value in globals().items():
|
for name, value in globals().items():
|
||||||
if name.startswith("PIPE_FORMAT_") and isinstance(value, int):
|
if name.startswith("PIPE_FORMAT_") and isinstance(value, int) and name != "PIPE_FORMAT_COUNT":
|
||||||
formats[value] = name
|
formats[value] = name
|
||||||
|
|
||||||
def is_depth_stencil_format(format):
|
|
||||||
# FIXME: make and use binding to util_format_is_depth_or_stencil
|
|
||||||
return format in (
|
|
||||||
PIPE_FORMAT_Z32_UNORM,
|
|
||||||
PIPE_FORMAT_S8Z24_UNORM,
|
|
||||||
PIPE_FORMAT_X8Z24_UNORM,
|
|
||||||
PIPE_FORMAT_Z16_UNORM,
|
|
||||||
)
|
|
||||||
|
|
||||||
def make_image(width, height, rgba):
|
def make_image(width, height, rgba):
|
||||||
import Image
|
import Image
|
||||||
outimage = Image.new(
|
outimage = Image.new(
|
||||||
|
@@ -559,32 +559,9 @@ def main():
|
|||||||
PIPE_TEXTURE_3D,
|
PIPE_TEXTURE_3D,
|
||||||
]
|
]
|
||||||
|
|
||||||
color_formats = [
|
#sizes = [64, 32, 16, 8, 4, 2, 1]
|
||||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
|
||||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
|
||||||
#PIPE_FORMAT_B8G8R8A8_SRGB,
|
|
||||||
PIPE_FORMAT_B5G6R5_UNORM,
|
|
||||||
PIPE_FORMAT_B5G5R5A1_UNORM,
|
|
||||||
PIPE_FORMAT_B4G4R4A4_UNORM,
|
|
||||||
PIPE_FORMAT_A8_UNORM,
|
|
||||||
PIPE_FORMAT_L8_UNORM,
|
|
||||||
PIPE_FORMAT_UYVY,
|
|
||||||
PIPE_FORMAT_DXT1_RGB,
|
|
||||||
#PIPE_FORMAT_DXT1_RGBA,
|
|
||||||
#PIPE_FORMAT_DXT3_RGBA,
|
|
||||||
#PIPE_FORMAT_DXT5_RGBA,
|
|
||||||
]
|
|
||||||
|
|
||||||
depth_formats = [
|
|
||||||
PIPE_FORMAT_Z32_UNORM,
|
|
||||||
PIPE_FORMAT_S8Z24_UNORM,
|
|
||||||
PIPE_FORMAT_X8Z24_UNORM,
|
|
||||||
PIPE_FORMAT_Z16_UNORM,
|
|
||||||
]
|
|
||||||
|
|
||||||
sizes = [64, 32, 16, 8, 4, 2, 1]
|
|
||||||
#sizes = [1020, 508, 252, 62, 30, 14, 6, 3]
|
#sizes = [1020, 508, 252, 62, 30, 14, 6, 3]
|
||||||
#sizes = [64]
|
sizes = [64]
|
||||||
#sizes = [63]
|
#sizes = [63]
|
||||||
|
|
||||||
faces = [
|
faces = [
|
||||||
@@ -598,58 +575,61 @@ def main():
|
|||||||
|
|
||||||
ctx = dev.context_create()
|
ctx = dev.context_create()
|
||||||
|
|
||||||
for format in color_formats:
|
for format in formats.iterkeys():
|
||||||
for target in targets:
|
if format == PIPE_FORMAT_NONE:
|
||||||
|
continue
|
||||||
|
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:
|
for size in sizes:
|
||||||
if target == PIPE_TEXTURE_3D:
|
test = TextureDepthSampleTest(
|
||||||
depth = size
|
dev = dev,
|
||||||
else:
|
ctx = ctx,
|
||||||
depth = 1
|
target = target,
|
||||||
for face in faces:
|
format = format,
|
||||||
if target != PIPE_TEXTURE_CUBE and face:
|
width = size,
|
||||||
continue
|
height = size,
|
||||||
levels = lods(size)
|
depth = depth,
|
||||||
for last_level in range(levels):
|
last_level = last_level,
|
||||||
for level in range(0, last_level + 1):
|
face = face,
|
||||||
zslice = 0
|
level = level,
|
||||||
while zslice < depth >> level:
|
zslice = zslice,
|
||||||
test = TextureColorSampleTest(
|
)
|
||||||
dev = dev,
|
suite.add_test(test)
|
||||||
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
|
|
||||||
for format in depth_formats:
|
|
||||||
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)
|
|
||||||
suite.run()
|
suite.run()
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user