DirectX12

Things you did run-time are now done at startup

Things you did at startup is now done offline

DirectX 12 is a low level API like Vulkan and Metal. It can be used on Windows 10 and Xbox One. DirectX11 is the version before that can be used on Windows Vista and above.

    • Startup - The basic steps to setup for DirectX 12 rendering.

    • Memory - How to handle the memory of all cool resources you will need.

    • Assets - Creat root signatures and PSO's.

    • Resources - Create and load the resources

    • Binding - Tell your shaders where it can find the resources.

    • Command: All the command list use the same ID3D12GraphicsCommandList interface.

    • Synchronize - Make the CPU and GPU talk to each other.

    • Shutdown - How to end things in a nice way.

    • HLSL - Used to write shaders.

    • Guidelines - Generic hints and details about specific hardware vendors.

Reference

Tutorials

Links

Learning D3D12 from D3D11 - Part 1: Getting Started, Command Queues, and Fencing - 2019

New in D3D12 – DRED helps developers diagnose GPU faults - 2019

D3D12 Constant Buffer Management - 2019

D3D12 Root Signature Management - 2019

Programming HDR monitor support in Direct3D - 2019

Programming FreeSync 2 support in Direct3D - 2019

Learning DirectX 12 – Lesson 4 – Textures - 2019

New in D3D12 – background shader optimizations - 2019

Radeon GPU Analyzer 2.2 for Direct3D®12 Compute - 2019

GPU timing data in New Timing Captures - 2019

D3D12 Descriptor Heap Management - 2019

Part 3: DDGI Overview - 2019

D3D12 Memory Allocator - 2019

Learning D3D12 from D3D11 - Part 2: GPU Resources, Heaps, and Descriptors - 2019

Direct3D 11 on 12 Updates - 2019

Debugging D3D12 driver crash - 2018

BRE Engine - 2017

TBB Task DAG with Deferred Successors - 2017

DirectX 12 Case Studies (Pdf) - 2017 - Movie

Advanced Rendering with DirectX 11 and DirectX 12 (presented by NVIDIA) - 2016

DirectX12 – Multithread Architecture: A First Approach - 2016

Direct3D 12 Initialization - 2016

Nicolas Bertoa Physically Based Rendering - 2016

DirectX 12 Advancements - 2016

Advanced Rendering with DirectX 11 and DirectX 12 - 2016

High-performance, Low-Overhead Rendering with OpenGL and Vulkan - 2016

DirectX 12 Advancements - 2016

Practical DirectX 12 – Programming Model and Hardware Capabilities - 2016

GD.Net DirectX 12 few notes and questions - 2016

Efficient Implementation of Dynamic Resources in Direct3D12 - 2016

Shader resource binding model in Diligent Engine 2.0 - 2016

Debugging D3D12 fences & queues - 2015

Getting started with D3D12 - 2015

Debugging D3D12 fences & queues - 2015

Getting started with D3D12 - 2015

Debugging D3D12 fences & queues - 2015

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs - 2015

Getting started with D3D12 - 2015

DirectX 11 vs. DirectX 12 oversimplified - 2015

Better Power, Better Performance: Your Game on DirectX12 - 2015

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs - 2015

Performance Considerations for Resource Binding in Microsoft DirectX* 12 - 2015

Efficient Rendering with DirectX 12 on Intel Graphics - 2015

Direct3D* 12 - Console API Efficiency & Performance on PCs - 2014

Introduction to Direct 3D 12 by Ivan Nevraev - 2014

Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14 - 2014

Announcing new DirectX 12 features

Two Shader Compilers of Direct3D 12 - 2019

Initializing DX12 Textures After Allocation and Aliasing - 2020

Secrets of Direct3D 12: Copies to the Same Buffer - 2020

Using DXC In Practice - 2019

Coming to DirectX 12: More control over memory allocation - 2019

Coming to DirectX 12— Sampler Feedback: some useful once-hidden data, unlocked - 2019

