Bug#1038823: pysdl2: autopkgtest failure with SDL 2.28.0: cannot create a Renderer
Source: pysdl2
Version: 0.9.9+dfsg1-6
Severity: serious
Tags: fixed-upstream
Justification: https://release.debian.org/testing/rc_policy.txt 6a
X-Debbugs-CC: debian-ci@lists.debian.org
User: debian-ci@lists.debian.org
Usertags: needs-update
pysdl2's autopkgtest is failing since I uploaded libsdl2 version 2.28.0
to unstable. This appears to be a test issue, rather than a regression
in libsdl2.
An example of one of the failures:
70s self = <sdl2.test.render_test.TestSDLRender object at 0x7ffa7d1c1810>
70s
70s def test_SDL_CreateDestroyRenderer(self):
70s failed = 0
70s rcount = render.SDL_GetNumRenderDrivers()
70s for i in range(rcount):
70s window = video.SDL_CreateWindow(b"Test", 10, 10, 10, 10,
70s video.SDL_WINDOW_SHOWN)
70s assert isinstance(window.contents, video.SDL_Window)
70s renderer = render.SDL_CreateRenderer(window, i, self._RENDERFLAGS)
70s if not (renderer and renderer.contents):
70s failed += 1
70s video.SDL_DestroyWindow(window)
70s continue
70s assert isinstance(renderer.contents, render.SDL_Renderer)
70s render.SDL_DestroyRenderer(renderer)
70s
70s # TODO: using -1 as index for the call below leads to random
70s # access violations on Win32
70s renderer = render.SDL_CreateRenderer(window, i,
70s render.SDL_RENDERER_SOFTWARE)
70s > assert isinstance(renderer.contents, render.SDL_Renderer)
70s E ValueError: NULL pointer access
If I hack in some extra debug, it seems that the SDL error message is
"Surface already associated with window", which is related to:
- https://github.com/pygame-community/pygame-ce/issues/2190
- https://github.com/libsdl-org/SDL/issues/7793
- https://github.com/libsdl-org/SDL/pull/7795
Briefly, SDL upstream considers it to be a programming error to attempt
to create a Renderer for a window that already has a window surface,
and some video drivers imply creation of a window surface. SDL 2.28.0
is better at detecting and diagnosing this situation than previous
releases.
pysdl2/experimental seems to have fixed the test, so I'm going to upload
that to unstable if successful.
smcv
Reply to: