Skip to content

March 2024 GDK Update 7 Public Release

Compare
Choose a tag to compare
@FLY1NGSQU1RR3L FLY1NGSQU1RR3L released this 10 Oct 21:53
· 2 commits to 2403_MARCH since this release

March 2024 Microsoft Game Development Kit (GDK) release notes (Update 7)

Introduction

Welcome to the March 2024 Microsoft Game Development Kit with Xbox Extensions (GDKX) Update 6 release. You can use the GDKX to develop games that can be certified and approved for release on Windows 11 PCs, Windows 10 PCs, Xbox One, and Xbox Series X|S consoles by using a shared codebase.

About this document

We have organized this document into the following sections.

NOTE: Release notes have a number after their descriptions, such as [12345678]. This number represents an internal ID that Microsoft uses to track the work and history relating to the item. This number can be useful to your developer account manager if you have questions about a particular release note.


What's new in the March 2024 Microsoft Game Development Kit

  • The GDKX and the GDK are released in two types: Major (focused on features, three times a year) and Updates (focused on fixes, as often as needed by partners).
  • To view the full What's new section, see the online version of What's new.
  • To view release notes for previous versions, see release notes posts on the GDK forums, or view the release notes in the online documentation at GDK release notes.


March 2024 GDK Update 7

Issue fixes

Tools

Fixed an issue that prevented users with work accounts from signing in to the Store Association Wizard in the Microsoft Game Config Editor. [54196987]

Media

Fixed an issue where a thread object wasn't getting released correctly in the H264 decoder Media Foundation Transform (MFT). This caused a memory leak. [54112698]

Fixed an issue where pending decoder fence waits could cause memory corruption when the decoder Media Foundation Transform (MFT) or Source Reader was being released. The memory corruption could result in the title crashing when attempting to playback video. [53842023]

System

Fixed an issue that resulted in graphics page protections losing execute permissions during GPU captures. This issue was masked by using the default heap. [53863936]


March 2024 GDK Update 6

Notifications

Microsoft Azure PlayFab Party

The March 2024 GDK Update 5 changed the encoding of PlayFab Party headers from UTF-8 to UTF-16 LE BOM, which is unsupported by some build infrastructures. This update reverts PlayFab Party headers back to UTF-8 encoding. [53843657]


March 2024 GDK Update 5

Notifications

Setup

The GDK installer now detects an already-installed .NET 8 runtime and no longer installs an older version of the .NET runtime. [53339292]

Microsoft Azure PlayFab Party

The March 2024 GDK Update 5 includes the 1.10.1 release of PlayFab Party. This update includes all the changes from the 1.10.0 release that are described in the PlayFab Party Release Notes and the following issue fix.

  • Fixed an issue where the PlayFab Party library could crash when establishing direct peer connections in networks with three or more devices.

[53520669]

Issue fixes

Networking

Fixed a Transmission Control Protocol (TCP) reception regression that incorrectly allocated temporary queue buffers from system partition memory instead of the title partition when title-provided buffers were unavailable. This regression potentially reduced download performance under default XNetworkingConfigurationSetting values. [52267705]

Media

Fixed an issue that caused a small memory leak during the initialization of the H264/HEVC decoder Media Foundation transforms (MFTs). [53390307]

Graphics

Fixed an issue where the debug layer incorrectly reported invalid flags in the GetResourceAllocationInfo API when using the new D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE flag to create an acceleration structure. [53520985]

Audio

Fixed an issue where a title could crash or stop responding when using the XAPU API for an Opus decode. [53671496]


March 2024 GDK Update 4

Notifications

Graphics

D3D12XBOX_COMPUTE_SHADER_LIMITS_DESC.MaxWavesPerSa has been renamed to D3D12XBOX_COMPUTE_SHADER_LIMITS_DESC.MaxWavesPerSe. The previous name has been retained in a union. The clamp values have been fixed to allow proper per-SE maximum values. This limit has always been per-SE, despite the incorrect name. [52844031]

System

The XGameSave RPC transfer buffer now has a maximum size of 500 KB instead of being based on blob size. This minimizes memory defragmentation. [52989092]

Issue fixes

PIX

Fixed an issue where switching to using enhanced barrier APIs caused PIX to display all constant buffers as acceleration structures by default. [51803911]

Fixed an issue in PIX where using DispatchRays (DirectX Raytracing (DXR)) within ExecuteIndirect caused the Pipeline view to appear empty except for heaps. [52413175]

Fixed an issue that caused PIX to leak memory when video frames were captured in Timing Captures. [52880909]

Graphics

