FX Composer 2.5 Usability & Productivity
Transcript of FX Composer 2.5 Usability & Productivity
Siggraph 2008 9/12/2008 9:16 AM
©2008 NVIDIA Corporation 1
A New Generation of Performance Analysis and Shader Authoring Tools
Chris Maughan & Jeffrey Kiel
Agenda
FX Composer 2.5Shader DebuggerPerformance Tools
© NVIDIA Corporation 2008
FX Composer 2.5
Increase productivityRefine usabilityImprove stability Improve performance
© NVIDIA Corporation 2008
Enable Direct3D10First host for the NVIDIA Shader Debugger
Usability & Productivity
Start PageEffect WizardToolbar
Large iconsB tt
© NVIDIA Corporation 2008
Better menusGraphics API Toggle
Usability & Productivity
Automatic light bindingBind to nearest lightSAS driven
Code SnippetsCommonly used code
© NVIDIA Corporation 2008
Commonly used codeUser-extensibleExamples
Textures and samplesTechniques and passesRender state blocks
New Sample Projects
Visual Styles350Z Atmospheric Scattering
© NVIDIA Corporation 2008 Simple ShadowsPost‐Processing
MaterialsPCSS Soft ShadowsDirectX 10
Ninja
Siggraph 2008 9/12/2008 9:16 AM
©2008 NVIDIA Corporation 2
Models & StylesModels are complete files -DAE, FBX, etc.Styles are collections of material for a modelUpdate your model without fear of losing styles
© NVIDIA Corporation 2008
g yUse models many times
In a sceneWith different styles
DirectX 10
Geometry shadersTexture arraysStream out
© NVIDIA Corporation 2008
Picture includesExplosion(GS)Particles(GS,SO)Pipes(GS,TA,SO)
Simple Particle Systems
Simple emitters for designing effectsNot for complex simulation
Predefined templates to startFireSmoke
© NVIDIA Corporation 2008
SmokeFireworksWater fountain
Customizable parameters
ShaderPerf 2.0
GeForce 8 Series support
Vertex and pixel shader analysis
Many supported shader formats
© NVIDIA Corporation 2008
Many supported shader formats
Compare different techniques
See shader throughput, register usage, instruction counts, and branching performance
mental mill™ Artist Edition
Enables artists to quickly and easily develop and prototype new looks within a fast, flexible GUI.
© NVIDIA Corporation 2008
NVIDIA Shader Debugger
Broad Language SupportHLSL10/9CgFXCOLLADA FX Cg
Step through shader
© NVIDIA Corporation 2008
p gsource code
Visualize variables across your geometry
Plug‐in for FX Composer 2.5
Siggraph 2008 9/12/2008 9:16 AM
©2008 NVIDIA Corporation 3
Run ControlFull control of shader execution
Next/Previous StatementRun to CursorRun to Bookmark
© NVIDIA Corporation 2008
More Shader Debugger Features
Conditionally Kill Fragments
© NVIDIA Corporation 2008
Visualize Any Variable
Create Custom Output Mappings
More Shader Debugger Features
Debug multi‐pass/full scene effects.
© NVIDIA Corporation 2008
Map any variable to any channel.
Pick any technique in your shader to debug.
demo
© NVIDIA Corporation 2008
Performance Tools UpdateShaderPerf 2.0PhysXPerfKit
PerfSDKgDEBuggerSneak peek at PerfHUD 6 5!
© NVIDIA Corporation 2008
Sneak peek at PerfHUD 6.5!
ShaderPerf 2.0
Shader AnalysisCg, GLSL, HLSLAll NVIDIA GPUs since FX SeriesMultiple driver versions
© NVIDIA Corporation 2008
Multiple use casesFX Composer IDE integrationCommand line
Script based testingIntegrate into source control for regression testing
ShaderPerfAPI: Dream up new uses!
Siggraph 2008 9/12/2008 9:16 AM
©2008 NVIDIA Corporation 4
PhysX SDK: Enhancing Realism
Free binary version for Windows and LinuxLicensed source code version for
© NVIDIA Corporation 2008
code version for Windows and Xbox
http://developer.nvidia.com/object/physx.html
PhysX ToolsPhysX Event Viewer
Graph physics engine eventsAnalyze usage and utilizationGeneral CPU usage and user events
© NVIDIA Corporation 2008
PhysX HUDReal time PhysX DataIn application context
PerfKit Features
OpenGL and Direct3D, Windows and LinuxGPU & Driver counter data
Supports QuadroFX, GeForce 8, 9, and 200 seriesGPU tili ti d t i
© NVIDIA Corporation 2008
GPU utilization data, variousprimitive counts, etc.Driver CPU usage, stalls, counts
PerfKit Features
Simplified Experiments: GPU Bottleneck and utilizationPerfAPI: counters and experiments integrated into your applicationGLExpert
© NVIDIA Corporation 2008
GLExpertDebug runtime for OpenGLDriver performance gotchas, software fallbacks
NVIDIA Plug-in for Microsoft PIX for Windows
ADD SMALL PIC OF BOTTLNECK GRAPH
Graphic Remedy’s gDEBugger
OpenGL and OpenGL ES Debugger and Profiler
© NVIDIA Corporation 2008
p p ggNVIDIA PerfKit and GLExpert integratedShorten development timeImprove application qualityOptimize performanceFind redundant function callsSupports Windows & LinuxDiscounted academic licenses available
http://www.gremedy.com
Graphic Remedy’s gDEBugger
© NVIDIA Corporation 2008
Siggraph 2008 9/12/2008 9:16 AM
©2008 NVIDIA Corporation 5
Introducing PerfHUD 6.5Save and load captures!
Capture the moment rendering or performance issues happenRemote collaboration on debugging and tuning tasksEase bug reproduction and
© NVIDIA Corporation 2008
Ease bug reproduction and communication
Unified Driver on Windows VistaSLI Support: Specialized graphs and feedback
Introducing PerfHUD 6.5Powerful debugging features
Texture visualization modesAPI call data mining, analysis, and bug checkingShader visualization
Improved usability:
© NVIDIA Corporation 2008
More hot keysMultiple graph configsDirect3D PerfMarkers
Bug Fixes: input module rewrite, improved stability
PerfHUD 6.5: Performance Dashboard
Graph GPU and driver dataEdit to suit your needs
© NVIDIA Corporation 2008
Edit to suit your needsSLI Graph for multi-GPUAPI usage statistics
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
PerfHUD: Frame Debugger
Scrub through sceneVisualize draw call info
© NVIDIA Corporation 2008
Textures and RTsTooltips on buffers
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
PerfHUD: Frame Debugger
Texture analysis: substitute precomputed texturesControllable through
Perf Markers
© NVIDIA Corporation 2008
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
PerfHUD: Frame DebuggerBuffer Visualization
Visualize any buffer full screen2D/3D/Cube/Arrays
© NVIDIA Corporation 2008
2D/3D/Cube/ArraysPan/ZoomChange mipmap level
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
Siggraph 2008 9/12/2008 9:16 AM
©2008 NVIDIA Corporation 6
PerfHUD: Frame DebuggerAPI Call List
Based on a frame captureSee frame events,
including parametersTooltips for detailsC t d t bb
© NVIDIA Corporation 2008
Connected to scrubber
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
PerfHUD: Frame DebuggerDraw Call Dependencies
Show producers&consumersdependencies for each call
© NVIDIA Corporation 2008
callThese can hurt single
GPU and SLI performance
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
PerfHUD: Adv Frame DebuggerVertex Assembly
Geometry previewVertex and index buffer
setup
© NVIDIA Corporation 2008
p
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
PerfHUD: Adv Frame DebuggerVertex, Geometry and Pixel Shaders
Edit & continue shadersVisualize input texturesConstantsSampler overrides
© NVIDIA Corporation 2008
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
PerfHUD: Adv Frame Debugger
Display and modify all render state settingsRender targets
displayed
© NVIDIA Corporation 2008
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
PerfHUD: Frame ProfilerOne button bottleneck determination
All draw calls profiledDraw calls grouped by
state buckets: multiply performance optimizations
© NVIDIA Corporation 2008
Multiple result graphs
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
Siggraph 2008 9/12/2008 9:16 AM
©2008 NVIDIA Corporation 7
PerfHUD: Adv Frame Profiler
Same advanced features now in the profiling context
© NVIDIA Corporation 2008
Crysis used with permission from Crytek. © Crytek GmbH. All Rights Reserved. Crysis and CryENGINE are trademarks or registered trademarks of Crytek GmbH in the U.S and/or other countries.
Questions ?
Downloadshttp://www.fxcomposer.comhttp://www.perfhud.comhttp://developer.nvidia.com/object/physx.html
Forums
© NVIDIA Corporation 2008
Forumshttp://developer.nvidia.com/forums
[email protected]@nvidia.com
PerfKit 6
The NVIDIA Developer ToolkitThe NVIDIA Developer Toolkit
GPU Programming GuidePerfHUD 6
Conference Presentations
PerfSDK
SDK 10FX Composer 2.5
Texture Tools 2
Cg Toolkit
NVSG
Content CreationContent Creation Software Software DevelopmentDevelopment PerformancePerformance DocumentationDocumentation
Videos
mental mill Artist Edition
© NVIDIA Corporation 2008
ShaderPerf 2
GLExpert
gDEBugger
NV PIX Plug-inMelody
Texture Tools 2 NVSG Videos
Books