Skip to content
digital_developer
Game DevMonoGameVulkanNintendo Switch 2

MonoGame 3.8.6 lists Switch 2 support, a native OpenGL backend and Vulkan fixes

MonoGame 3.8.6 is out on GitHub with a long list of changes. They include Nintendo Switch 2 support, a native OpenGL backend, and many Vulkan and DX12 fixes. Teams on the 3.8.5.1 line should read the changelog before upgrading.

Digital Developer Desk, 13h ago, 2 min read

MonoGame 3.8.6 is published on the project's GitHub releases page. The notes list pull requests titled "Nintendo Switch 2 Suppprt" (sic) and "Native OpenGL Backend". The release notes give no further detail on either, so check the pull requests (#9495 and #9491) for scope before planning around them.

Much of the release is graphics backend work. For Vulkan, the notes list a fix for a bad NormalizedShort2/4 format, a render target sync fix, and a fix for a swapchain size handling issue that caused a recreation loop. Two-sided stencil state is now implemented for the Vulkan and DX12 backends. DX12 gets a ringbuffer deallocation on GraphicsDevice disposal, a CommandListPool cleanup, and a further round of fixes titled "DX12 Fixes Part IV". Contributors also added native GPU handle exposure and support for wrapping an external texture in a RenderTarget2D.

DesktopGL and WindowsDX have fixes too. DesktopGL now temporarily disables the scissor test during clear to match XNA clear behavior. It also masks MRT outputs for single-output shaders and handles the fallback when an MSAA request creates a non-MSAA framebuffer. On WindowsDX, MSAA depth rendering for RenderTargetCube is fixed. Render target retention after dispose is fixed as well, and SpriteFont whitespace advance now works when kerning is disabled.

The API surface grows in a few places. These include Texture2D SetData span overloads, Vector3.TransformCoord, Vector4 quaternion transforms, and Round method overloads on vector structs. The notes also list a fixed Matrix.GetHashCode() implementation, Srgb8Etc2, Srgb8A1Etc2 and SRgb8A8Etc2 surface formats for GetColorData, and re-added StorageContainer classes. SpriteBatch.Draw doc comments now state that rotation is in radians.

Tooling and build changes include a fix for FBX models importing sideways, a smaller install through stripped binaries, and compilation fixes for upgrading Android projects to .NET 10. The notes also list the removal of dependencies with security vulnerabilities, a Docker Linux image build option, more tests enabled on macOS and Linux, and a build command update to use the '--mg-arch' option. The notes don't flag breaking changes, so read the full changelog (v3.8.5.1...v3.8.6) and test your render targets, shaders and content pipeline before moving a project over.

Sources

Get the daily brief

The five stories that matter, every weekday morning. Free.