Skip to content

A sandbox to take a deep dive into DXGI features.

Notifications You must be signed in to change notification settings

toivjon/dxgi-sandbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dxgi-sandbox

This sandbox is dedicated for my personal study about how the Microsoft DirectX Graphics Infrastructure (DXGI) works.

DXGI is used by the following DirectX versions:

  • DirectX 10
  • DirectX 11
  • DirectX 12

Study blog can be found here: https://hitbybits.blogspot.com/

DXGI Versions

Version Header Minimum Windows Platform Version Improvements
1.0 dxgi.h Windows Vista The base version.
1.1 dxgi.h Windows Vista (SP2) - Support for synchronized shared surfaces
- Support for high color
- Support for maximum frame latency control
- Support for adapter enumeration ordering
- Support for BGRA
1.2 dxgi1_2.h Windows 7 (Platform Update) - Support for stereo swap chain
- Support for flip-model swap chain
- Support for desktop duplication
- Support for 16 bpp formats
- Support for debugging APIs
- Optimization of the use of video memory
- Optimization for presentations
1.3 dxgi1_3.h Windows 8.1 - Support for DXGI adapter memory trim
- Support for multi-plane overlays
- Support for overlapping and scaled swap chains
- Support for selecting backbuffer subregion for swap chain
- Support for lower-latency swap chain presentation
1.4 dxgi1_4.h Windows 10 - Support for cheaper adapter enumeration
- Support for video memory budget tracking
- Support for invariant backbuffer identity
- Support for alternate frame rendering (AFR)
- Fullscreen state no longer owns the display
1.5 dxgi1_5.h Windows 10 - Support for Hich Dynamic Range (HDR)
- Support for Wide Color Gamut (WCG)
- Support for flexible and performant output duplication
- Support for offering and reclaiming resources
1.6 dxgi1_6.h Windows 10 - Support for listening adapter enumeration change events
- Support for adapter enumeration ordering prefence
- Support for checking adapter synchronization object features
- Support for detecting HDR display detection

DXGI Interface Types

alt text

Interface Name Since Description
IUnknown 1.0 The root interface for all COM interfaces.
IDXGISwapChainMedia 1.3 Represents an access to request a seamless change to specific refresh rate.
IDXGIFactoryMedia 1.3 Represents an access to build and DirectComposition surface swap chains.
IDXGIObject 1.0 The base interface for most DXGI objects.
IDXGIDecodeSwapChain 1.3 Represents a swap chain used to show video data on DirectComposition surface.
IDXGIDisplayControl 1.2 Represents stereoscopic 3D display behavior and status.
IDXGIFactory 1.0 A factory object used to build DXGI objects.
IDXGIAdapter 1.0 Represents a display subsystem containing GPUs, DACs and video memory.
IDXGIDevice 1.0 Represents an abstraction of an DXGI object that produce image data.
IDXGIDeviceSubObject 1.0 An abstraction for all objects that are tied to a DXGI device.
IDXGIOutput 1.0 Represents an adapter output such as monitor or television.
IDXGIOutputDuplication 1.2 Represents an access to acquire and manipulate duplicated desktop images.
IDXGISurface 1.0 Represents an 2D image-data section in memory.
IDXGIKeyedMutex 1.1 Represents a mutex used to synchronized access to a shared resource.
IDXGISwapChain 1.0 Represents a swap chain for presenting surfaces to an output.
IDXGIResource 1.0 Represents a shareable resource within a memory.

Some interfaces have extension(s) where the name has been suffixed with an extension index (e.g. IDXGIAdapter3).

Sources

DXGI Documentation

IUnknown Documentation

About

A sandbox to take a deep dive into DXGI features.

Topics

Resources

Stars

Watchers

Forks

Languages