Fixed an issue where a rare assertion failure in XDXROfflineBVH.dll would occur when building an offline bottom-level acceleration structure (BLAS). [52560914]

Memory

Fixed an issue where some management threads in the kernel memory system would never exit. This could affect performance in some titles with system threads consuming significant CPU time on CPU5,6 (or CPU12,13 for simultaneous multithreading (SMT)). [52991454]


March 2024 GDK Update 3

Issue fixes

PIX

Fixed an issue that caused PIX to occasionally stop responding when closing a Timing Capture. [51788534]

Fixed an issue in PIX where it might crash when selecting the memory pie chart in the Live view if the API object table was set to Summary. [51483482]

Fixed an issue where switching to using enhanced barrier APIs caused PIX to display all constant buffers as acceleration structures by default. [51803911]

Multiplayer

Fixed an issue where Microsoft Azure PlayFab Party could stop responding during shutdown. [51753450]

Game Chat 2

Fixed an issue that caused a crash in Game Chat 2 that could occur after the user changed their console language setting. [51969958]

Graphics

Fixed an issue where offline BVH Dehydration (introduced in the March 2024 GDK) can silently fail when the bounding volume hierarchy (BVH) has a very small number of triangles. [52070116]


March 2024 GDK Update 2

Notifications

Graphics

Increased the performance of the crossover threshold when switching from a bitonic sort to a radix sort in the bounding volume hierarchy (BVH) builder. [51016726]

Redundant root signature and pipeline state changes have been removed from the bitonic sort system. [51016708]

The raytracing batched BVH builder has been optimized to allow for concurrent sort dispatches and to minimize barriers. This can significantly improve GPU utilization and reduce BVH build times for batched builds. [51016687]

Issue fixes

System

Fixed an issue where the use of XLaunchNewGame combined with the XGameSaveFiles API set would result in a sharing violation error and the inability to access saved content after launching a new game. [50917018]

Fixed an issue where crash dumps might not be collected if there wasn't enough title memory available. [50984583]

Fixed a crash in the xmem component when a fence is allocated or freed in titles that are using the 2310 or later GDK. [50484695]

Fixed an issue that could cause the title to crash when resuming if downloadable content (DLC) was added to the console while the title was suspended. [51134872]

Graphics

Fixed a resource leak that occurred when destroying the Direct3D device with raytracing enabled. [51016662]

Networking

Fixed an issue in xCurl where crashes could occur when concurrent calls were made to curl_multi_cleanup and curl_multi_info_read for the same multi handle. [50672912]


March 2024 GDK Update 1

Notifications

Performance Investigator for Xbox (PIX)

Significantly increased the speed at which the PIX Pipeline States view opens. [49821805]

Shader compiler

Improved the performance of Raster order views (ROVs):

  • Reduced the size of the ROV-critical section. Turn this optimization off by using __XBOX_DISABLE_ROV_AGGRESSIVE_HOIST_OR_SINK.
  • __DISABLE_ROV_INTRAWAVE_OVERLAP_HANDLING is now on by default. ROVs generally perform better when intra-wave overlap is handled by the hardware instead of the shader. Turn this flag off by setting the define to 0.

[50346707]

Issue fixes

Graphics

Fixed a potential crash in the validation layer when the context of a Draw was being evaluated while binding more render target views (RTVs) than were listed in the pipeline state object (PSO) with mismatched formats. [50347560]

Fixed a regression inXGTextureAddressComputer:: GetResourceLayout and XGTextureAddressComputer:: GetMipLevelOffsetBytes that caused 0 OffsetBytes to be returned for tail mips. For more information about the use of the OffsetBytes field, see the updated XG_MIPLEVEL_LAYOUT article in the GDK documentation. [49801258]

PIX

Fixed an issue that could cause a failure of the addition of data to the memory allocation stack tree in PIX Timing Captures. This failure could cause the "Connection interrupted" error message to appear. [49802320]

Fixed an issue that caused the call stacks for context switches to be displayed incorrectly in the Element Details view of PIX Timing Captures. [50260476]

Fixed an issue where PIX couldn't retrieve a capture from the console if it's rebooted before saving the capture when using the new Local mode option for GPU captures. [50570617]

Xbox services

Fixed an issue that was introduced in the March 2024 GDK where Zlib symbols were unintentionally exposed by libHttpClient.lib. This exposure caused a multiple definition linker error for titles that used XSAPI and the Zlib library. [49770335]

Shader compiler

Fixed an issue where using Raster order view (ROV) might cause a GPU hang in some cases. [50307272]

Networking

Fixed a regression in XCurl where specifying CURLOPT_INFILESIZE on a curl request with the Transfer-encoding: chunked header caused the request to skip sending the final empty chunk. The request would then fail. [49704250]

