March 11th, 2024

Agility SDK 1.613.3 Available Now, Including Support for GDC 2024 Showcase Features

We’re pleased to announce the release of our latest Agility SDK, complete with features we’ll be showcasing at GDC 2024. Get started today with the retail versions of Work Graphs, Shader Model 6.8, GPU Upload Heaps, and more!

SDK Package Features
SDK 1.613.3 Work Graphs

Shader Model 6.8

  • Work Graphs support
  • Start Vertex/Instance Location
  • Wave Size Range
  • Expanded Comparison Sampling

GPU Upload Heaps

Incrementing Constants in ExecuteIndirect

Generic Programs in State Objects

For previous versions, see our Agility SDK Downloads page.

 

Work Graphs

Work Graphs is a cutting-edge API that utilizes the full potential of your GPU. It’s not just an upgrade to the existing models, but a whole new paradigm that enables more efficient, flexible, and creative game development. With Work Graphs, you can generate and schedule GPU work on the fly, without relying on the host. This means you can achieve higher performance, lower latency, and greater scalability for your games with tasks such as culling, binning, chaining of compute work, and much more.

Find additional information and words from our partners on Work Graphs in our launch blog, and be sure to check out these excellent posts from AMD and NVIDIA, with both vendors offering day one driver support!

 

Shader Model 6.8

In addition to Work Graphs, Shader Model 6.8 introduces a host of new features for shader developers, including Start Vertex/Instance Location, Wave Size Range, and Expanded Comparison Sampling.

To enable Work Graphs in Shader Model 6.8, we’ve introduced new node shader types. These nodes can contain compute shaders or entire programs which are capable of being launched on the GPU. Additionally, the Work Graphs API now allows graph expansion through the AddToStateObject API.

The SV_StartVertexLocation and SV_StartInstanceLocation system values let shaders examine what these parameters were in the invoking Draw*Instanced() API call. This is useful for shaders doing their own address calculations based off these values, independent of any fixed function data addressing the system does with them.

The Wave Size Range feature enables developers to specify their preferred wave size in the shaders they author, offering a range of MIN, MAX, and PREFERRED wave sizes. This reduces the number of entry points that must be specified per shader, and eliminates the need to create multiple shaders with different wave sizes. This feature also enables drivers to decide on the suitable wave size for each shader.

Expanded Comparison Sampling provides new options for evaluating nearby pixels in shaders. With Expanded Comparison Sampling, all pixel sampling methods are available for sample comparison objects, allowing developers to create better cross platform shaders.

Shader Model 6.8 helps developers in creating efficient, compatible, and high-performance shaders. Check out the full list of features found in Shader Model 6.8, and find our matching compiler release with Shader Model 6.8 support here!

 

GPU Upload Heaps

GPU Upload Heaps provides a fast and convenient way to copy data from the CPU to the GPU in certain scenarios. Without this feature, GPU VRAM has traditionally been inaccessible to the CPU and all copies must go through the PCI bus. However, most modern GPUs have a resizable BAR (Base Address Register) which can be used by the CPU to write data to the GPU, and in many cases with lower latency.

Last March, GPU Upload Heaps was released as a developer preview that required the use of Developer Mode. Now, we are pleased to announce that the retail release can be used in any application where the target machine is Windows 11 Insider Preview Build 26080 or later. Check out more information describing GPU Upload Heaps in this blog post!

 

Incrementing Constants in ExecuteIndirect

A small addition has been made to ExecuteIndirect, where a root constant in a root signature can be declared to act as an incrementing constant per command in an ExecuteIndirect() call. For more information, see our description in the Indirect Drawing spec.

 

Generic Programs in State Objects

With Generic Programs in State Objects, the way shaders are defined for Work Graphs and raytracing pipelines has been extended to support all other pipelines: those based on vertex shaders, mesh shaders, and compute shaders. See more exciting details in our blog post on Work Graphs: New way to define PSOs.

 

PIX

As usual, PIX has day one support for each of the D3D12 features listed above. For more information on this and the other new improvements available in today’s PIX release, please visit this blog post.

 

Questions or Feedback?

Please let us know if you have any comments, questions, or feedback via our DirectX Discord server.

 

Author

0 comments

Discussion are closed.