A Look Inside D3D12 Resource State Barriers - 2019

Living with Vulkan and DirectX 12 - 2019

Secrets of Direct3D 12: Resource Alignment - 2020

Variable Rate Shading Tier 1 with Microsoft DirectX* 12 from Theory to Practice - 2020

DirectX 12 Sampler Feedback | Claire Andrews - 2020Nvidia - DirectX - 2020

Announcing DirectX 12 Ultimate - 2020

Secrets of Direct3D 12: Copies to the Same Buffer - 2020

Two Shader Compilers of Direct3D 12

Using AMD FreeSync™ Premium Pro HDR: Code Samples - 2020

New in DirectX— Feature Level 12_2

https://devblogs.microsoft.com/directx/new-in-directx-feature-level-12_2/

Binding Bindlessly

http://alextardif.com/Bindless.html

Porting your engine to Vulkan or DX12

https://www.youtube.com/watch?v=6NWfznwFnMs

Learning D3D12 from D3D11

http://alextardif.com/D3D11To12P1.html

http://alextardif.com/D3D11To12P2.html

http://alextardif.com/D3D11To12P3.html

An Opinionated Post on Modern Rendering Abstraction Layers

http://alextardif.com/RenderingAbstractionLayers.html

Binding Bindlessly

http://alextardif.com/Bindless.html


States and Barriers of Aliasing Render Targets

https://asawicki.info/news_1738_states_and_barriers_of_aliasing_render_targets


DirectX 12 Ultimate - Variable Rate Shading

https://gpuopen.com/videos/amd-rdna-2-directx-variable-rate-shading/


d3d12 - Vulkan

https://threadreaderapp.com/thread/1326203569335267331.html


States and Barriers of Aliasing Render Targets - 2020

https://asawicki.info/news_1738_states_and_barriers_of_aliasing_render_targets


An Opinionated Post on Modern Rendering Abstraction Layers

http://alextardif.com/RenderingAbstractionLayers.html


Binding Bindlessly

http://alextardif.com/Bindless.html


Learning D3D12 from D3D11

Part 1: Getting Started, Command Queues, and Fencing

http://alextardif.com/D3D11To12P1.html


Part 2: GPU Resources, Heaps, and Descriptors

http://alextardif.com/D3D11To12P2.html


Part 3: Textures

http://alextardif.com/D3D11To12P3.html


Advanced API Performance: Barriers - 2021

Advanced API Performance: Async Copy - 2021

Advanced API Performance: Async Compute and Overlap - 2021

Advanced API Performance: Command Buffers - 2021

Advanced API Performance: Memory and Resources - 2021

Advanced API Performance: Mesh Shaders - 2021


Viewing DirectX® 12 Named Resources with Radeon™ Memory Visualizer 1.3

Reader Question Answered 1 - Learning D3D12

Learning D3D12

Direct3D 12: Long Way to Access Data

Enhanced Barriers

Announcing HLSL 2021

Shader Assembly and D3D12 Root Signatures

Digital Dragons 2021: Adam Sawicki - Efficient Use of GPU Memory in Modern Games

Debugging For Graphics Programmers


Untangling Direct3D 12 Memory Heap Types and Pools

https://asawicki.info/news_1755_untangling_direct3d_12_memory_heap_types_and_pools


Variable Rate Compute Shaders on Xbox Series X|S

https://developer.microsoft.com/en-us/games/blog/variable-rate-compute-shaders-on-xbox-series-xs/


Variable Rate Shading, Tales from the Trenches on Series X|S

https://developer.microsoft.com/en-us/games/blog/variable-rate-shading,-tales-from-the-trenches-on-series-xs/


Untangling Direct3D 12 Memory Heap Types and Pools

https://asawicki.info/news_1755_untangling_direct3d_12_memory_heap_types_and_pools


Bindless rendering — Setup

https://blog.traverseresearch.nl/bindless-rendering-setup-afeb678d77fc