The DirectX graphics system in Xbox One is a superset of Direct X 11.1 for Windows, with variations that are specific to the Xbox One console.
Direct3D 11.x Overview
The DirectX graphics system in Xbox One is a superset of Direct X 11.1 for Windows, with variations that are specific to the Xbox One console.
Direct3D Creation Flags and Supported Formats on Xbox One
There are some differences between Direct3D on Xbox One versus Windows regarding Direct3D creation flags, D3D_DRIVER_TYPE formats, swap chain formats, planar video formats, getting the full-screen state, HLSL, Windows Imaging Component (WIC), and Draw calls.
Feature Levels
Xbox One-specific Direct3D Feature Levels, such as 11.1, 11.0, 10.1, and 10.0.
Resources, Buffers, and Textures
Xbox Graphics (XG) is used for subresource management, including allocating graphics memory; specifying fast ESRAM memory for a buffer or texture; resource placement in memory for buffers and textures; using DMA engines for rapid compression/decompression; and multisampling and antialiasing.
The Monolithic D3D11 Runtime
The Monolithic (or Mono) version of the D3D11 runtime provides a high-performance runtime by using streamlined, Xbox-specific versions of DirectX APIs. This version is platform-specific and has the generalized code from D3D11 removed.
Performance Profiling
Xbox-specific interfaces are provided for performance profiling.
Direct3D Support for Suspend and Resume
Describes the process of suspending and resuming the Direct3D graphics rendering of a Game OS title.
Tessellation
Describes the advantages and disadvantages of Onchip and Offchip tessellation.
Triangle Tessellation
Demonstrates how to render a tessellated triangle on the Xbox One.
Simple Constant Buffers
Basic use of Constant Buffers on the Xbox One.
Indirect Buffer
Describes indirect buffers and how to implement them on the Xbox One.
Depth Buffer
Use a pixel shader to calculate the z-depth of individual pixels
Simple HLSL Lighting
Describes a simple vertex shader lighting system on the Xbox One.
Simple Animation
Describes how to make a simple animation system on the Xbox One.
Render to Texture
Render a 2D or 3D scene onto a texture resource
Texture Projection
Project a texture onto existing world geometry
Picture in Picture
Render a simple Picture-in-Picture window onscreen
Point Sprites
Point sprites are 2D textures that are drawn onscreen in a 3D application. On the Xbox One dev kit, render point sprites as follows.
Particle Effects
Particle effects include raindrops, smoke, and sparks, and are typically implemented using Point Sprites or 3D meshes.
Software Antialiasing
Describes implementing FXAA and SMAA shaders on the Xbox One.
Deferred Rendering
Describes Deferred Rendering and how to implement it on the Xbox One.
Bokeh Blurring Effect
The bokeh effect is the blurring of anything behind or in front of the Depth of Field (DOF) area. The word ‘bokeh’ is Japanese for ‘blur’. Bokeh and Depth of Field are terms that originate in photography. When a picture is taken, certain areas of the photo are in focus, and sharply displayed. Other areas are out of focus and blurry. Depth of Field refers to the area of apparent sharpness.
Mesh Rendering
A mesh is a collection of data used to display a 3D model onscreen. A mesh contains all the vertices, indices, and texture details necessary for rendering the model, plus any additional details that may be used during rendering. Commonly used additional details include animation frames, subset meshes, and materials.
Sphere-Based Frustum Culling
Sphere based frustum culling reduces vertex draw calls to improve performance.
Implementing an ESRAM Memory Manager
Enhanced Static Random Access Memory (ESRAM) is 32 MB of dedicated RAM that can only be directly accessed by the GPU. This memory has extremely high bandwidth, enabling the GPU to read/write data quickly. ESRAM can be used for just about any Direct3D resource, such as shadow maps, buffers, and textures. To get the biggest performance boost out of ESRAM, use it to store data that is accessed most frequently.
Hardware Overlays and Swap Chains
Techniques for Game OS developers to efficiently target the Background and HUD planes.
Executing Command Lists and Draw Bundles
Efficient execution of command lists and draw bundles includes wrapping ExecuteCommandList calls within BeginCommandListExecution and EndCommandListExecution calls; saving and restoring state; profiling command lists with INSTRUMENTED but checking RETAIL performance; and tuning your XMemAlloc allocator.
Draw Bundles
Draw bundles are objects similar to Direct3D 11 Command Lists. Draw bundles encapsulate a collection of state setting and draw calls, are recorded using a Deferred Context, and are a way to significantly reduce CPU overhead for object rendering.
CPU Access to DEFAULT Usage Resources
With Xbox One, CPU access to DEFAULT usage resources is opened up beyond that of standard D3D11.
Optimizing Monolithic Driver Performance
This section describes some APIs released in the March 2014 XDK that are geared towards maximizing performance of a title using the Monolithic D3D driver. Setting fast resources is the fastest way to set resources into the D3D11 pipeline, and an asynchronous compute-only immediate context can be used to submit compute shader workloads to the GPU that run in parallel with graphics workloads. These techniques do require considerably more programming work for the title developers.
Fast Semantics
Fast semantics provide significant CPU performance gains, but adopting them involves a number of changes in the use of D3D11X. Enabling fast semantics is straightforward, but adapting rendering to their use is more complex. Fast semantics on Direct3D 11.x is similar to the high-performance, low-level API aspect of Direct3D 12.
Fast Semantics Render Loops
There are several approaches to getting a basic render loop up and running for fast semantics. Sample code demonstrates each approach.
Multi-Draw calls
The Multi-draw calls combine the functionality of many draw calls into one.
Tiled Resources
With Tiled Resources, Direct3D supports hardware virtual resources, allowing the creation of massive textures using minimal memory, which can also improve performance.
Color and Depth Compression
This section describes the low level render target color compression and decompression formats used by the graphics hardware.
Descriptor Tables
Descriptor table support in Direct3D 11.x has been removed from the XDK.