richard thomson daz 3d www daz3d com
Download
Skip this Video
Download Presentation
Direct3d 11 Preview Utah code camp fall 2008

Loading in 2 Seconds...

play fullscreen
1 / 35

Direct3d 11 Preview Utah code camp fall 2008 - PowerPoint PPT Presentation


  • 204 Views
  • Uploaded on

Richard Thomson DAZ 3D www.daz3d.com. Direct3d 11 Preview Utah code camp fall 2008. Direct3D 11. CTP in November 2008 DirectX SDK Vista (and beyond) only, not on XP Evolution of Direct3D 10 Compatible with D3D 10 cards. Evolution of Direct3D. Direct3D 9

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Direct3d 11 Preview Utah code camp fall 2008' - belva


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
direct3d 11
Direct3D 11
  • CTP in November 2008 DirectX SDK
  • Vista (and beyond) only, not on XP
  • Evolution of Direct3D 10
  • Compatible with D3D 10 cards
evolution of direct3d
Evolution of Direct3D
  • Direct3D 9
    • Stable, been around for a while
    • Last version to be deployed on Win XP
  • Direct3D 10
    • First Vista-only version
    • Big change from D3D 9
  • Direct3D 10.1
    • Incremental tweak to D3D 10
direct3d 10 10 1 11 vs 9
Direct3D 10/10.1/11 vs. 9
  • Enumeration factored out to DXGI
  • Same DXGI used for 10, 10.1 and 11
  • Divide render/texture states into chunks
  • Chunks of state are immutable objects
  • “Device state” consists of set of assigned state chunks
  • Introduces new shader stages beyond vertex and pixel shaders
  • Tighter API specification => no CAPS
direct3d 11 focus
Direct3D 11 Focus
  • Scalability and performance
  • Improving the development experience
  • Extending the reach of the GPU
direct3d 11 new features
Direct3D 11 New Features
  • Tessellation
  • Compute Shader
  • Multithreading
  • Shader Subroutines
  • Improved Texture Compression
  • Other Features
tessellation
Tessellation

Input Assembler

Direct3D 10 pipeline

Plus

Three new stages for Tessellation

Vertex Shader

HullShader

Tessellator

Domain Shader

Stream Output

Geometry Shader

Rasterizer

Pixel Shader

Output Merger

hull shader
Hull Shader

HS input:

patch control pts

One Hull Shader invocation per patch

HullShader

HS output:

Patch control pts after

Basis conversion

  • HS output:
  • TessFactors (how much to tessellate)
  • fixed tessellator mode declarations

Tessellator

DomainShader

hull shader syntax
Hull Shader Syntax

[patchsize(12)]

[patchconstantfunc(MyPatchConstantFunc)]

MyOutPoint main(uint Id : SV_ControlPointID,

InputPatch InPts)

{

MyOutPoint result;

result = TransformControlPoint( InPts[Id] );

return result;

}

tessellator
Tessellator

HullShader

Note: Tessellator does not see control points

  • TS input:
  • TessFactors (how much to tessellate)
  • fixed tessellator mode declarations

Tessellator

  • TS output:
  • U V {W} domain points
  • TS output:
  • topology
  • (to primitive assembly)

Tessellator operates per patch

Domain Shader

domain shader
Domain Shader

HullShader

Tessellator

  • DS input:
  • control points
  • TessFactors
  • DS input:
  • U V {W} domain points

One Domain Shader invocation per point from Tessellator

  • DS output:
  • one vertex

Domain Shader

domain shader syntax
Domain Shader Syntax

void main( out MyDSOutput result, float2 myInputUV : SV_DomainPoint,MyDSInputDSInputs,

OutputPatch ControlPts, MyTessFactorstessFactors ){

result.Position =

EvaluateSurfaceUV( ControlPoints, myInputUV );}

single pass example
Single Pass Example

hull shader

tessellator

domain shader

vertex shader

Tessellate!

Evaluate

surface

including

displacement

Animate/skin

Control

Points

Transform basis,

Determine how

much to tessellate

Tess

Factors

U V {W}

domain points

control points

in Bezier patch

transformed

control points

patch

control points

displacement

map

Sub-D Patch

Bezier Patch

current authoring pipeline
Current Authoring Pipeline

