Bug#1135448: pygame: FTBFS: FAIL: test_fill_rle (pygame.tests.surface_test.SurfaceTypeTest.test_fill_rle)
Simon McVittie
smcv at debian.org
Sat May 2 10:36:17 BST 2026
On Fri, 01 May 2026 at 23:14:09 +0000, Santiago Vila wrote:
>======================================================================
>FAIL: test_fill_rle (pygame.tests.surface_test.SurfaceTypeTest.test_fill_rle)
>Test RLEACCEL flag with fill()
>----------------------------------------------------------------------
>Traceback (most recent call last):
> File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pygame/build/pygame/tests/surface_test.py", line 256, in test_fill_rle
> self.assertTrue(blit_surf.get_flags() & pygame.RLEACCEL)
> ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This might be an expectations mismatch between pygame and sdl2-compat:
the precise behaviour around things like whether a surface is
RLE-compressed could easily have changed in the migration from "classic"
SDL2 to sdl2-compat (#1130484). In the past I've seen other unit test
failures in pygame and pysdl2 where the unit test makes assertions about
an implementation detail that SDL doesn't actually aim to guarantee.
I didn't see this particular regression when I did a mass-rebuild before
the transition (I did see #1123947, which I fixed at the time, or at
least I hope so) but perhaps sdl2-compat or SDL3 has had a subtle
behaviour change since then.
Possibly related: https://github.com/libsdl-org/sdl2-compat/issues/575,
reported by an upstream developer of pygame-ce (a pygame fork), in which
the sdl2-compat upstream maintainer wrote:
This was an intentional change. We do not immediately redo the RLE
encoding as a performance optimization for multiple direct pixel
accesses. Once the surface is used in a blit, the RLE encoding is
redone
(Also possibly related: https://github.com/pygame/pygame/issues/4706,
which is #1123947.)
smcv
More information about the Pkg-sdl-maintainers
mailing list