# SDL 2.0.6 released!

**URL:** <https://discourse.libsdl.org/t/sdl-2-0-6-released/23109>\
**Category:** SDL Announcements\
**Created:** [September 22, 2017, 7:06pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109 "2017-09-22T19:06:24Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![slouken](https://discourse.libsdl.org/letter_avatar_proxy/v4/letter/s/ec9cab/32.png) [@slouken](https://discourse.libsdl.org/u/slouken)\
**Post date:** [September 22, 2017, 7:06pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/1 "2017-09-22T19:06:24Z")

</div>

Thanks to all the people who contributed code and feedback, SDL 2.0.6 is  
now available!  
[http://www.libsdl.org/download-2.0.php](http://www.libsdl.org/download-2.0.php)

In addition to lots of bug fixes and build improvements, here are the major  
changes in this release:

General:

- Added cross-platform Vulkan graphics support in SDL\_vulkan.h  
SDL\_Vulkan\_LoadLibrary()  
SDL\_Vulkan\_GetVkGetInstanceProcAddr()  
SDL\_Vulkan\_GetInstanceExtensions()  
SDL\_Vulkan\_CreateSurface()  
SDL\_Vulkan\_GetDrawableSize()  
SDL\_Vulkan\_UnloadLibrary()  
This is all the platform-specific code you need to bring up Vulkan on all SDL platforms. You can look at an example in test/testvulkan.c
- Added SDL\_ComposeCustomBlendMode() to create custom blend modes for 2D rendering
- Added SDL\_HasNEON() which returns whether the CPU has NEON instruction support
- Added support for many game controllers, including the Nintendo Switch Pro Controller
- Added support for inverted axes and separate axis directions in game controller mappings
- Added functions to return information about a joystick before it’s opened:  
SDL\_JoystickGetDeviceVendor()  
SDL\_JoystickGetDeviceProduct()  
SDL\_JoystickGetDeviceProductVersion()  
SDL\_JoystickGetDeviceType()  
SDL\_JoystickGetDeviceInstanceID()
- Added functions to return information about an open joystick:  
SDL\_JoystickGetVendor()  
SDL\_JoystickGetProduct()  
SDL\_JoystickGetProductVersion()  
SDL\_JoystickGetType()  
SDL\_JoystickGetAxisInitialState()
- Added functions to return information about an open game controller:  
SDL\_GameControllerGetVendor()  
SDL\_GameControllerGetProduct()  
SDL\_GameControllerGetProductVersion()
- Added SDL\_GameControllerNumMappings() and SDL\_GameControllerMappingForIndex() to be able to enumerate the built-in game controller mappings
- Added SDL\_LoadFile() and SDL\_LoadFile\_RW() to load a file into memory
- Added SDL\_DuplicateSurface() to make a copy of a surface
- Added an experimental JACK audio driver
- Implemented non-power-of-two audio resampling, optionally using libsamplerate to perform the resampling
- Added the hint SDL\_HINT\_AUDIO\_RESAMPLING\_MODE to control the quality of resampling
- Added the hint SDL\_HINT\_RENDER\_LOGICAL\_SIZE\_MODE to control the scaling policy for SDL\_RenderSetLogicalSize():  
“0” or “letterbox” - Uses letterbox/sidebars to fit the entire rendering on screen (the default)  
“1” or “overscan” - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen
- Added the hints SDL\_HINT\_MOUSE\_NORMAL\_SPEED\_SCALE and SDL\_HINT\_MOUSE\_RELATIVE\_SPEED\_SCALE to scale the mouse speed when being read from raw mouse input
- Added the hint SDL\_HINT\_TOUCH\_MOUSE\_EVENTS to control whether SDL will synthesize mouse events from touch events

Windows:

- The new default audio driver on Windows is WASAPI and supports hot-plugging devices and changing the default audio device
- The old XAudio2 audio driver is deprecated and will be removed in the next release
- Added hints SDL\_HINT\_WINDOWS\_INTRESOURCE\_ICON and SDL\_HINT\_WINDOWS\_INTRESOURCE\_ICON\_SMALL to specify a custom icon resource ID for SDL windows
- The hint SDL\_HINT\_WINDOWS\_DISABLE\_THREAD\_NAMING is now on by default for compatibility with .NET languages and various Windows debuggers
- Updated the GUID format for game controller mappings, older mappings will be automatically converted on load
- Implemented the SDL\_WINDOW\_ALWAYS\_ON\_TOP flag on Windows

Linux:

- Added an experimental KMS/DRM video driver for embedded development

Enjoy!

---

<div class="post-metadata">

**Author:** ![icculus](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/icculus/32/81_2.png) [@icculus](https://discourse.libsdl.org/u/icculus)\
**Post date:** [September 22, 2017, 10:11pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/2 "2017-09-22T22:11:43Z")

</div>



---

<div class="post-metadata">

**Author:** ![AntTheAlchemist](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/antthealchemist/32/3894_2.png) [@AntTheAlchemist](https://discourse.libsdl.org/u/AntTheAlchemist)\
**Post date:** [September 23, 2017, 3:35am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/3 "2017-09-23T03:35:59Z")

</div>

I’m getting no sound: “Unsupported audio format”. Before, I was getting sound, but no music from MODPLUG. If the new DLL gets pushed through Steam, my game will break. 2.0.5 works no problem.

---

<div class="post-metadata">

**Author:** ![bradharding](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/bradharding/32/4648_2.png) [@bradharding](https://discourse.libsdl.org/u/bradharding)\
**Post date:** [September 23, 2017, 6:02am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/5 "2017-09-23T06:02:10Z")

</div>

Unfortunately I’m getting this as well. 2.0.5 works without issue. Is a new SDL\_Mixer to be released?

---

<div class="post-metadata">

**Author:** ![slouken](https://discourse.libsdl.org/letter_avatar_proxy/v4/letter/s/ec9cab/32.png) [@slouken](https://discourse.libsdl.org/u/slouken)\
**Post date:** [September 23, 2017, 7:07am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/6 "2017-09-23T07:07:02Z")

</div>

Can you guys rebuild SDL\_mixer with this patch and see if that works?

> **[SDL\_mixer: changeset 737:d3fa63933df2](https://hg.libsdl.org/SDL_mixer/rev/d3fa63933df2)**
>
> Implemented S32LSB, S32MSB, and F32SYS versions of the effect position code

---

<div class="post-metadata">

**Author:** ![bradharding](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/bradharding/32/4648_2.png) [@bradharding](https://discourse.libsdl.org/u/bradharding)\
**Post date:** [September 23, 2017, 8:39am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/7 "2017-09-23T08:39:31Z")

</div>

Thanks for looking into this. Unfortunately, this didn’t fix the issue. I still get “Unsupported audio format” when using Mix\_SetPanning().

Correction, Mix\_SetPanning() returns fine, but still no sound.

---

<div class="post-metadata">

**Author:** ![icculus](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/icculus/32/81_2.png) [@icculus](https://discourse.libsdl.org/u/icculus)\
**Post date:** [September 23, 2017, 5:49pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/8 "2017-09-23T17:49:50Z")

</div>

> [@AntTheAlchemist](#):
>
> If the new DLL gets pushed through Steam, my game will break.

Which game is this? I’ll grab a copy and test locally.

---

<div class="post-metadata">

**Author:** ![AntTheAlchemist](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/antthealchemist/32/3894_2.png) [@AntTheAlchemist](https://discourse.libsdl.org/u/AntTheAlchemist)\
**Post date:** [September 23, 2017, 6:28pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/9 "2017-09-23T18:28:18Z")

</div>

> Which game is this? I’ll grab a copy and test locally.

It’s [PowBall Renaissance](http://store.steampowered.com/app/654600/PowBall_Renaissance/). I’ve inboxed you a free Steam key.

Something odd is happening with the sound in 2.0.6: I sometimes get a blip of sound as if a sample works for a split second. And if I use my developer menu to build the game resources, the sound effects work for a while (but still no music). There is always the possibility I could be doing something wrong my end which didn’t break pre 2.0.6. I will dig deeper and see if I can recreate the problem in a minimal example.

---

<div class="post-metadata">

**Author:** ![AntTheAlchemist](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/antthealchemist/32/3894_2.png) [@AntTheAlchemist](https://discourse.libsdl.org/u/AntTheAlchemist)\
**Post date:** [September 23, 2017, 6:33pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/10 "2017-09-23T18:33:59Z")

</div>

> [@slouken](#):
>
> Can you guys rebuild SDL\_mixer with this patch and see if that works?  
> [Implemented S32LSB, S32MSB, and F32SYS versions of the effect positio… · libsdl-org/SDL\_mixer@02d248a · GitHub](https://hg.libsdl.org/SDL_mixer/rev/d3fa63933df2)

I’ve never been successful in rebuilding any SDL stuff from source. I get numerous errors from make.exe that I can’t solve. I have to rely on the binaries.

---

<div class="post-metadata">

**Author:** ![bradharding](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/bradharding/32/4648_2.png) [@bradharding](https://discourse.libsdl.org/u/bradharding)\
**Post date:** [September 23, 2017, 8:29pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/11 "2017-09-23T20:29:30Z")

</div>

I’ll continue to test if I’m doing something wrong at my end as well. If it helps, my source is [here](https://github.com/bradharding/doomretro/blob/master/src/i_sound.c).

---

<div class="post-metadata">

**Author:** ![bradharding](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/bradharding/32/4648_2.png) [@bradharding](https://discourse.libsdl.org/u/bradharding)\
**Post date:** [September 23, 2017, 9:48pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/12 "2017-09-23T21:48:24Z")

</div>

When I call Mix\_OpenAudio(), I set the audio format to AUDIO\_S16LSB.  
Then when I call Mix\_QuerySpec() it seems the audio format has been changed to AUDIO\_F32LSB.

---

<div class="post-metadata">

**Author:** ![AntTheAlchemist](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/antthealchemist/32/3894_2.png) [@AntTheAlchemist](https://discourse.libsdl.org/u/AntTheAlchemist)\
**Post date:** [September 24, 2017, 7:09am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/13 "2017-09-24T07:09:26Z")

</div>

> [@bradharding](#):
>
> When I call Mix\_OpenAudio(), I set the audio format to AUDIO\_S16LSB.  
> Then when I call Mix\_QuerySpec() it seems the audio format has been changed to AUDIO\_F32LSB.

That’s to be expected. I believe the new audio device (WASAPI ) is F32 only, This is why someone thought I was getting no sound in the pre-release, because the F32 and S32 mixers weren’t implemented - which has now done. I can’t try the new SDL\_mixer because I don’t know how to build them from source (I get errors when I run make). But if I’m getting a glimpse of it working, there’s something else going on.

---

<div class="post-metadata">

**Author:** ![AntTheAlchemist](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/antthealchemist/32/3894_2.png) [@AntTheAlchemist](https://discourse.libsdl.org/u/AntTheAlchemist)\
**Post date:** [September 25, 2017, 2:28am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/14 "2017-09-25T02:28:18Z")

</div>

I’ve found what’s happening. Mix\_PlayMusic() is silencing all sound channels. Mix\_HaltMusic() will unmute the channels so they will play normally.

This didn’t happen in the 2.0.6 pre-release - only music (using MIX\_INIT\_MODPLUG) stopped working, but sounds still played.

I’ve spent hours trying to build SDL\_mixer from source, but I can’t do it. I get make errors. I don’t really know how to use Linux. I got as far as linking the source code into Eclipse, but I got an error something like “Mixer not built with libmod support”. Every forum I have searched has people posting about the same problem but nobody’s posted a solution. Can we have a new SDL\_mixer version?

I’ve put together this test code. Pressing 1 will play the sample no problem until pressing 2 to play the mod will silence everything. Pressing 3 to halt the mod will unmute the wav.

Music is also still silent (using MIX\_INIT\_MODPLUG). No errors are returned, just silence. This worked in 2.0.5.

[1.mod](https://discourse.libsdl.org/uploads/default/original/2X/0/046a347c3969aa6eb9bb9059f1117a61b5e3792e.mod) (4.3 KB)  
[https://discourse.libsdl.org/uploads/default/original/2X/f/fac4c7e4a1e2625ffb4fe586ab054c8879cb2a49.wav](https://discourse.libsdl.org/uploads/default/original/2X/f/fac4c7e4a1e2625ffb4fe586ab054c8879cb2a49.wav)[main.cpp](https://discourse.libsdl.org/uploads/default/original/2X/5/55949f46fc3ad2c95fd495716320db76aba26ad8.cpp) (1.8 KB)

---

<div class="post-metadata">

**Author:** ![mogumbo](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/mogumbo/32/704_2.png) [@mogumbo](https://discourse.libsdl.org/u/mogumbo)\
**Post date:** [September 26, 2017, 5:16am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/15 "2017-09-26T05:16:28Z")

</div>

In Win7 I’m unable to use the precompiled 64-bit 2.0.6 SDL2.dll from the dev library as a drop-in replacement for the 64-bit 2.0.5 dll in a game I’m working on. Upon running the game Win7 tells me my exe has stopped working and Windows is checking for a solution. If I’m remembering things correctly, binary compatibility is so good with SDL that’s supposed to work, isn’t it?

For comparison, I copied the whole install directory to Win8 and it worked with either dll. In a different 32-bit project I was able to replace a SDL2.dll from around 2013 with both the 2.0.5 and 2.0.6 precompiled dlls. And of course I haven’t had any problems on Linux yet.

---

<div class="post-metadata">

**Author:** ![ChliHug](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/chlihug/32/2863_2.png) [@ChliHug](https://discourse.libsdl.org/u/ChliHug)\
**Post date:** [September 26, 2017, 6:39am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/16 "2017-09-26T06:39:40Z")

</div>

> [@mogumbo](#):
>
> If I’m remembering things correctly, binary compatibility is so good with SDL that’s supposed to work, isn’t it?

Indeed it should. The only issue I can currently think of is if you’re using the opengl renderer and Windows drops back to the OpenGL 1.1 software renderer and SDL accesses a NULL pointer. This should be rare as the direct3d renderer is usually preferred on Windows.

I know the dev package doesn’t have the debugging infos in it, but a debugger should at least be able to tell us in which symbol it explodes. Can you check that?

@icculus, @slouken: I just noticed that SDL2-devel-2.0.6-VC.zip has the GCC DLLs in it. Is this intentional?

---

<div class="post-metadata">

**Author:** ![mogumbo](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/mogumbo/32/704_2.png) [@mogumbo](https://discourse.libsdl.org/u/mogumbo)\
**Post date:** [September 27, 2017, 4:11am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/17 "2017-09-27T04:11:24Z")

</div>

> [@ChliHug](#):
>
> Indeed it should.

Thanks for verifying, ChliHug. It is indeed an OpenGL game. I don’t have a debugger installed yet since I compiled with Microsoft Build Tools. But I got it to run once tonight with horrible flickering triangles everywhere. My money says it’s a graphics driver bug. I’ll keep digging…

---

<div class="post-metadata">

**Author:** ![Pseudodog](https://discourse.libsdl.org/letter_avatar_proxy/v4/letter/p/77aa72/32.png) [@Pseudodog](https://discourse.libsdl.org/u/Pseudodog)\
**Post date:** [September 30, 2017, 6:46pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/18 "2017-09-30T18:46:38Z")

</div>

Hi! I’m getting “warning incorrect audio” with mp3 files (SDL 2.0.6 and latest old mixer 2.0.1). Moreother, even if I have .wav files loaded correctly - they wouldn’t play because of error. Did anybody solved old mixer issue or rebuild new dll from Mercurial to get it work?

---

<div class="post-metadata">

**Author:** ![theweirdn8](https://discourse.libsdl.org/letter_avatar_proxy/v4/letter/t/76d3ee/32.png) [@theweirdn8](https://discourse.libsdl.org/u/theweirdn8)\
**Post date:** [October 6, 2017, 7:00pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/20 "2017-10-06T19:00:02Z")

</div>

Nice I can’t wait to update it.

---

<div class="post-metadata">

**Author:** ![AntTheAlchemist](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/antthealchemist/32/3894_2.png) [@AntTheAlchemist](https://discourse.libsdl.org/u/AntTheAlchemist)\
**Post date:** [October 8, 2017, 8:25pm UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/21 "2017-10-08T20:25:28Z")

</div>

Does this fix it for you?

```
SDL_setenv("SDL_AUDIODRIVER", "directsound", true);
```

---

<div class="post-metadata">

**Author:** ![bradharding](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/bradharding/32/4648_2.png) [@bradharding](https://discourse.libsdl.org/u/bradharding)\
**Post date:** [October 9, 2017, 4:54am UTC](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109/22 "2017-10-09T04:54:18Z")

</div>

Yes it does, thank you! However, I’ve had to increase the sound buffer x3 to get it then stop crashing, and I get a popping sound after each sound ([https://bugzilla.libsdl.org/show\_bug.cgi?id=3851](https://bugzilla.libsdl.org/show_bug.cgi?id=3851)). I think I’ll just stick with 2.0.5 for now…

[Next page](https://discourse.libsdl.org/t/sdl-2-0-6-released/23109.md?page=2)
