Multi-monitor Game Development Thomas Fortier AMD Graphics Developer Relations

Slides:



Advertisements
Similar presentations
A Real Time Radiosity Architecture for Video Games
Advertisements

Tessellation in a Low Poly World Nicolas Thibieroz AMD Graphics Products Group Original materials from Bill Bilodeau 1 15/01/2014.
Introduction to Direct3D 10 Course Porting Game Engines to Direct3D 10: Crysis / CryEngine2 Carsten Wenzel.
Using Graphics Processors for Real-Time Global Illumination UK GPU Computing Conference 2011 Graham Hazel.
DirectX11 Performance Reloaded
Vertex Buffer Objects, Vertex Array Objects, Pixel Buffer Objects.
Maximizing Multi-GPU Performance
Agenda Windows Display Driver Model (WDDM) What is GPUView?
Dragon Age II DX11 Technology
Improving Performance in Your Game
© 2013 Teradici Corporation.. Product Overview PCoIP Hardware Accelerator Date SPEAKER NAME Speaker Title.
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
6 SQL Server Integration Same manageability, administration & development experience Integrated queries & transactions Integrated HA and backup/restore.
Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
ONYX RIP Version Technical Training General. Overview General Messaging and What’s New in X10 High Level Print and Cut & Profiling Overviews In Depth.
Tutorial on Basic Usage
Never miss a moment! Photosequence in Windows 8.1 Preview. Building an app using Capture APIs. Camera controls in Windows 8.1 Preview. Adding custom.
Tools for Investigating Graphics System Performance
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
Hybrid PC architecture Jeremy Sugerman Kayvon Fatahalian.
Introduction To Form Builder
1 Chapter 5: Introduction To Form Builder. 2 Forms  Why Do We Use Form Builder?  Why Don’t We Use SQL Only?!
Adaptive Streaming and Rendering of Large Terrains: a Generic Solution WSCG 2009 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes,
Mapping Computational Concepts to GPU’s Jesper Mosegaard Based primarily on SIGGRAPH 2004 GPGPU COURSE and Visualization 2004 Course.
Making your own stereo slide show in PowerPoint Making your own stereo slide show in PowerPoint.
 Monitor displays use liquid crystal display (LCD) or cathode ray tube (CRT) technology  Resolution is also a factor when it comes to monitors. It’s.
NVIDIA Confidential. Product Description World’s most popular 3D content creation tool Used across Design, Games and VFX markets Over +300k 3ds Max licenses,
Chapter 17 Putting It All Together. Viewing the Preloader To view the preloader, 1.CTRL-Enter to test the movie. 2.View > Simulate Download.
High Performance in Broad Reach Games Chas. Boyd
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Do not redistribute. Adobe Gaming SDK Casual Connect Europe 2013 Tom Krcha.
CSE 381 – Advanced Game Programming 3D Game Architecture.
© Copyright Khronos Group, Page 1 Harnessing the Horsepower of OpenGL ES Hardware Acceleration Rob Simpson, Bitboys Oy.
Integrate your game with Windows platform Vladimir Kolesnikov Technical Evangelist
Havok. ©Copyright 2006 Havok.com (or its licensors). All Rights Reserved. HavokFX Next Gen Physics on ATI GPUs Andrew Bowell – Senior Engineer Peter Kipfer.
Visibility Queries Using Graphics Hardware Presented by Jinzhu Gao.
Songtao He1,2, Yunxin Liu1, Hucheng Zhou1
® GDC’99 Performance Tuning with Intel ® Graphics Tools Larry Wickstrom Sr. Software Engineer Judith Stanley Application Engineer Intel Corporation March.
Mark Nelson Graphics hardware & Game worlds Fall 2013
Kenneth Hurley Sr. Software Engineer
Cg Programming Mapping Computational Concepts to GPUs.
GPU in HPC Scott A. Friedman ATS Research Computing Technologies.
Quality Requirements in Mobile Games Ville Vatén Head of Post Production / Telcogames
NVTune Kenneth Hurley. NVIDIA CONFIDENTIAL NVTune Overview What issues are we trying to solve? Games and applications need to have high frame rates Answer.
The Development of Graphics Cards. ISA Slots on Main board.
OpenGL Buffer Transfers Patrick Cozzi University of Pennsylvania CIS Spring 2012.
High Performance Java Swing Animation David Wallace Croft Presented to the Plano Java Users Group Plano, TX Copyright 2004 David Wallace Croft.
6 th Annual Focus Users’ Conference 6 th Annual Focus Users’ Conference Import Testing Data Presented by: Adrian Ruiz Presented by: Adrian Ruiz.
Image Synthesis Rabie A. Ramadan, PhD 4. 2 Review Questions Q1: What are the two principal tasks required to create an image of a three-dimensional scene?
Drawing structure Strategies for compelling images 1.
My Coordinates Office EM G.27 contact time:
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Welcome PROFESSIONAL HARDWARE: THE KEY TO SUCCESS FOR 3D DESIGN – PART 1 –
Postmortem: Deferred Shading in Tabula Rasa Rusty Koonce NCsoft September 15, 2008.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
1 Chapter 6: Creating Oracle Data Block Forms. 2 Forms  Application with a graphical user interface that looks like a paper form  Used to insert, update,
Enis Microsoft Avoiding common Windows Phone and Windows Store app certification failures.