System

Fixed an issue that would result in FAIL_FAST_FATAL_APP_EXIT_8000ffff_xgameruntime.dll!OnRuntimeDisconnected during heavy thread pool usage. [50485921]

Fixed an issue where invoking XLaunchNewGame orXLaunchRestartOnCrash after Quick Resume caused a crash. [50563258]

Fixed an issue in hang reporting that prevented Event Tracing for Windows (ETW) sample traces from being collected on retail (non-Development Kit) consoles. A greater portion of hang .cab files with event trace log (ETL) files in them are now visible. [50223457]


March 2024 GDK

Breaking changes

Input

As of the March 2024 GDK release, the GDK installer no longer installs the GameInput libraries.

If you're targeting PC, add the Microsoft.GameInput NuGet package (https://www.nuget.org/packages/Microsoft.GameInput/) to your solution. Run the NuGet package's GameInput redistributable MSI to ensure that you have the latest runtime. Although the runtime is included in Windows May 2020 Updates and later, running the MSI will ensure that you have the latest version.
Include this redistributable in game installers to ensure that GameInput is available on all supported versions of Windows.

[48906759]

Notifications

Memory

The Xbox Series S has had an update to its system memory.

  • Additional memory: 574 MiB of extra system memory has been allocated for Xbox Series S consoles. This enhancement is specifically designed for developers who adopt the new Series S Advanced memory model.
  • Series S Advanced memory model: You can enable the new mode with the additional memory by setting <XboxLockhartTitleMemory>Advanced</XboxLockhartTitleMemory> in the game configuration file. The standard memory model remains unchanged, providing 7,998 MiB of memory. 7,904 MiB of this memory is "GPU Optimal Bandwidth" memory. However, the advanced model expands this to 8,572 MiB available to the title. 8,032 MiB of this memory is "GPU Optimal Bandwidth" memory.
  • Concurrency exception: The Series S Advanced memory model functions similarly to the Xbox Series X model but with one exception. Titles that use the Series S Advanced memory model that also launch separate external experiences via URL (such as web browsers) can no longer run concurrently with the system's web browser. In such cases, the title will be suspended for the duration of those external experiences, resuming when the user returns to the title.

[45173058]

Graphics

Bounding volume hierarchy (BVH) Viewer

Enhanced the developer experience with the BVH Viewer:

  • Added a new feature that allows the BVH Viewer Screen-Space heatmap to be isolated to the selected object.

  • Added a toggle for Left-/Right-Handed camera behavior and global settings for Y/Z-Up and Handedness.

  • Added an experimental top-level acceleration structure (TLAS) modification tool.

  • Improved the UI.

  • Improved performance.

[46719382]

Added multiple fixes/improvements/features to the PIX BVH Viewer:

  • New coloring (Color By) and culling (Show Only) modes. They're available in the Leaves panel and provide various modes such as the following for coloring the rendered geometry.

  • Color bottom-level acceleration structure (BLAS) instances by their computed surface-area heuristic (SAH) cost.

  • Cull (filter) visible geometry by the SAH value threshold.

  • Color triangles by branches in the TLAS or BLAS.

  • Cull (filter) items in the selected TLAS branch of a tree.

  • The hierarchy display is now on by default. This shows the instance bounds and internal BLAS nodes of the selected instance.

  • Selecting objects now respects visibility settings. Hidden objects can't be selected.

  • Camera motion is now frame-rate independent.

  • The aspect ratio is now restored when you reset the camera in PIX.

  • Removed the Path display mode in favor of the more useful BLAS Branch and TLAS Branch modes.

  • The Info and XDXR Options panels are now open by default.

  • Added improvements to the UI layout, latency, and display sharpness.

[47665570]

Added a new experimental TLAS Modification system to the PIX BVH Viewer. This new system enables you to remove instances or edit instance flags, and then view the resulting BVH and timings.

For more information, see the PIX BVH Viewer documentation.

[47916783]

Final dispatches of batched BVH builds are now marked so that it's easier to view each BLAS build event in PIX. [49040902]

Raytracing

Added a new member, IsolateSARatio, to the D3D12XBOX_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_PARAMS3 structure. This member exposes an internal BVH build parameter that's used to split large instances into a different branch of the BVH.
This parameter is described in the GDK documentation.

[48144720]

