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