VMM-Independent Graphics Acceleration H. Andrés Lagar-Cavilla, U of Toronto Niraj Tolia (CMU), Eyal de Lara (Toronto), M. Satyanarayanan.
VMGL: VMM-Independent Graphics Acceleration H. Andrés Lagar-Cavilla, U of Toronto Niraj Tolia (CMU), Eyal de Lara (Toronto), M.
From VIC (VRVS) to ViEVO (EVO) 3 years of experiences with developing of video application VIC for VRVS allowed us to develop a new video application.
The Consolidation Process The Intercompany Integration Solution for SAP Business One Version 2.0 for SAP Business One 9.1 Welcome to the course on the.
GPU Architecture and Its Application
Scene Manager Creates and places movable objects like lights and cameras so as to access them efficiently, e.g. for rendering. Loads and assembles world.
Show Me! ePublisher & Distributed Publishing
The Consolidation Process The Intercompany Integration Solution for SAP Business One Version 2.0 for SAP Business One 9.1 Welcome to the course on the.
Cloud Connect Seamlessly
Static Image Filtering on Commodity Graphics Processors
What’s new for Silverlight & XNA developers in Windows Phone Mango
Guarantee Hyper-V, System Center Performance and Autoscale to Microsoft Azure with Application Performance Control System from VMTurbo MICROSOFT AZURE.
Desktop Window Manager
Presentation transcript:

Multi-monitor Game Development Thomas Fortier AMD Graphics Developer Relations

Multi-monitor & multi-GPU game development Topics Covered in this Session  Eyefinity technology overview.  Multi-monitor gameplay & impact on game design.  Developing for Eyefinity solutions.  Eyefinity certification program.

Multi-monitor & multi-GPU game development ATI Eyefinity Technology Overview  ATI’s latest multi-monitor technology.  Enables up to 3/6 displays per graphic card.  Supports multi-monitor gaming.  Required setup: Radeon 5000 Series Vista / Win7 Displays with identical resolutions + +

Multi-monitor & multi-GPU game development 3x1 landscape ATI Eyefinity Technology Overview 3x1 portrait 3x2 landscape

Multi-monitor & multi-GPU game development ATI Eyefinity Technology Overview 3x display width 1x display height End user Windows Rendering surface

Multi-monitor & multi-GPU game development Multi-monitor Gameplay Considerations End users expect the following: 1.Eyefinity display modes in game graphics options. 2.Larger field of view. 3.Equal or better gameplay experience.

Multi-monitor & multi-GPU game development Developing for Eyefinity Solutions Support for Eyefinity display modes: 1.Don’t exclude non-standard display modes. 2.Don’t exclude non-standard aspect ratios. Example display modes for a 3x1 setup: Native modes – 1600 x 1200, 1280 x 1024, etc. Eyefinity modes – 4800 x 1200, 3840 x 1024, etc.

Multi-monitor & multi-GPU game development Developing for Eyefinity Solutions Support for increased field of view: 1.Adjust projection matrix so that it matches display mode & aspect ratio.

Multi-monitor & multi-GPU game development Developing for Eyefinity Solutions Multi-monitor gameplay experience: 1.Menu & UI element placement considerations. 2.Cut scenes placement.

Multi-monitor & multi-GPU game development Querying Eyefinity State Information  Statically link to: atigpu.lib  Include header file: atigpud.h  Call AtiGetMultiMonitorConfig() to retreive: Eyefinity state information Per display state information

Multi-monitor & multi-GPU game development Querying Eyefinity State Information  Eyefinity state information: On/off, resolution, display grid configuration, etc.  Per display information: Grid coord, rendering rect, visible rect, etc. display width display height Eyefinity width Eyefinity height [0,0] [0,1] [0,2]

Multi-monitor & multi-GPU game development Developing for Eyefinity Solutions Other gameplay considerations: 1.RTS scrolling. 2.First person shooting crosshair placement. 3.Let us know if you come across any other issues...

Multi-monitor & multi-GPU game development Eyefinity Certification Program Eyefinity Ready 1.Support for Eyefinity display modes. 2.Support for expanded field of view. Eyefinity Validated 1.Eyefinity Ready with… 2.Proper placement of menu & UI elements.

