DirectX12
Things you did run-time are now done at startup
Things you did at startup is now done offline
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
DirectX 12 Programming
Migrating Your Apps to DirectX* 12
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
Direct3D 12: Long Way to Access Data
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