For Xbox DXR (XDXR) Standalone Traversal (Inline Raytracing), the global InlineAHS and InlineIS systems have been deprecated and replaced with a high-level shader language (HLSL) 2021 template-based system.
The new system allows multiple InlineAHS or InlineIS functions within a single source file.
Additionally, the new system enables carrying state along with the function and allows for a very simple translation from PC-style DirectX Raytracing (DXR) 1.1 Inline Raytracing . This results in up to 20% faster traversal performance when you use many NON_OPAQUE objects.

[48144727]

Added an Xbox-specific offline statistic type, D3D12XBOX_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_OFFLINE_STATISTICS, to the raytracing post-build information types.

This statistic type returns objective metrics about the BLAS (for example, num triangles, leaves, and links to leaves) and returns a score function. It's currently the surface-area heuristic (SAH), which is computed on the BLAS.

This statistic type is currently available only when using the offline BVH builder but not available for runtime builds.

You can use this statistic to check things like:

  • The ratio of triangles to leaves to see how well the vertex/index data is being compressed into a BLAS.
  • The SAH for a very rough heuristic of potential trace performance. A higher SAH likely indicates more expensive tracing, but it might under- or over-report and can't always be directly compared between different objects. Thresholding on a high SAH value (dependent on the type of content) allows you to flag potentially problematic meshes.

[46890984]

Shader compiler

Added a new compiler option, __XBOX_MAX_PRESERVED_INPUTS, in NewBE. This option allows you to cap the number of preserved inputs. Currently, it only works for pixel shader (PS) inputs.

When the compiler uses the/D__XBOX_MAX_PRESERVED_INPUTS=N option, it preserves PS inputs from 0 to n-1.
The number of preserved inputs is counted by specifying the number of DirectX Shader Compiler (DXC) input registers (Register column) in the Input signature output by DXC.

This new compiler option could reduce context rolls and improve performance by allowing the draw calls to fall into different preserved PS inputs groups.

Added an extra compiler option: __XBOX_PRINT_PS_INPUTS_PRESERVED_INFO. It prints out the detailed PS inputs preserved information and helps diagnose the problems in PS inputs preserve.

[45264549]

PIX

Added improvements to the BVH Viewer navigation camera:

  • Added a toggle for Left-/Right-Handed camera behavior.
  • Added global settings for Y/Z-Up and Handedness in the Settings page. When these settings are selected, they're used for all captures by default.

[43667025]

Added InstanceID, InstanceMask, InstanceContributionToHitGroupIndex, and Flags to the Instance information display in the PIX BVH Viewer. [46639272]

Added an experimental tool to the PIX BVH Viewer that allows modification of TLAS instances and flags while you view a DispatchRays event or an Inline Raytracing Dispatch event. You can see the timing and heatmap changes caused by removing an instance or by modifying its flags. [47916902]

The PIX BVH Viewer now has fields that show the camera position in the top bar of the UI. You can edit these fields to set the camera to a particular location. [48002291]

You can now isolate the PIX BVH Viewer Screen-Space heatmap to the selected object to examine individual costs. There is a toggle for this behavior in the UI. [48038412]

Issue fixes

System

Fixed an issue in the task queue to avoid a race condition that could cause a title to crash with a failfast error when the title is suspended. [49474469]

Graphics

Fixed an issue that caused the name of the Timing Capture Metrics View configurations to be truncated in the PIX UI. [48245350]

Fixed an issue that occurred when viewing some scaled BLAS build events in the PIX BVH Viewer. [49025842]

Fixed an issue where DispatchRays in an ExecuteIndirect command could reset vertex buffer bindings that were set prior to the DispatchRays call. [48576329]

Added support for rasterizer ordered views (ROVs) to the Xbox Series X|S driver and shader compiler. For more information, see DirectX-Specs | Engineering specs for DirectX features (microsoft.github.io). [23503290]

Fixed an issue where DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM would treat the alpha component as SNORM instead of UNORM when reading through the Texture Data (TD) on Xbox Series X|S consoles. [45212130]

Fixed an issue where stack memory was corrupted when XGBVHComputer::DecompressBVH_BatchedGPU was called and more than 64 BLASs were passed into it. [47481429]

Fixed an issue where the ID3D12GraphicsCommandList::ReadGDSX function returned incorrect data. [48868832]

PIX

Fixed an issue that could cause the compiler to generate an s_cbranch_vccz instruction that branches on an undefined vcc value. [48762450]

Xbox Manager (XBOM)

Fixed an issue in XBOM where re-mapping default bindings to other controllers' commands could result in XBOM becoming unusable the next time it's started. [49490188]


Documentation

Offline documentation for the March 2024 release of the GDKX is installed on your development PC by the GDKX Setup program. After running Setup, the Help file for the GDKX (gdk.chm) is in C:\Program Files (x86)\Microsoft GDK\Documentation.