Multi-monitor & multi-GPU game development Key Takeaways  Multi-monitor solutions matter!  Test and profile with multi-monitor systems. Don’t hardcode specific multi-monitor configurations. Handle any resolution & aspect ratio Properly handle menu, HUD, & cut scene placement.  Refer to AMD Eyefinity SDK samples ati.amd.com/developer

Maximizing Multi-GPU Performance Thomas Fortier AMD Graphics Developer Relations

Multi-monitor & multi-GPU game development Topics Covered in this Session  Why multi-GPU solutions matter.  Hardware & driver considerations.  Impact on game design.  Profiling & performance gains.

Multi-monitor & multi-GPU game development Dual-GPU boards Multi-board systems Hybrid graphics Why Multi-GPU Solutions Matter

Multi-monitor & multi-GPU game development Why Support Multi-GPU in Your Game  Growing market share of multi-GPU solutions.  All game and hw reviews integrate multi-GPU solutions.  Expectation by gamers is that game framerate should “just scale” with additional GPUs.  The competition is doing it! Market trend

Multi-monitor & multi-GPU game development Crossfire Technical Overview

Multi-monitor & multi-GPU game development Crossfire Technical Overview Frame 1 Frame 3 Frame 5 Frame 7 Frame 2 Frame 4 Frame 6 Frame 8

Multi-monitor & multi-GPU game development Alternate Frame Rendering  Alternate frame rendering leads to two types of problems: Interframe dependencies CPU/GPU synchronization points  In each case, parallelism between CPU and GPUs is lost.

Multi-monitor & multi-GPU game development Querying the Number of GPUs  Statically link to: atigpu.lib  Include header file: atigpud.h  Call this function: INT count = AtiMultiGPUAdapters(); In windowed mode, set Count to 1

Multi-monitor & multi-GPU game development Interframe Dependencies Frame 1 Frame 3 Frame 5 Frame 7 Frame 2 Frame 4 Frame 6 Frame 8

Multi-monitor & multi-GPU game development Interframe Dependencies  When are interframe dependencies a problem? Depends on frequency of P2P blits.  Solutions: Create n copies of the resource triggering P2P blits. Associate each copy of the resource to a specific GPU. resource[frame_num % num_gpus] Repeat resource updates for n frames.

Multi-monitor & multi-GPU game development Interframe Dependencies Frame 1 Frame 3 Frame 5 Frame 7 Frame 2 Frame 4 Frame 6 Frame 8

Multi-monitor & multi-GPU game development Interframe Dependencies Frame 1 Frame 3 Frame 5 Frame 7 Frame 2 Frame 4 Frame 6 Frame 8

Multi-monitor & multi-GPU game development Interframe Dependencies  There are many ways to update resources using the GPU: Drawing to Vertex / Index Buffers Stream Out CopyResource() CopySubresourceRegion() GenerateMips() ResolveSubresource() Etc…

Multi-monitor & multi-GPU game development CPU/GPU Synchronization Points Frame 1 Frame 3 Frame 2 Frame 4 Frame 5

Multi-monitor & multi-GPU game development CPU/GPU Syncs - Queries  Having the driver block on a query starves the GPU queues, and limits parallelism.  Solutions: Don’t block on query results. Don’t have queries straddle across frames. For queries issued every frame, create a query object for each GPU. Pick up query results n frames after it was issued.

Multi-monitor & multi-GPU game development CPU/GPU Syncs – CPU Access to GPU Resources  Triggers pipeline stalls because driver blocks waiting on GPU at lock/map call.  Followed by a P2P blit at unlock/unmap call.  Often results in negative scaling…  Solutions: DX10/DX11 – Stream to and copy from staging textures. DX9 – Stream to and copy from sysmem textures. DX9 – Never lock static vertex/index buffers, textures.

Multi-monitor & multi-GPU game development Multi-GPU Performance Gains  What kind of performance scaling should you expect from multi-GPU systems? Function of CPU/GPU workload balance. Typical for 2 GPUs is 2X scaling. For 3 & 4 GPUs, varies from game to game.

Multi-monitor & multi-GPU game development Crossfire Profiling  Make sure to be GPU bound. Test framerate scaling with resolution change.  Test for multi-GPU scaling. Rename app exe to ForceSingleGPU.exe.  Test for texture interframe dependencies. Rename app exe to AFR-FriendlyD3D.exe.  Remove queries.  Check for CPU locks of GPU resources.

Multi-monitor & multi-GPU game development Key Takeaways  Multi-GPU solutions matter!  Test and profile with multi-GPU systems. Properly handle interframe dependencies. Check for CPU locks of GPU resources. Don’t block on queries.  Refer to AMD Crossfire SDK samples ati.amd.com/developer CrossFire Detect & AFR-Friendly projects.

Multi-monitor & multi-GPU game development Thank You Thomas Fortier –