Using explicit rendering APIs
Rendering basics
Sample application
API outline
Direct3D 11
DXGI and swapchain
Device and device context
Deferred contexts
Resources
Shaders and input
State management
Direct3D 11 problems
State management and shaders
Command buffer inefficiencies
Direct3D 12
Device
Command lists and queues
Descriptors and binding
Resources
Pipeline state
Synchronization
Vulkan
Render passes
Layers and extensions
Descriptors
API comparison
Debugging
Basic implementations
Direct3D 11
Factory and adapters
Device and device context
Swap chain
Depth render target
State management
Shaders
Buffers
Input layout
Samplers
Textures
Rendering
Direct3D 12
Debug and factory
Adapters and devices
Command queue
Command allocators and lists
Descriptor heaps
Swap chain
Fence
Root signature and pipeline state
Buffers
Textures
Rendering
Vulkan
Query instance extensions
Create instance
Initialize debug functionality
Query physical devices
Create device
Create swap chain
Create depth buffer
Create frame buffers
Create shader modules
Create descriptor set
Create renderpass
Create pipeline
Create images
Create image descriptors
Create buffers
Create command buffers
Synchronization
Rendering
Implementation advances
Direct3D 11 upgrades
Direct3D 12 upgrades
Vulkan upgrades
Further advice
Render architecture
Direct3D 12 bundles
Vulkan renderpasses
Memory management
Explicit multi-GPU
Conclusion
articles formatted by
Markdeep
✒
Vulkan
Figure 1:
Diagram of a basic implementation of Vulkan