GoForce 3D: Coming to a Pixel Near You

Similar documents
Coming to a Pixel Near You: Mobile 3D Graphics on the GoForce WMP. Chris Wynn NVIDIA Corporation

Feeding the Beast: How to Satiate Your GoForce While Differentiating Your Game

Graphics Processing Unit Architecture (GPU Arch)

Mobile Performance Tools and GPU Performance Tuning. Lars M. Bishop, NVIDIA Handheld DevTech Jason Allen, NVIDIA Handheld DevTools

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

Optimizing Games for ATI s IMAGEON Aaftab Munshi. 3D Architect ATI Research

Spring 2009 Prof. Hyesoon Kim

Spring 2011 Prof. Hyesoon Kim

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

Windowing System on a 3D Pipeline. February 2005

The Rasterization Pipeline

Optimizing DirectX Graphics. Richard Huddy European Developer Relations Manager

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology

Hot Chips Bringing Workstation Graphics Performance to a Desktop Near You. S3 Incorporated August 18-20, 1996

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Programming Graphics Hardware

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

Textures. Texture coordinates. Introduce one more component to geometry

Evolution of GPUs Chris Seitz

Mattan Erez. The University of Texas at Austin

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications

Models and Architectures

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Profiling and Debugging Games on Mobile Platforms

Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques

CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015

Scanline Rendering 2 1/42

CS427 Multicore Architecture and Parallel Computing

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

2D/3D Graphics Accelerator for Mobile Multimedia Applications. Ramchan Woo, Sohn, Seong-Jun Song, Young-Don

Texture Mapping II. Light maps Environment Maps Projective Textures Bump Maps Displacement Maps Solid Textures Mipmaps Shadows 1. 7.

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Dave Shreiner, ARM March 2009

CS 354R: Computer Game Technology

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

OpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller

GeForce4. John Montrym Henry Moreton

2.11 Particle Systems

Module 13C: Using The 3D Graphics APIs OpenGL ES

Graphics Hardware, Graphics APIs, and Computation on GPUs. Mark Segal

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University

Introduction to Computer Graphics with WebGL

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

Pipeline Operations. CS 4620 Lecture 14

Architectures. Michael Doggett Department of Computer Science Lund University 2009 Tomas Akenine-Möller and Michael Doggett 1

Monday Morning. Graphics Hardware

CS 4620 Program 3: Pipeline

The Need for Programmability

Computer Science 175. Introduction to Computer Graphics lib175 time: m/w 2:30-4:00 pm place:md g125 section times: tba

Overview. Technology Details. D/AVE NX Preliminary Product Brief

Course Recap + 3D Graphics on Mobile GPUs

GeForce3 OpenGL Performance. John Spitzer

Readings on graphics architecture for Advanced Computer Architecture class

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse

Texture Mapping and Sampling

Programming Guide. Aaftab Munshi Dan Ginsburg Dave Shreiner. TT r^addison-wesley

CS451Real-time Rendering Pipeline

I expect to interact in class with the students, so I expect students to be engaged. (no laptops, smartphones,...) (fig)

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

Performance OpenGL Programming (for whatever reason)

OpenGL ES 2.0 : Start Developing Now. Dan Ginsburg Advanced Micro Devices, Inc.

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

CS GAME PROGRAMMING Question bank

Real-Time Volumetric Smoke using D3D10. Sarah Tariq and Ignacio Llamas NVIDIA Developer Technology

Perspective Projection and Texture Mapping

GPGPU on Mobile Devices

Introduction to Shaders.

Working with Metal Overview

NVIDIA nfinitefx Engine: Programmable Pixel Shaders

Rasterization Overview

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

Multimedia in Mobile Phones. Architectures and Trends Lund

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

1. Introduction 2. Methods for I/O Operations 3. Buses 4. Liquid Crystal Displays 5. Other Types of Displays 6. Graphics Adapters 7.

Free Downloads OpenGL ES 3.0 Programming Guide

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI

CS8803SC Software and Hardware Cooperative Computing GPGPU. Prof. Hyesoon Kim School of Computer Science Georgia Institute of Technology

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games

CSE4030 Introduction to Computer Graphics

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

RSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog

3D Rendering Pipeline

Broken Age's Approach to Scalability. Oliver Franzke Lead Programmer, Double Fine Productions

Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Graphics Hardware. Instructor Stephen J. Guy