(Rocket Frog Taken From Loop &Schaefer, "Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches“)

Animation

Displacement Map

Sub-D Modeling

Generate LODs

Polygon Mesh

new authoring pipeline
New Authoring Pipeline

(Rocket Frog Taken From Loop &Schaefer, "Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches“)

Animation

Displacement Map

Sub-D Modeling

Optimally Tessellated Mesh

GPU

tessellation summary
Tessellation Summary
  • Helps us get closer to eliminating “pointy heads”
  • Scales visual quality across PC hardware configurations
  • Supports performance increases
    • Coarse model = compression, faster I/0 to GPU
    • Rendering tailored to each end user’s hardware
  • Better cross-platform (Windows + Xbox 360) development experience
    • Xbox 360 has a subset of D3D11’s tessellation
    • Parity = ease of cross-platform development
    • Extra features = innovation for Windows gaming
  • Render content as the artist created it!
more on tessellation
More on Tessellation
  • GameFest 2008 Slides and Audio
    • “Direct3D 11 Tessellation”
      • Kev Gee, Microsoft
    • “Advanced Topics in GPU Tessellation”
      • Natasha Tatarchuk, AMD/ATI
    • “Water-Tight, Textured, Displaced Subdivision Surface Tessellation Using Direct3D 11”
      • Ignacio Castano, NVIDIA
general purpose gpu
General Purpose GPU
  • Data Parallel Computing
  • GPU performance continues to grow
  • Many applications scale well to massive parallelism without tricky code changes
  • Direct3D is the API for talking to GPU
  • How do we expand Direct3D to GPGPU?
compute shader
Compute Shader

Input Assembler

Vertex Shader

HullShader

Tessellator

Domain Shader

Stream Output

Geometry Shader

Rasterizer

Data Structure

Compute Shader

Pixel Shader

Output Merger

Direct3D 10 pipeline

Plus

Three new stages for Tessellation

Plus

Compute Shader

integrated with direct3d
Integrated with Direct3D
  • Fully supports all Direct3D resources
  • Targets graphics/media data types
  • Evolution of DirectX HLSL
  • Graphics pipeline updated to emit general data structures…
  • …which can then be manipulated by compute shader…
  • And then rendered by Direct3D again
target applications
Target Applications
  • Image/Post processing:
    • Image Reduction
    • Image Histogram
    • Image Convolution
    • Image FFT
  • A-Buffer/OIT
  • Ray-tracing, radiosity, etc.
  • Physics
  • AI
computing a histogram
Computing a Histogram

Histogram()

{

shared int Histograms[16][256]; // array of 16

float3 vPixel = load( sampler, sv_ThreadID );

float fLuminance = dot( vPixel, LUM_VECTOR );

intiBin = fLuminance*255.0f;

// compute bin to increment

intiHist = sv_ThreadIDInGroup & 16; // use thread index

Histograms[iHist][iBin] += 1; // update bin

// enable all threads in group to complete

SynchronizeThreadGroup;

computing a histogram 2
Computing a Histogram 2

// Write register histograms out to memory:

iBin = sv_ThreadIDInGroup.x;

if (sv_ThreadID.x < 256)

{

for (iHist = 0; iHist < 16; iHist++)

{

int2 destAddr = int2(iHist, iBin);

OutputResource.add(destAddr,

Histograms[iHist][iBin]); // atomic

}

}

}

compute shader summary
Compute Shader Summary
  • Enables much more general algorithms
  • Transparent parallel processing model
  • Full cross-vendor support
  • Broadest possible installed base
  • GameFest 2008:
    • “Direct3D 11 Compute Shader – More Generality for Advanced Techniques”
      • Chas Boyd, Microsoft
multithreading
Multithreading
  • Enables distribution across threads of
    • Application code
    • Runtime
    • Driver
  • Device: free threaded resource creation
  • Immediate Context: your single primary device for state & draws
  • Deferred Contexts: your per-thread devices for state & draws
  • Display Lists: Recorded sequence of graphics commands
  • Requires a driver update
shader subroutines
Shader Subroutines
  • Details
    • Calls must be fast
    • Binding applies to all primitives in a Draw call
    • Binding operation must be fast
    • Need parameter passing mechanism
    • Need access to textures, samplers, etc.
  • Advantages
    • Reduce register usage in Über-shaders
      • Not worst case of all if statements
    • Allows specialization of subroutines
improved texture compression
Improved Texture Compression
  • Why?
  • Existing block palette interpolations too simple
  • Results often rife with blocking artifacts
  • No high dynamic range (HDR) support
new texture formats
New Texture Formats
  • BC6 (aka BC6H)
    • High dynamic range
    • 6:1 compression (16 bpc RGB)
    • Targeting high (not lossless) visual quality
  • BC7
    • LDR with alpha
    • 3:1 compression for RGB or 4:1 for RGBA
    • High visual quality
compression of new formats
Compression of New Formats
  • Block compression (unchanged)
    • Each block independent
    • Fixed compression ratio
  • Multiple block types (new)
    • Tailored to different types of content
    • Smooth gradients vs. noisy normal maps
    • Varied alpha vs. constant alpha
  • Decompression results must be bit-accurate with spec
comparison results 1
Comparison Results 1

Orig

BC3

Orig

BC7

Abs Error

comparison results 2
Comparison Results 2

Orig

BC3

Orig

BC7

Abs Error

comparison results 3
Comparison Results 3

HDR Original at

given exposure

BC6 at

given exposure

Abs Error

other features
Other Features
  • Conservative oDepth
  • 2 GB Resources
  • Geometry shader instance programming model
  • Optional double support
  • Read-only depth or stencil views

Addressable Stream Out

Draw Indirect

Pull-model attribute eval

Improved Gather4

Min-LOD texture clamps

16K texture limits

Required 8-bit subtexel, submip filtering precision

thanks
Thanks

Allison Klein

Senior Lead Program Manager

Direct3DMicrosoft

Chas. Boyd

Architect

Windows Desktop & Gaming Technology

Microsoft

ad