python/tests: Get the tests running again.
This commit is contained in:
@@ -128,6 +128,7 @@ def test(dev):
|
|||||||
scissor.maxy = height
|
scissor.maxy = height
|
||||||
ctx.set_scissor(scissor)
|
ctx.set_scissor(scissor)
|
||||||
|
|
||||||
|
# clip
|
||||||
clip = Clip()
|
clip = Clip()
|
||||||
clip.nr = 0
|
clip.nr = 0
|
||||||
ctx.set_clip(clip)
|
ctx.set_clip(clip)
|
||||||
|
@@ -127,16 +127,16 @@ class Test:
|
|||||||
self._run(result)
|
self._run(result)
|
||||||
result.summary()
|
result.summary()
|
||||||
|
|
||||||
def assert_rgba(self, surface, x, y, w, h, expected_rgba, pixel_tol=4.0/256, surface_tol=0.85):
|
def assert_rgba(self, ctx, surface, x, y, w, h, expected_rgba, pixel_tol=4.0/256, surface_tol=0.85):
|
||||||
total = h*w
|
total = h*w
|
||||||
different = surface.compare_tile_rgba(x, y, w, h, expected_rgba, tol=pixel_tol)
|
different = ctx.surface_compare_rgba(surface, x, y, w, h, expected_rgba, tol=pixel_tol)
|
||||||
if different:
|
if different:
|
||||||
sys.stderr.write("%u out of %u pixels differ\n" % (different, total))
|
sys.stderr.write("%u out of %u pixels differ\n" % (different, total))
|
||||||
|
|
||||||
if float(total - different)/float(total) < surface_tol:
|
if float(total - different)/float(total) < surface_tol:
|
||||||
if 0:
|
if 0:
|
||||||
rgba = FloatArray(h*w*4)
|
rgba = FloatArray(h*w*4)
|
||||||
surface.get_tile_rgba(x, y, w, h, rgba)
|
ctx.surface_read_rgba(surface, x, y, w, h, rgba)
|
||||||
show_image(w, h, Result=rgba, Expected=expected_rgba)
|
show_image(w, h, Result=rgba, Expected=expected_rgba)
|
||||||
save_image(w, h, rgba, "result.png")
|
save_image(w, h, rgba, "result.png")
|
||||||
save_image(w, h, expected_rgba, "expected.png")
|
save_image(w, h, expected_rgba, "expected.png")
|
||||||
|
@@ -99,21 +99,18 @@ class TextureTest(TestCase):
|
|||||||
w = dst_surface.width
|
w = dst_surface.width
|
||||||
h = dst_surface.height
|
h = dst_surface.height
|
||||||
|
|
||||||
# ???
|
stride = util_format_get_stride(format, w)
|
||||||
stride = pf_get_stride(texture->format, w)
|
size = util_format_get_nblocksy(format, h) * stride
|
||||||
size = pf_get_nblocksy(texture->format) * stride
|
|
||||||
src_raw = os.urandom(size)
|
src_raw = os.urandom(size)
|
||||||
|
|
||||||
src_surface.put_tile_raw(0, 0, w, h, src_raw, stride)
|
|
||||||
|
|
||||||
ctx = self.dev.context_create()
|
ctx = self.dev.context_create()
|
||||||
|
|
||||||
|
ctx.surface_write_raw(src_surface, 0, 0, w, h, src_raw, stride)
|
||||||
|
|
||||||
ctx.surface_copy(dst_surface, 0, 0,
|
ctx.surface_copy(dst_surface, 0, 0,
|
||||||
src_surface, 0, 0, w, h)
|
src_surface, 0, 0, w, h)
|
||||||
|
|
||||||
ctx.flush()
|
dst_raw = ctx.surface_read_raw(dst_surface, 0, 0, w, h)
|
||||||
|
|
||||||
dst_raw = dst_surface.get_tile_raw(0, 0, w, h)
|
|
||||||
|
|
||||||
if dst_raw != src_raw:
|
if dst_raw != src_raw:
|
||||||
raise TestFailure
|
raise TestFailure
|
||||||
|
@@ -115,6 +115,7 @@ class TextureColorSampleTest(TestCase):
|
|||||||
|
|
||||||
def test(self):
|
def test(self):
|
||||||
dev = self.dev
|
dev = self.dev
|
||||||
|
ctx = self.ctx
|
||||||
|
|
||||||
target = self.target
|
target = self.target
|
||||||
format = self.format
|
format = self.format
|
||||||
@@ -125,6 +126,8 @@ class TextureColorSampleTest(TestCase):
|
|||||||
face = self.face
|
face = self.face
|
||||||
level = self.level
|
level = self.level
|
||||||
zslice = self.zslice
|
zslice = self.zslice
|
||||||
|
minz = 0.0
|
||||||
|
maxz = 1.0
|
||||||
|
|
||||||
tex_usage = PIPE_TEXTURE_USAGE_SAMPLER
|
tex_usage = PIPE_TEXTURE_USAGE_SAMPLER
|
||||||
geom_flags = 0
|
geom_flags = 0
|
||||||
@@ -136,8 +139,6 @@ class TextureColorSampleTest(TestCase):
|
|||||||
if not dev.is_format_supported(format, target, tex_usage, geom_flags):
|
if not dev.is_format_supported(format, target, tex_usage, geom_flags):
|
||||||
raise TestSkip
|
raise TestSkip
|
||||||
|
|
||||||
ctx = self.dev.context_create()
|
|
||||||
|
|
||||||
# disabled blending/masking
|
# disabled blending/masking
|
||||||
blend = Blend()
|
blend = Blend()
|
||||||
blend.rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE
|
blend.rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE
|
||||||
@@ -155,7 +156,6 @@ class TextureColorSampleTest(TestCase):
|
|||||||
rasterizer = Rasterizer()
|
rasterizer = Rasterizer()
|
||||||
rasterizer.front_winding = PIPE_WINDING_CW
|
rasterizer.front_winding = PIPE_WINDING_CW
|
||||||
rasterizer.cull_mode = PIPE_WINDING_NONE
|
rasterizer.cull_mode = PIPE_WINDING_NONE
|
||||||
rasterizer.bypass_vs_clip_and_viewport = 1
|
|
||||||
ctx.set_rasterizer(rasterizer)
|
ctx.set_rasterizer(rasterizer)
|
||||||
|
|
||||||
# samplers
|
# samplers
|
||||||
@@ -183,14 +183,45 @@ class TextureColorSampleTest(TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
expected_rgba = FloatArray(height*width*4)
|
expected_rgba = FloatArray(height*width*4)
|
||||||
texture.get_surface(
|
surface = texture.get_surface(
|
||||||
face = face,
|
face = face,
|
||||||
level = level,
|
level = level,
|
||||||
zslice = zslice,
|
zslice = zslice,
|
||||||
).sample_rgba(expected_rgba)
|
)
|
||||||
|
|
||||||
|
ctx.surface_sample_rgba(surface, expected_rgba)
|
||||||
|
|
||||||
ctx.set_fragment_sampler_texture(0, texture)
|
ctx.set_fragment_sampler_texture(0, texture)
|
||||||
|
|
||||||
|
# viewport
|
||||||
|
viewport = Viewport()
|
||||||
|
scale = FloatArray(4)
|
||||||
|
scale[0] = width
|
||||||
|
scale[1] = height
|
||||||
|
scale[2] = (maxz - minz) / 2.0
|
||||||
|
scale[3] = 1.0
|
||||||
|
viewport.scale = scale
|
||||||
|
translate = FloatArray(4)
|
||||||
|
translate[0] = 0.0
|
||||||
|
translate[1] = 0.0
|
||||||
|
translate[2] = (maxz - minz) / 2.0
|
||||||
|
translate[3] = 0.0
|
||||||
|
viewport.translate = translate
|
||||||
|
ctx.set_viewport(viewport)
|
||||||
|
|
||||||
|
# scissor
|
||||||
|
scissor = Scissor()
|
||||||
|
scissor.minx = 0
|
||||||
|
scissor.miny = 0
|
||||||
|
scissor.maxx = width
|
||||||
|
scissor.maxy = height
|
||||||
|
ctx.set_scissor(scissor)
|
||||||
|
|
||||||
|
# clip
|
||||||
|
clip = Clip()
|
||||||
|
clip.nr = 0
|
||||||
|
ctx.set_clip(clip)
|
||||||
|
|
||||||
# framebuffer
|
# framebuffer
|
||||||
cbuf_tex = dev.texture_create(
|
cbuf_tex = dev.texture_create(
|
||||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||||
@@ -265,8 +296,8 @@ class TextureColorSampleTest(TestCase):
|
|||||||
|
|
||||||
for i in range(0, 4):
|
for i in range(0, 4):
|
||||||
j = 8*i
|
j = 8*i
|
||||||
verts[j + 0] = pos[i][0] # x
|
verts[j + 0] = pos[i][0]/float(width) # x
|
||||||
verts[j + 1] = pos[i][1] # y
|
verts[j + 1] = pos[i][1]/float(height) # y
|
||||||
verts[j + 2] = 0.0 # z
|
verts[j + 2] = 0.0 # z
|
||||||
verts[j + 3] = 1.0 # w
|
verts[j + 3] = 1.0 # w
|
||||||
verts[j + 4] = tex[i][0] # s
|
verts[j + 4] = tex[i][0] # s
|
||||||
@@ -283,7 +314,7 @@ class TextureColorSampleTest(TestCase):
|
|||||||
|
|
||||||
cbuf = cbuf_tex.get_surface()
|
cbuf = cbuf_tex.get_surface()
|
||||||
|
|
||||||
self.assert_rgba(cbuf, x, y, w, h, expected_rgba, 4.0/256, 0.85)
|
self.assert_rgba(ctx, cbuf, x, y, w, h, expected_rgba, 4.0/256, 0.85)
|
||||||
|
|
||||||
|
|
||||||
class TextureDepthSampleTest(TestCase):
|
class TextureDepthSampleTest(TestCase):
|
||||||
@@ -302,6 +333,7 @@ class TextureDepthSampleTest(TestCase):
|
|||||||
|
|
||||||
def test(self):
|
def test(self):
|
||||||
dev = self.dev
|
dev = self.dev
|
||||||
|
ctx = self.ctx
|
||||||
|
|
||||||
target = self.target
|
target = self.target
|
||||||
format = self.format
|
format = self.format
|
||||||
@@ -312,6 +344,8 @@ class TextureDepthSampleTest(TestCase):
|
|||||||
face = self.face
|
face = self.face
|
||||||
level = self.level
|
level = self.level
|
||||||
zslice = self.zslice
|
zslice = self.zslice
|
||||||
|
minz = 0.0
|
||||||
|
maxz = 1.0
|
||||||
|
|
||||||
tex_usage = PIPE_TEXTURE_USAGE_SAMPLER
|
tex_usage = PIPE_TEXTURE_USAGE_SAMPLER
|
||||||
geom_flags = 0
|
geom_flags = 0
|
||||||
@@ -323,8 +357,6 @@ class TextureDepthSampleTest(TestCase):
|
|||||||
if not dev.is_format_supported(format, target, tex_usage, geom_flags):
|
if not dev.is_format_supported(format, target, tex_usage, geom_flags):
|
||||||
raise TestSkip
|
raise TestSkip
|
||||||
|
|
||||||
ctx = self.dev.context_create()
|
|
||||||
|
|
||||||
# disabled blending/masking
|
# disabled blending/masking
|
||||||
blend = Blend()
|
blend = Blend()
|
||||||
blend.rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE
|
blend.rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE
|
||||||
@@ -345,9 +377,24 @@ class TextureDepthSampleTest(TestCase):
|
|||||||
rasterizer = Rasterizer()
|
rasterizer = Rasterizer()
|
||||||
rasterizer.front_winding = PIPE_WINDING_CW
|
rasterizer.front_winding = PIPE_WINDING_CW
|
||||||
rasterizer.cull_mode = PIPE_WINDING_NONE
|
rasterizer.cull_mode = PIPE_WINDING_NONE
|
||||||
rasterizer.bypass_vs_clip_and_viewport = 1
|
|
||||||
ctx.set_rasterizer(rasterizer)
|
ctx.set_rasterizer(rasterizer)
|
||||||
|
|
||||||
|
# viewport
|
||||||
|
viewport = Viewport()
|
||||||
|
scale = FloatArray(4)
|
||||||
|
scale[0] = width
|
||||||
|
scale[1] = height
|
||||||
|
scale[2] = (maxz - minz) / 2.0
|
||||||
|
scale[3] = 1.0
|
||||||
|
viewport.scale = scale
|
||||||
|
translate = FloatArray(4)
|
||||||
|
translate[0] = 0.0
|
||||||
|
translate[1] = 0.0
|
||||||
|
translate[2] = (maxz - minz) / 2.0
|
||||||
|
translate[3] = 0.0
|
||||||
|
viewport.translate = translate
|
||||||
|
ctx.set_viewport(viewport)
|
||||||
|
|
||||||
# samplers
|
# samplers
|
||||||
sampler = Sampler()
|
sampler = Sampler()
|
||||||
sampler.wrap_s = PIPE_TEX_WRAP_CLAMP_TO_EDGE
|
sampler.wrap_s = PIPE_TEX_WRAP_CLAMP_TO_EDGE
|
||||||
@@ -373,14 +420,29 @@ class TextureDepthSampleTest(TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
expected_rgba = FloatArray(height*width*4)
|
expected_rgba = FloatArray(height*width*4)
|
||||||
texture.get_surface(
|
surface = texture.get_surface(
|
||||||
face = face,
|
face = face,
|
||||||
level = level,
|
level = level,
|
||||||
zslice = zslice,
|
zslice = zslice,
|
||||||
).sample_rgba(expected_rgba)
|
)
|
||||||
|
|
||||||
|
ctx.surface_sample_rgba(surface, expected_rgba)
|
||||||
|
|
||||||
ctx.set_fragment_sampler_texture(0, texture)
|
ctx.set_fragment_sampler_texture(0, texture)
|
||||||
|
|
||||||
|
# scissor
|
||||||
|
scissor = Scissor()
|
||||||
|
scissor.minx = 0
|
||||||
|
scissor.miny = 0
|
||||||
|
scissor.maxx = width
|
||||||
|
scissor.maxy = height
|
||||||
|
ctx.set_scissor(scissor)
|
||||||
|
|
||||||
|
# clip
|
||||||
|
clip = Clip()
|
||||||
|
clip.nr = 0
|
||||||
|
ctx.set_clip(clip)
|
||||||
|
|
||||||
# framebuffer
|
# framebuffer
|
||||||
cbuf_tex = dev.texture_create(
|
cbuf_tex = dev.texture_create(
|
||||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||||
@@ -464,8 +526,8 @@ class TextureDepthSampleTest(TestCase):
|
|||||||
|
|
||||||
for i in range(0, 4):
|
for i in range(0, 4):
|
||||||
j = 8*i
|
j = 8*i
|
||||||
verts[j + 0] = pos[i][0] # x
|
verts[j + 0] = pos[i][0]/float(width) # x
|
||||||
verts[j + 1] = pos[i][1] # y
|
verts[j + 1] = pos[i][1]/float(height) # y
|
||||||
verts[j + 2] = 0.0 # z
|
verts[j + 2] = 0.0 # z
|
||||||
verts[j + 3] = 1.0 # w
|
verts[j + 3] = 1.0 # w
|
||||||
verts[j + 4] = tex[i][0] # s
|
verts[j + 4] = tex[i][0] # s
|
||||||
@@ -482,7 +544,7 @@ class TextureDepthSampleTest(TestCase):
|
|||||||
|
|
||||||
zsbuf = zsbuf_tex.get_surface()
|
zsbuf = zsbuf_tex.get_surface()
|
||||||
|
|
||||||
self.assert_rgba(zsbuf, x, y, w, h, expected_rgba, 4.0/256, 0.85)
|
self.assert_rgba(ctx, zsbuf, x, y, w, h, expected_rgba, 4.0/256, 0.85)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -534,6 +596,8 @@ def main():
|
|||||||
PIPE_TEX_FACE_NEG_Z,
|
PIPE_TEX_FACE_NEG_Z,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
ctx = dev.context_create()
|
||||||
|
|
||||||
for format in color_formats:
|
for format in color_formats:
|
||||||
for target in targets:
|
for target in targets:
|
||||||
for size in sizes:
|
for size in sizes:
|
||||||
@@ -551,6 +615,7 @@ def main():
|
|||||||
while zslice < depth >> level:
|
while zslice < depth >> level:
|
||||||
test = TextureColorSampleTest(
|
test = TextureColorSampleTest(
|
||||||
dev = dev,
|
dev = dev,
|
||||||
|
ctx = ctx,
|
||||||
target = target,
|
target = target,
|
||||||
format = format,
|
format = format,
|
||||||
width = size,
|
width = size,
|
||||||
@@ -573,6 +638,7 @@ def main():
|
|||||||
for size in sizes:
|
for size in sizes:
|
||||||
test = TextureDepthSampleTest(
|
test = TextureDepthSampleTest(
|
||||||
dev = dev,
|
dev = dev,
|
||||||
|
ctx = ctx,
|
||||||
target = target,
|
target = target,
|
||||||
format = format,
|
format = format,
|
||||||
width = size,
|
width = size,
|
||||||
|
@@ -86,15 +86,16 @@ class TextureTest(TestCase):
|
|||||||
|
|
||||||
surface = texture.get_surface(face, level, zslice)
|
surface = texture.get_surface(face, level, zslice)
|
||||||
|
|
||||||
# ???
|
stride = util_format_get_stride(format, width)
|
||||||
stride = pf_get_stride(texture->format, w)
|
size = util_format_get_nblocksy(format, height) * stride
|
||||||
size = pf_get_nblocksy(texture->format) * stride
|
|
||||||
|
|
||||||
in_raw = os.urandom(size)
|
in_raw = os.urandom(size)
|
||||||
|
|
||||||
surface.put_tile_raw(0, 0, surface.width, surface.height, in_raw, stride)
|
ctx = self.dev.context_create()
|
||||||
|
|
||||||
out_raw = surface.get_tile_raw(0, 0, surface.width, surface.height)
|
ctx.surface_write_raw(surface, 0, 0, surface.width, surface.height, in_raw, stride)
|
||||||
|
|
||||||
|
out_raw = ctx.surface_read_raw(surface, 0, 0, surface.width, surface.height)
|
||||||
|
|
||||||
if in_raw != out_raw:
|
if in_raw != out_raw:
|
||||||
raise TestFailure
|
raise TestFailure
|
||||||
|
Reference in New Issue
Block a user