SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Practical Multi-core
          Multi-
Game Programming
          (noerror@hitel.net)
                   2009.9.13
•
    –             ,
    –
    –
    –
        •       Architect   NEW JOB


•
•
            .
•
    – IO           (   ,       )
       •
       •      IO
    – CPU                  (       )
       •
       • (3    )
•       3       (from Getting More from Multicore / Ian Lewis)
    – BSP (Bulk Synchronous Processing)
    – CSP (Communicating Sequential Processing)
    – TASK POOL
• IO
    –       CPU          100%
    –
BSP(1)
• BSP (Bulk Synchronized Process)
  –
      •
      •
      •
      •
  –
  –
      •
          – AI,
BSP(2)
•                                Update Thread

•         : Coding for                Buffer 0
    Multiple Cores / Bruce
    Dawson & Chuck
                                      Buffer 1
    Walbourn

                                 Render Thread
CSP
• CSP        (Communicating Sequential processing)
  –
  –
        •
        •              (Sleep   )




                       Anim                 Render

      Main
              A                     B       Render
                       Anim
Task Pool
• TASK POOL
   –
   –                   Task(JOB)
   – CPU
   – CSP
       • Seirialize
   – Context Switching
   –          Task

      Main            Anim     Anim   Render   Render    Anim
                                                        Render
                                                         Main
                                                        Thread 0


                      Anim     Anim   Render   Render    Anim
                                                        Render
                                                        Thread 1

                      Anim     Anim   Render   Render    Anim
                                                        Render
                                                        Thread 2

                      Anim     Anim   Render   Render
                                                        Thread 3
                                                         Anim
                                                        Render
(recall)
•
    – n
          •

    –         IOCP
• Context Switching
    –
      statck                          (context)
    –      Context Switching
• IOCP
•         P2P
•
•
• PhysX
•
•
•
IOCP
•             IOCP
    – IOCP
      •
          –               GQCS
              »

          –                 GQCS
              » Context Switching
          –
              »               SQL
                     Context Switching
          –
P2P
• P2P                  ,   respose
  – mainloop


      •                        ,
          , mainloop
      • ping                             (mainloop
                             ping                    )
  –              ,
      •                     Lock-Free FIFO QUEUE
(recall)
•   Lock-Free Queue
    –




    –                       =>                              +
            ~ (                                        .)
    –   (   : Saints Row Scheduler / Randall Turner)
• STL
    –
    –                                                           (   )
•
    –
    –       pseudo




    –                mainloop    IO
                            =>
    – sleep
        •                CPU
(1)
•
    – TerminateThread    X
       •                teminate         ???
(2)
•
    –   signal
(recall)
•
    – Semaphore
        •                 n



    – Mutex
        • Semaphore           1
    – Critical Section (win32)
        • Mutex                          . Spinlock

    – Event (win32)
        • Mutex
PhysX
•
    –
•
    –   ,           ,
(1)
•   ,                                Proxy




•       pseudo                        (
                 – Threadmain    )
(2)
•

•       texture   100
    ,
(3)
•                            ,       ,

•       Task Pool          Object        Update     Draw       Job
               queue
    pseudo                               (                 1
    Update             ,         2           Draw              ??)
(1)
• D3D
        Render                                           ??

• DrawPrimitive              RenderState
•
   – D3D          (          ) Command Buffer
                         ,
                                   <- Unreal3 (     )
   –                                              D3D




   – D3D 11       Display List        ^^
(2)
•
    –              Draw




    –                     DrawPrimitive
            (TLS
        )
•
    – Priority
    – Serialize


•
    – IO
    – Task


•

•
(recall)
•
    –                                      %

    – 40%                                2CPU   1.25       ,   25%
             . 30   => 37.5               (            ,        4
        43            )       GPU idle