Enabling immersive gaming experiences Intro to Ray Tracing

Real-World Applications of Computer Arithmetic

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

Introduction. What s New in This Edition

POWERVR MBX & SGX OpenVG Support and Resources

Saving the Planet Designing Low-Power, Low-Bandwidth GPUs

Rendering Objects. Need to transform all geometry then

CONSOLE ARCHITECTURE

What was removed? (1) OpenGL ES vs. OpenGL

Mattan Erez. The University of Texas at Austin

Introduction to Visualization and Computer Graphics

Accelerating Realism with the (NVIDIA Scene Graph)

Hardware Accelerated Volume Visualization. Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences

Transcription:

GoForce 3D: Coming to a Pixel Near You CEDEC 2004

NVIDIA Actively Developing Handheld Solutions Exciting and Growing Market Fully Committed to developing World Class graphics products for the mobile Already in active development

Why Make Games For Handheld Devices? Emerging Market Ubiquitous Mobile Devices 500+ Million Units Worldwide 3 billion dollars in ringtone downloads 45 Million of 60 Million gamers have used handset for games Casual Gamers and Enthusiasts

Why Make Games For Handheld Devices? Technological Innovation raising the bar Real-time 3D Wireless Connectivity Worldwide Potential to Make Money

Challenges... Limited System Resources Non-Homogenous Development Space Diversity

... and more challenges Publishing and Distribution Digital Rights Management Unique Market Dynamics Service Providers and ARPU Increasing focus on DATA and Mobile Entertainment

Introducing... GoForce 3D Licensable 3D Core for Mobile Devices OpenGL ES / Direct3Dm compliant Low Power Architecture Integrated Unified SRAM Up to VGA resolution Modern Feature Set Targeted to run complex games at 30+Hz

GoForce 3D Feature Set Geometry Engine (float and fixed point) 16-bit color w/ 16-bit Z 40-bit color (internal) Multi-texturing w/ up to 4 simultaneous textures Bilinear / Trilinear Filtering Flexible Texture Formats 4-bit/8-bit palletized, DXT1 compression, more Fully Perspective Correct (color included) Sub-Pixel Accuracy Per-Pixel Fog Alpha Blending

Traditional Architecture Setup/Raster Texture Addr Texture Fog AlphaTest DepthTest AlphaBlend Deep pipeline (200 stages) Always have to go through all stages Optimized for OpenGL-style fast texturing Pipelines always clocking Fast, but too much power consumption ~750mW per 100M pixel/sec Mem Write (~200 pipe stages)

A Completely New Architecture for Ultra Low Power Flexible Fragment ALU Transform/Setup Raster Texture Fragment ALU Data Write (~50 pipe stages) Raster fragment generation and loop management Pipelines only trigger on activity Low Power < 50 mw per 100M pixel/sec During actual gameplay Very scalable architecture

Why Geometry? Current state of Handheld Processor Arm 7/Arm 9/+ Clock rates: 50Mhz 400Mhz No floating point Host bus is shared with dram bus Limited system memory Move as much processing onto the GPU More power efficient Better performance

Reduced pipeline for power savings Depth Complexity = 1 Textured No blend No Z Depth Complexity = 4 1. Textured tri, no blend 2. Textured tri, no blend with Z 3. Textured tri, no blend with Z 4. Textured tri, blend, with Z Simple scenes don t require fog, blending, alpha test, and even depth comparison for every triangle.

Rich 2D Features Solid color fill Source copy Alpha blending Fixed alpha value for all pixels 16x16 Pattern fill Line draw Sub-Pixel accurate Clipping & Transparency Inside or outside clipping supported

npower Technology Automatic power-down of unused pipelines Normal, standby, and sleep modes Architecturelevel power management Multiple Levels of Advanced Power Management Low-Voltage operation

Java Programming Model App JSR 184 JSR 239 OpenGL-ES EGL GoForce 3D Hardware

Native Programming Model App OpenGL-ES EGL D3Dm GoForce 3D Hardware

Middleware Programming Model App Middleware OpenGL-ES GoForce 3D Hardware EGL Audio Networking Other

OpenGL ES 1.0 vs. OpenGL Roughly OpenGL 1.3 Removes Display List glbegin/glend Texgen Environment Maps Evaluators Adds Fixed Point type/entry points Byte type more universal

