From DirectX® to OpenGL Siggraph 2013

Karl Hillesland AMD Overview

• Our use of DirectX and OpenGL • How to help moving

© Copyright , 2012 - Page 2 Sushi DX

Leo (DX11)

Ruby (DX9, DX10)

© Copyright Khronos Group, 2012 - Page 3 Sushi GL

TressFX w/Mutex

Ptex AMD_SparseTexture Demand Paging

© Copyright Khronos Group, 2012 - Page 4 Why Another API?

• Access to new features • Platform support • New perspectives

© Copyright Khronos Group, 2012 - Page 5 DirectX

• Who are they? - Mostly game developers - There are a lot of them • What do they know? - Real-time rendering - GPUs and drivers - OpenGL (ES) 1 or 2? • Similar crowds - PS3TM developers - OpenGL -> DX

All of these skills are easily transferable

© Copyright Khronos Group, 2012 - Page 6 OpenGL for DirectX Programmers

• They don’t need basic concepts • Don’t even need advanced concepts • What do they need? - Translations - Concept differences

• Course at Siggraph Asia 2012 - Short (1:45)

• With tweaks for Siggraph Asia 2013 • GDC?

© Copyright Khronos Group, 2012 - Page 7 Translation Table: Draw Calls

OpenGL D3D glDrawArrays Draw glDrawArraysInstanced DrawInstanced(…,0) glDrawArraysInstancedBaseInstance DrawInstanced glDrawArraysIndirect DrawInstancedIndirect glMultiDrawArrays for(int i=0; i

© Copyright Khronos Group, 2012 - Page 8 Translation and Concept

© Copyright Khronos Group, 2012 - Page 9 Concepts

• Bind Semantics • Program Objects • “Views” • UAVs ≠ Render Target

• TexStorage • TexImage

© Copyright Khronos Group, 2012 - Page 10 UAV vs Image

Draw Draw Draw VS Draw VS

HS TC TE Stall DS Stall (opt) GS GS FS Image PS UAV VS VS FB RT Ouput merger

D3D11 OpenGL 4.3

© Copyright Khronos Group, 2012 - Page 11 Wrap Up

It’s worth targeting the specific needs of DirectX programmers interested in OpenGL

Thank You!

© Copyright Khronos Group, 2012 - Page 12