/
• Coding for Multiple Cores, Bruce Dawson & Chuck Walbourn
• Multicore Strategies for Games, Aaron Lanterman
• Getting More from Multicore, Ian Lewis
• Threading 3D Game Engine Basics, Henry Gabb and Adam Lake
• Saints Row Scheduler, Randall Turner
• Lockless Programming Considerations for Xbox 360 and Microsoft
  Windows, Bruce Dawson
• An Optimistic Approach to Lock-Free FIFO Queues, Edya Ladan-
  Mozes and Nir Shavit
• Developing Gears of War in Unreal Engine 3, Michael Capps
• Multi-Threaded Rendering for Games, Matt Lees

Contenu connexe

En vedette

L22 multi-threading-introduction
L22 multi-threading-introductionL22 multi-threading-introduction
L22 multi-threading-introductionteach4uin
 
Elcuerpohumano1
Elcuerpohumano1Elcuerpohumano1
Elcuerpohumano1octubre11
 
threading and multi threading in java
threading and multi threading in javathreading and multi threading in java
threading and multi threading in javaHamza Shah
 
Design Pattern From Java To Ruby
Design Pattern From Java To RubyDesign Pattern From Java To Ruby
Design Pattern From Java To Rubyyelogic
 
Java package
Java packageJava package
Java packageCS_GDRCST
 
Interface in java By Dheeraj Kumar Singh
Interface in java By Dheeraj Kumar SinghInterface in java By Dheeraj Kumar Singh
Interface in java By Dheeraj Kumar Singhdheeraj_cse
 
Design Pattern From Java To Ruby
Design Pattern    From Java To RubyDesign Pattern    From Java To Ruby
Design Pattern From Java To RubyRobbin Fan
 

En vedette (12)

L22 multi-threading-introduction
L22 multi-threading-introductionL22 multi-threading-introduction
L22 multi-threading-introduction
 
Elcuerpohumano1
Elcuerpohumano1Elcuerpohumano1
Elcuerpohumano1
 
threading and multi threading in java
threading and multi threading in javathreading and multi threading in java
threading and multi threading in java
 
Design Pattern From Java To Ruby
Design Pattern From Java To RubyDesign Pattern From Java To Ruby
Design Pattern From Java To Ruby
 
Java package
Java packageJava package
Java package
 
Interface in java By Dheeraj Kumar Singh
Interface in java By Dheeraj Kumar SinghInterface in java By Dheeraj Kumar Singh
Interface in java By Dheeraj Kumar Singh
 
Packages in java
Packages in javaPackages in java
Packages in java
 
Threads in java
Threads in javaThreads in java
Threads in java
 
Packages and interfaces
Packages and interfacesPackages and interfaces
Packages and interfaces
 
Design Pattern From Java To Ruby
Design Pattern    From Java To RubyDesign Pattern    From Java To Ruby
Design Pattern From Java To Ruby
 
Java interfaces
Java interfacesJava interfaces
Java interfaces
 
Java packages
Java packagesJava packages
Java packages
 

Similaire à 09_Practical Multicore programming

オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)Ryousei Takano
 
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...Umbra Software
 
イマドキなNetwork/IO
イマドキなNetwork/IOイマドキなNetwork/IO
イマドキなNetwork/IOTakuya ASADA
 
MongoDB Basic Concepts
MongoDB Basic ConceptsMongoDB Basic Concepts
MongoDB Basic ConceptsMongoDB
 
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHackito Ergo Sum
 
MongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & AnalyticsMongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & AnalyticsServer Density
 
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...npinto
 
MIPS Assembly Language I
MIPS Assembly Language IMIPS Assembly Language I
MIPS Assembly Language ILiEdo
 
Making a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonMaking a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonJean-Philippe Doiron
 
How shit works: the CPU
How shit works: the CPUHow shit works: the CPU
How shit works: the CPUTomer Gabel
 
