Mon, 04 Sep 2017 11:46:14 -0700Fixed bug 3790 - Memory leak with surfaces blitting on each other
Sam Lantinga <slouken@libsdl.org> [Mon, 04 Sep 2017 11:46:14 -0700] rev 11448
Fixed bug 3790 - Memory leak with surfaces blitting on each other

bastien.bouclet

When creating two surfaces and blitting them onto the other, SDL's internal reference counting fails, and one of the surfaces is not freed when calling SDL_FreeSurface.

Example code :

SDL_Surface *s1 = SDL_CreateRGBSurfaceWithFormat(0, 640, 480, 32, SDL_PIXELFORMAT_ARGB8888);
SDL_Surface *s2 = SDL_CreateRGBSurfaceWithFormat(0, 640, 480, 32, SDL_PIXELFORMAT_ARGB8888);

SDL_BlitSurface(s1, NULL, s2, NULL);
SDL_BlitSurface(s2, NULL, s1, NULL);

SDL_FreeSurface(s2);
SDL_FreeSurface(s1);

With this example, s1 is not freed after calling SDL_FreeSurface, its refcount attribute is still positive.

Sun, 03 Sep 2017 17:33:49 -0400macOS: bug-fix for #3793, "fullscreen toggle does not maintain SDL_Renderer's logical size"
David Ludwig <dludwig@pobox.com> [Sun, 03 Sep 2017 17:33:49 -0400] rev 11447
macOS: bug-fix for #3793, "fullscreen toggle does not maintain SDL_Renderer's logical size"

This also seems to fix the follow-up issue in bug #3719, whereby the initial fix caused the SDL window to move, after transitioning from fullscreen to windowed-mode

Sun, 03 Sep 2017 16:36:22 -0400WinRT: listed VS 2017 optional-component requirements
David Ludwig <dludwig@pobox.com> [Sun, 03 Sep 2017 16:36:22 -0400] rev 11446
WinRT: listed VS 2017 optional-component requirements

Sun, 03 Sep 2017 13:20:33 -0400vulkan: Changed SDL_WINDOW_VULKAN value to match Tizen's fork.
Ryan C. Gordon <icculus@icculus.org> [Sun, 03 Sep 2017 13:20:33 -0400] rev 11445
vulkan: Changed SDL_WINDOW_VULKAN value to match Tizen's fork.

Sat, 02 Sep 2017 19:35:32 -0400video: Let video targets optionally decide their default OpenGL configs.
Ryan C. Gordon <icculus@icculus.org> [Sat, 02 Sep 2017 19:35:32 -0400] rev 11444
video: Let video targets optionally decide their default OpenGL configs.

This is necessary because the Raspberry Pi is a strange beast, that believes
it has OpenGL support (through glX?) but generally has GLES2 support.

So when using the raspberry video target, we need to force this to default
to a GLES2 context, or by default SDL_CreateWindow() will fail, deep down
when it tries to load the proper GL library.

Fixes testsprite2 (and basically everything else that wasn't testgles2) when
run on a Raspberry Pi without a X server.

Please note that other targets might also need this filled in, the Raspberry
Pi is just the most prominent and readily-available System-On-A-Chip style
thing on my desk. :)

Sat, 02 Sep 2017 16:41:14 -0400sndio: Patched to compile if SIO_DEVANY isn't defined.
Ryan C. Gordon <icculus@icculus.org> [Sat, 02 Sep 2017 16:41:14 -0400] rev 11443
sndio: Patched to compile if SIO_DEVANY isn't defined.

(It isn't in whatever Raspbian is currently shipping.)

Fri, 01 Sep 2017 12:54:38 -0700Fixed bug 3792 - [KMS/DRM] Wrong GBM format
Sam Lantinga <slouken@libsdl.org> [Fri, 01 Sep 2017 12:54:38 -0700] rev 11442
Fixed bug 3792 - [KMS/DRM] Wrong GBM format

Romain Tisserand

Using KMS/DRM driver from WIP SDL2.0.6 on Linux/ARM SoC RockChip RK3328 (ARM Mali 450 MP2 GPU).

The current code is using GBM_BO_FORMAT_XRGB8888 as GBM buffer format specifier.

The Mali driver (it has been confirmed some other vendor implementations too) expects GBM_FORMAT_XRGB8888.

The Mesa implementation is actually handling both values as the same, but it's not implemented like this into every gbm.h vendor header.

https://github.com/ideak/mesa/blob/master/src/gbm/backends/dri/gbm_dri.c

So with stock SDL2 on my card (Mali vendor implementation), it does not work, eglCreateWindowSurface fails, and gbm_is_format_supported fails too (with the BO variant).
It runs fine with GBM_FORMAT_XRGB8888.

Here is a link of the gbm.h from Mali user-space driver :

https://github.com/rockchip-linux/libmali/blob/rockchip/include/gbm.h

Fri, 01 Sep 2017 14:08:09 -0400x11: Correctly restore previous GL context after sacrificial context is done.
Ryan C. Gordon <icculus@icculus.org> [Fri, 01 Sep 2017 14:08:09 -0400] rev 11441
x11: Correctly restore previous GL context after sacrificial context is done.

Fri, 01 Sep 2017 14:00:11 -0400x11: don't try to make a NULL GL context current when we already did that.
Ryan C. Gordon <icculus@icculus.org> [Fri, 01 Sep 2017 14:00:11 -0400] rev 11440
x11: don't try to make a NULL GL context current when we already did that.

Fri, 01 Sep 2017 13:57:40 -0400x11: Clean up sacrificial GL context code.
Ryan C. Gordon <icculus@icculus.org> [Fri, 01 Sep 2017 13:57:40 -0400] rev 11439
x11: Clean up sacrificial GL context code.

Check for failures, restore any previously-current context.