OpenGL ES 1.1 vs. OpenGL Based on OpenGL 1.5 spec. Adds functionality to ES 1.0 Vertex Buffer Objects Automatic Mipmap Generation Enhanced Texture Combine Operations User-defined clip planes Point Sprites and Point Sprite arrays Queries of dynamic states

Direct3Dm Not public yet Working w/ Microsoft

NVIDIA Handheld SDK Demos OpenGL ES (101) Feature Demos Porting layer OpenGL-ES to OpenGL Runs on PC Get developers new to embedded up and running

NVIDIA HHDK (cont.).net Demo Wizard Builds skeleton app w/ both x86 Windows and ARM Linux targets Tools and Libraries DXT1 compression tools DXT1 image loading library Fixed point math library optimized ARM math Documentation GoForce 3D Overview

Development Kits Coming soon! Register for NVIDIA Handheld Developer Program http://developer.nvidia.com Email handset-dev@nvidia.com

Case Study: Bubble Originally authored for GeForce 256 desktop GPU (circa 2000) Deforming, Reflecting Surface Spring-based physics Environment mapping Ported to GoForce 3D Goal: Understand the feasibility of implementing native graphics apps on GoForce 3D

Case Study: Bubble Demo

Bubble: Overview Sphere Model Set of Vertices and Edges Set of forces Impulse Poke Force Homeward Force Elasticity Edge Force Outward Swelling Force Forces influence velocity, position, and normal

Bubble: Deformation Simulation in Floating Point VERY slow Profiler to identify problem areas Switched to integer math (s15.16) Fractional bits Integer bits Fixed Point range vs. precision tradeoff Alternate formats or rescaling

Bubble: Environment Mapping Original used Cube Mapping and Reflection Texgen No support for either in ES 1.0 Dual-Paraboloid Mapping w/ Manual Texture Coordinate Generation (fixed point)

Bubble: Texture Memory Usage Each scene uses 8 textures 2 256x256 textures (mip-mapped) 6 256x256 textures (non-mipmapped) R5G6B5 16-bits/texel = 786432 + 349524 = 1.08Mb DXT1 4-bits/texel = 196608 + 87381 = 0.27Mb DXT1 is high quality and 25% the cost of R5G6B5

Bubble: Quality Bilinear Trilinear Trilinear w/ LOD clamp High frequency High frequency near silhouette Best Quality * * Using SGIS_texture_lod

NVIDIA 3D Quality Demos Running on OpenGL-ES wrapper for x86/windows Emulates what GoForce 3D hw handset graphics can generate.

NVIDIA Developer Site Register for NVIDIA Handheld Developer Program developer.nvidia.com

Questions? Handset-Dev@nvidia.com

Bubble: How it Works Sphere Model Set of Vertices and Edges Vertex Position Normal Velocity Average Velocity average neighborhood velocity Home Position vertex home resting position Edge Pair of vertex indices Home Length initial edge length

Bubble: How it Works Deformation apply forces to update model Vertex Position Normal Velocity Average Velocity Home Position Multi-Step Process... Edge Pair of vertex indices Home Length

Bubble: Deformation Step 1 Updating the Velocities Adjust based on spring forces Homeward force Outward force Edge force (i.e. elasticity) foreach vertex vel += HomeForce( home pos ) vel += OutwardForce( normal ) foreach edge vert[v0].vel += EdgeForce( vert[v0].pos vert[v1].pos ) vert[v1].vel += EdgeForce( vert[v1].pos vert[v0].pos )

Bubble: Deformation Step 2 Filter Velocities Compute Average Velocities Apply Filter vel = 0.9 * vel + 0.1 * avg Step 3 Update Positions Step 4 Apply Drag to Velocities Step 5 Compute Normals Iterate over all triangles, use cross-product of edges

Bubble: Poking Requires Instantaneous velocity update Find closest point to pick ray Eye Pos: (0,0,0) Pick Ray: (screen_x,screen_y, -near) Apply inward pulse force based on distance p.vel += PulseForce( distance( closest.pos, p.pos) ) where PulseForce(d) = k 1 * Pow( d, -20 )

Bubble: Deformation (revisited) Step 2 Filter Velocities What happens if we don t filter the velocities? Simulation becomes unstable.