Memory efficient applications. FRANCESC ALTED at Big Data Spain 2012
Memory efficient applications. FRANCESC ALTED at Big Data Spain 2012Memory efficient applications. FRANCESC ALTED at Big Data Spain 2012
Memory efficient applications. FRANCESC ALTED at Big Data Spain 2012Big Data Spain
 
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...MongoDB
 
Enter the Snake Pit for Fast and Easy Spark
Enter the Snake Pit for Fast and Easy SparkEnter the Snake Pit for Fast and Easy Spark
Enter the Snake Pit for Fast and Easy SparkJon Haddad
 
軽快なPlan9 (第三回Kernel/VM探検隊)
軽快なPlan9 (第三回Kernel/VM探検隊)軽快なPlan9 (第三回Kernel/VM探検隊)
軽快なPlan9 (第三回Kernel/VM探検隊)Go Saito
 
Intro cs-lec1
Intro cs-lec1Intro cs-lec1
Intro cs-lec1BadrMaki
 
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation	[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation 종빈 오
 
DSL - Domain Specific Languages, Chapter 4, Internal DSL
DSL - Domain Specific Languages,  Chapter 4, Internal DSLDSL - Domain Specific Languages,  Chapter 4, Internal DSL
DSL - Domain Specific Languages, Chapter 4, Internal DSLHiro Yoshioka
 
第17回Cassandra勉強会: MyCassandra
第17回Cassandra勉強会: MyCassandra第17回Cassandra勉強会: MyCassandra
第17回Cassandra勉強会: MyCassandraShun Nakamura
 

Similaire à 09_Practical Multicore programming (20)

オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)
 
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
 
イマドキなNetwork/IO
イマドキなNetwork/IOイマドキなNetwork/IO
イマドキなNetwork/IO
 
MongoDB Basic Concepts
MongoDB Basic ConceptsMongoDB Basic Concepts
MongoDB Basic Concepts
 
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
 
MongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & AnalyticsMongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & Analytics
 
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
 
MIPS Assembly Language I
MIPS Assembly Language IMIPS Assembly Language I
MIPS Assembly Language I
 
Bigdata roundtable-storm
Bigdata roundtable-stormBigdata roundtable-storm
Bigdata roundtable-storm
 
Making a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonMaking a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie Tycoon
 
How shit works: the CPU
How shit works: the CPUHow shit works: the CPU
How shit works: the CPU
 
Memory efficient applications. FRANCESC ALTED at Big Data Spain 2012
Memory efficient applications. FRANCESC ALTED at Big Data Spain 2012Memory efficient applications. FRANCESC ALTED at Big Data Spain 2012
Memory efficient applications. FRANCESC ALTED at Big Data Spain 2012
 
Mongo db roma replication and sharding
Mongo db roma replication and shardingMongo db roma replication and sharding
Mongo db roma replication and sharding
 
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
 
Enter the Snake Pit for Fast and Easy Spark
Enter the Snake Pit for Fast and Easy SparkEnter the Snake Pit for Fast and Easy Spark
Enter the Snake Pit for Fast and Easy Spark
 
軽快なPlan9 (第三回Kernel/VM探検隊)
軽快なPlan9 (第三回Kernel/VM探検隊)軽快なPlan9 (第三回Kernel/VM探検隊)
軽快なPlan9 (第三回Kernel/VM探検隊)
 
Intro cs-lec1
Intro cs-lec1Intro cs-lec1
Intro cs-lec1
 
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation	[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
 
DSL - Domain Specific Languages, Chapter 4, Internal DSL
DSL - Domain Specific Languages,  Chapter 4, Internal DSLDSL - Domain Specific Languages,  Chapter 4, Internal DSL
DSL - Domain Specific Languages, Chapter 4, Internal DSL
 
第17回Cassandra勉強会: MyCassandra
第17回Cassandra勉強会: MyCassandra第17回Cassandra勉強会: MyCassandra
第17回Cassandra勉強会: MyCassandra
 

Plus de noerror

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlasnoerror
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용noerror
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집noerror
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법noerror
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문noerror
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템noerror
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법noerror
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법noerror
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrainsnoerror
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드noerror
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기noerror
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강noerror
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개noerror
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문noerror
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개noerror
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editornoerror
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개noerror
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁noerror
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성noerror
 

Plus de noerror (20)

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlas
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrains
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editor
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 

09_Practical Multicore programming

  • 1. Practical Multi-core Multi- Game Programming (noerror@hitel.net) 2009.9.13
  • 2. – , – – – • Architect NEW JOB • • .
  • 3. – IO ( , ) • • IO – CPU ( ) • • (3 )
  • 4. 3 (from Getting More from Multicore / Ian Lewis) – BSP (Bulk Synchronous Processing) – CSP (Communicating Sequential Processing) – TASK POOL • IO – CPU 100% –
  • 5. BSP(1) • BSP (Bulk Synchronized Process) – • • • • – – • – AI,
  • 6. BSP(2) • Update Thread • : Coding for Buffer 0 Multiple Cores / Bruce Dawson & Chuck Buffer 1 Walbourn Render Thread
  • 7. CSP • CSP (Communicating Sequential processing) – – • • (Sleep ) Anim Render Main A B Render Anim
  • 8. Task Pool • TASK POOL – – Task(JOB) – CPU – CSP • Seirialize – Context Switching – Task Main Anim Anim Render Render Anim Render Main Thread 0 Anim Anim Render Render Anim Render Thread 1 Anim Anim Render Render Anim Render Thread 2 Anim Anim Render Render Thread 3 Anim Render
  • 9. (recall) • – n • – IOCP • Context Switching – statck (context) – Context Switching
  • 10. • IOCP • P2P • • • PhysX • • •
  • 11. IOCP • IOCP – IOCP • – GQCS » – GQCS » Context Switching – » SQL Context Switching –
  • 12. P2P • P2P , respose – mainloop • , , mainloop • ping (mainloop ping ) – , • Lock-Free FIFO QUEUE
  • 13. (recall) • Lock-Free Queue – – => + ~ ( .) – ( : Saints Row Scheduler / Randall Turner) • STL – – ( )
  • 14. – – pseudo – mainloop IO => – sleep • CPU
  • 15. (1) • – TerminateThread X • teminate ???
  • 16. (2) • – signal
  • 17. (recall) • – Semaphore • n – Mutex • Semaphore 1 – Critical Section (win32) • Mutex . Spinlock – Event (win32) • Mutex
  • 18. PhysX • – • – , ,
  • 19. (1) • , Proxy • pseudo ( – Threadmain )
  • 20. (2) • • texture 100 ,
  • 21. (3) • , , • Task Pool Object Update Draw Job queue pseudo ( 1 Update , 2 Draw ??)
  • 22. (1) • D3D Render ?? • DrawPrimitive RenderState • – D3D ( ) Command Buffer , <- Unreal3 ( ) – D3D – D3D 11 Display List ^^
  • 23. (2) • – Draw – DrawPrimitive (TLS )
  • 24. – Priority – Serialize • – IO – Task • •
  • 25. (recall) • – % – 40% 2CPU 1.25 , 25% . 30 => 37.5 ( , 4 43 ) GPU idle
  • 26. /
  • 27. • Coding for Multiple Cores, Bruce Dawson & Chuck Walbourn • Multicore Strategies for Games, Aaron Lanterman • Getting More from Multicore, Ian Lewis • Threading 3D Game Engine Basics, Henry Gabb and Adam Lake • Saints Row Scheduler, Randall Turner • Lockless Programming Considerations for Xbox 360 and Microsoft Windows, Bruce Dawson • An Optimistic Approach to Lock-Free FIFO Queues, Edya Ladan- Mozes and Nir Shavit • Developing Gears of War in Unreal Engine 3, Michael Capps • Multi-Threaded Rendering for Games, Matt Lees