SlideShare a Scribd company logo
PSGL (PlayStation Graphics Library)
PSGL
(PlayStation Graphics Library)
Presented by
Rémi Arnaud
Graphics Architect
Tools for graphic programming
“An apprentice carpenter may want only a hammer
and saw, but a master craftsman employs many
precision tools. Computer programming likewise
requires sophisticated tools to cope with the
complexity of real applications, and only practice
with these tools will build skill in their use.”
Robert L. Kruse, Data Structures and Program
Design
Industry standards for PS3
● Well defined behavior
● It take years to create good libraries
● Companies collaboration
● Conformance test -> Guarantee of quality
“A collection of precision tools …”
● Plenty of expertise available
● Leverage exiting development tools
“…for skilled craftsmen”
Industry standards for PS3
What is covered ?
DCC toolsDCC tools
PS3 OSPS3 OS
OpenGL ESOpenGL ESCg run-timeCg run-time
Game Application
Code
Game Application
Code
Run
Time
Run
Time
Off
Line
Off
Line
COLLADACOLLADA
COLLADA
FX
COLLADA
FX Binary FormatBinary Format
OpenGL ES
● Why OpenGL ES ?
This makes no sense !?!
OpenGL ES is a low-end phone API
PS3 has the most advanced graphics
OpenGL ES 1.0
● PS3 gfx is all about shaders ! But …
▪ Need to manage non programmable state
▪ Need vertex array, VBO, FBO…
● Could take a subset of OpenGL Desktop
▪ Need Quality Assurance from conformance test
● Just need to add shaders to ES 1.x ☺
▪ and shader effects !
OpenGL ES 1.0
● ES has ~110 entry points
▪ pipeline state management
▪ Vertex arrays
▪ Texture management
▪ Bonus: Fixed pipeline
▪ Only ~20 entry points only for fixed pipeline
▪ Fog, light, material, texenv
▪ Inconvenience from conformance test
▪ Fixed point functions (1 line C entry points)
▪ DXT compression replaces palletized texture
OpenGL ES 1.1 Extension Pack
● PSGL officially passed ES 1.0 conformance test
● Some good stuff in ES 1.1+, that PSGL supports:
▪ VBO
▪ FBO
▪ PBO
▪ Cube Map, texgen
● Other additions are superseded by shaders
▪ Shader programs replace Matrix blending, crossbar texenv
● PSGL could be made ES 1.1+ compliant
▪ Let us know if it is important to you
PSGL Extensions
● Primitives:
▪ Quads, Quads_strips
▪ primitive restart
▪ Instancing
● Queries and Conditional Rendering
● More data types, eg half_float
● Textures:
▪ Floating point textures
▪ DXT
▪ 3D
▪ non power of 2
▪ Anisotropic filtering, Min/Max LOD, LOD Bias
▪ Depth textures
▪ Gamma correction
▪ Vertex Texture
More PSGL Extensions
● Polygon mode (free)
● Dual sided stencil – accelerate shadow volume
● Synchronizations: Fence and Events (wait/set)
● Memory usage hints
▪ For texture, VBO, PBO, render-targets
● Attribute set
▪ Accelerate state change
Adding shaders … requirements
● Providing off-line compiler
▪ Shader compiler should be optional
▪ Going against the current
▪ Current technology does not include linkers
● Providing shader effects
▪ Managing states, vp and fp
▪ Managing multipass effects
● Need good compiler
● Need skilled craftsmen
● Need content
Adding shaders … choice
● There was no shaders in ES when we had to decide
● Cg was the best choice because:
▪ Already used by game developers
▪ Cg and HLSL are very close
▪ Very good for leveraging content and tools
▪ Good relationship with nVidia
▪ No need to deal with the ARB or Microsoft
▪ Can be extended (with profiles)
▪ No virtualization layers
▪ More predictable performance
▪ Tools (performance tools, FXComposer)
▪ Advance features such as interface and multiple entry points
▪ Access to good compiler
▪ Complete cross-platform Cg API
▪ API and compiler can be easily modified to support Binary shaders
▪ CgFX shader FX API, file format and DCC support
OpenGL ES 2.x ?
● Came too late, PSGL already delivered
● OpenGL ES 2.x makes total sense
▪ SCE contributing member for ES 2.0
▪ Binary shaders load
▪ Shader language choice
▪ No fix pipeline
▪ Still need to implement ES 1.x for that
▪ No shader effect API
▪ Still need Cg API
● PSGL 2.0 could be ES 2.x compatible
▪ Would that be interesting to you ?
Cg run-time
● Cg run-time (cg 1.5)
▪ Collaborative work with nVidia
▪ Cg 1.5 already in PSGL, soon on PC !
▪ Modified to allow for pre-compiled shaders
▪ in addition to embedded compiler
▪ Modified to allow creation of FX at run-time
▪ Load file should not be in a graphics API
▪ More an more flexibility demanded by developers
CgGL API
● cgGLSetStateMatrixParameter()
▪ Let Cg use the OpenGL ES matrix stack
● cgGLAttribPointer()
▪ Allows for decoupling shader and geometry
▪ Defines an attribute interface
Cg API (effects)
● cgCreateEffect()
● cgCreateTechnique()
● cgCreatePass()
● cgCreateStateAssignment()
● cgCreateEffectAnnotation()
● cgCreateEffectParameter( )
● cgCreateTechniqueAnnotation()
● …..
● cgSetFloatStateAssigment()
● …
Teleportation
From the low level …
… to the content tools
In between is game developer territory !
Getting Content
● PSGL need good content
● Exporters are hard and complex to do right
● Exporters quality is fundamental to content
quality
We would like the DCC vendors to provide the
data in a good standard format
Market force
● That’s more work for DCC tools
● Business wise, DCC vendors prefer locking
developers to their products
● New concept for developers
Main issue: there were no standards !
COLLADA
● First meetings SigGraph’03
▪ Got enough momentum from all DCC vendors to create working
group
● First release SigGraph’04
▪ Minimum set of feature to test concept and collaboration
● Adding features 1.1, 1.2, 1.3
▪ Game developers really interested
▪ Adding necessary features
▪ 1.3.1 SigGraph’05, 1st anniversary presentation
● COLLADA 1.4 accepted by Khronos as a standard
▪ January 2006
An industry standard in 30 months !
COLLADA 1.4.0
● Now used in production
▪ Ready after less that 3 years !
▪ See, we are listening to your feedback ☺ (collada.org)
● Full feature
▪ Geometry, material, scene, libraries, ….
▪ Animation, skin, morph
● Advanced features – some frictions on the edge !
▪ COLLADA PhX
▪ COLLADA FX
● Content pipeline friendly
▪ <asset>
▪ Asset management recognized as the next challenge
● Missing ?
▪ Sound
▪ What else would you want ?
COLLADA FX
● See next presentation
● Effect format for PSGL
▪ Providing FX loader, using cg1.5 API
▪ Cross platform effect file
▪ Also for 1.x mobile phones
▪ Multipass effects without shaders
● Effect format for OpenGL ES
● Effect format for OpenGL Desktop ?
COLLADA parts
● COLLADA Schema
● COLLADA spec
● Export/Import
● COLLADA DOM
● COLLADA RT
● FX Loader (Cg 1.5)
● FXComposer 2.0
Public Domain
PSGL developers
New !
New !
www.collada.org
www.khronos.org/collada
http://sourceforge.net/projects/collada-dom/
COLLADA conditioning pipeline
.dae
.bin
Targetplatform
DCCtool
Fast Path
Conditioner
Conditioner
Questions?

More Related Content

PPT
Programming with OpenGL
PDF
Interactive Music II - SuperCollider入門
PPTX
Putting the AI Back Into Air: Navigating the Air Space of Horizon Zero Dawn
PDF
Naughty Dog Vertex
PDF
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
PDF
Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...
PPTX
[0122 구경원]게임에서의 충돌처리
PDF
Castle Game Engine and the joy of making and using a custom game engine
Programming with OpenGL
Interactive Music II - SuperCollider入門
Putting the AI Back Into Air: Navigating the Air Space of Horizon Zero Dawn
Naughty Dog Vertex
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...
[0122 구경원]게임에서의 충돌처리
Castle Game Engine and the joy of making and using a custom game engine

Similar to PSGL (PlayStation Graphics Library) (20)

PPTX
OpenGL Shading Language
PDF
Google I/O 2014 Recap
PDF
Metail Skin Colour Authoring Tool
PDF
High Performance Rust UI.pdf
PPT
SIGGRAPH Asia 2008 Modern OpenGL
PDF
Developing games and graphic visualizations in Pascal
ODP
Advanced Video Production with FOSS
PDF
Computer Graphics - Lecture 01 - 3D Programming I
PDF
【Unite 2018 Tokyo】スクリプタブルレンダーパイプライン入門
PDF
Elephant Roads: a tour of Postgres forks
PDF
Elephant Roads: PostgreSQL Patches and Variants
PDF
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
PDF
Smedberg niklas bringing_aaa_graphics
PDF
LibGDX: Cross Platform Game Development
PDF
mloc.js 2014 - JavaScript and the browser as a platform for game development
PDF
Scala can do this, too
PPT
Advanced Graphics Workshop - GFX2011
PPTX
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
PDF
Go at Skroutz
PDF
Castle Game Engine: intro, web, IFC, 3D scanning, mORMot
OpenGL Shading Language
Google I/O 2014 Recap
Metail Skin Colour Authoring Tool
High Performance Rust UI.pdf
SIGGRAPH Asia 2008 Modern OpenGL
Developing games and graphic visualizations in Pascal
Advanced Video Production with FOSS
Computer Graphics - Lecture 01 - 3D Programming I
【Unite 2018 Tokyo】スクリプタブルレンダーパイプライン入門
Elephant Roads: a tour of Postgres forks
Elephant Roads: PostgreSQL Patches and Variants
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
Smedberg niklas bringing_aaa_graphics
LibGDX: Cross Platform Game Development
mloc.js 2014 - JavaScript and the browser as a platform for game development
Scala can do this, too
Advanced Graphics Workshop - GFX2011
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
Go at Skroutz
Castle Game Engine: intro, web, IFC, 3D scanning, mORMot
Ad

More from Slide_N (20)

PDF
IBM: Introduction to the Cell Multiprocessor
PDF
IBM: Introduction to the Cell Broadband Engine Architecture
PDF
AMD: The Next Generation of Microprocessors
PDF
Cryptologic Applications of the PlayStation 3: Cell SPEED
PDF
Toward an Open and Unified Model for Heterogeneous and Accelerated Multicore ...
PDF
Roadrunner: Heterogeneous Petascale Computing for Predictive Simulation
PDF
Driving a Hybrid in the Fast-lane: The Petascale Roadrunner System at Los Alamos
PDF
Petascale Visualization: Approaches and Initial Results
PDF
The Cell at Los Alamos: From Ray Tracing to Roadrunner
PDF
Roadrunner and hybrid computing - Conference on High-Speed Computing
PDF
Roadrunner Tutorial: An Introduction to Roadrunner and the Cell Processor
PDF
Deferred Pixel Shading on the PlayStation 3
PDF
POWER9: IBM’s Next Generation POWER Processor
PDF
IBM POWER8 Systems Technology Group Development
PDF
IBM POWER8: The first OpenPOWER processor
PDF
Efficient Usage of Compute Shaders on Xbox One and PS4
PDF
Future Commodity Chip Called CELL for HPC
PDF
Common Software Models and Platform for Cell and SpursEngine
PDF
Toshiba's Approach to Consumer Product Applications by Cell and Desire/Challe...
PDF
Towards Cell Broadband Engine - Together with Playstation
IBM: Introduction to the Cell Multiprocessor
IBM: Introduction to the Cell Broadband Engine Architecture
AMD: The Next Generation of Microprocessors
Cryptologic Applications of the PlayStation 3: Cell SPEED
Toward an Open and Unified Model for Heterogeneous and Accelerated Multicore ...
Roadrunner: Heterogeneous Petascale Computing for Predictive Simulation
Driving a Hybrid in the Fast-lane: The Petascale Roadrunner System at Los Alamos
Petascale Visualization: Approaches and Initial Results
The Cell at Los Alamos: From Ray Tracing to Roadrunner
Roadrunner and hybrid computing - Conference on High-Speed Computing
Roadrunner Tutorial: An Introduction to Roadrunner and the Cell Processor
Deferred Pixel Shading on the PlayStation 3
POWER9: IBM’s Next Generation POWER Processor
IBM POWER8 Systems Technology Group Development
IBM POWER8: The first OpenPOWER processor
Efficient Usage of Compute Shaders on Xbox One and PS4
Future Commodity Chip Called CELL for HPC
Common Software Models and Platform for Cell and SpursEngine
Toshiba's Approach to Consumer Product Applications by Cell and Desire/Challe...
Towards Cell Broadband Engine - Together with Playstation
Ad

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Cloud computing and distributed systems.
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Big Data Technologies - Introduction.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Approach and Philosophy of On baking technology
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Machine learning based COVID-19 study performance prediction
Understanding_Digital_Forensics_Presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Cloud computing and distributed systems.
The AUB Centre for AI in Media Proposal.docx
Programs and apps: productivity, graphics, security and other tools
NewMind AI Weekly Chronicles - August'25 Week I
Big Data Technologies - Introduction.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Digital-Transformation-Roadmap-for-Companies.pptx
MYSQL Presentation for SQL database connectivity
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology
Per capita expenditure prediction using model stacking based on satellite ima...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Reach Out and Touch Someone: Haptics and Empathic Computing
MIND Revenue Release Quarter 2 2025 Press Release
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Machine learning based COVID-19 study performance prediction

PSGL (PlayStation Graphics Library)

  • 2. PSGL (PlayStation Graphics Library) Presented by Rémi Arnaud Graphics Architect
  • 3. Tools for graphic programming “An apprentice carpenter may want only a hammer and saw, but a master craftsman employs many precision tools. Computer programming likewise requires sophisticated tools to cope with the complexity of real applications, and only practice with these tools will build skill in their use.” Robert L. Kruse, Data Structures and Program Design
  • 4. Industry standards for PS3 ● Well defined behavior ● It take years to create good libraries ● Companies collaboration ● Conformance test -> Guarantee of quality “A collection of precision tools …” ● Plenty of expertise available ● Leverage exiting development tools “…for skilled craftsmen”
  • 6. What is covered ? DCC toolsDCC tools PS3 OSPS3 OS OpenGL ESOpenGL ESCg run-timeCg run-time Game Application Code Game Application Code Run Time Run Time Off Line Off Line COLLADACOLLADA COLLADA FX COLLADA FX Binary FormatBinary Format
  • 7. OpenGL ES ● Why OpenGL ES ? This makes no sense !?! OpenGL ES is a low-end phone API PS3 has the most advanced graphics
  • 8. OpenGL ES 1.0 ● PS3 gfx is all about shaders ! But … ▪ Need to manage non programmable state ▪ Need vertex array, VBO, FBO… ● Could take a subset of OpenGL Desktop ▪ Need Quality Assurance from conformance test ● Just need to add shaders to ES 1.x ☺ ▪ and shader effects !
  • 9. OpenGL ES 1.0 ● ES has ~110 entry points ▪ pipeline state management ▪ Vertex arrays ▪ Texture management ▪ Bonus: Fixed pipeline ▪ Only ~20 entry points only for fixed pipeline ▪ Fog, light, material, texenv ▪ Inconvenience from conformance test ▪ Fixed point functions (1 line C entry points) ▪ DXT compression replaces palletized texture
  • 10. OpenGL ES 1.1 Extension Pack ● PSGL officially passed ES 1.0 conformance test ● Some good stuff in ES 1.1+, that PSGL supports: ▪ VBO ▪ FBO ▪ PBO ▪ Cube Map, texgen ● Other additions are superseded by shaders ▪ Shader programs replace Matrix blending, crossbar texenv ● PSGL could be made ES 1.1+ compliant ▪ Let us know if it is important to you
  • 11. PSGL Extensions ● Primitives: ▪ Quads, Quads_strips ▪ primitive restart ▪ Instancing ● Queries and Conditional Rendering ● More data types, eg half_float ● Textures: ▪ Floating point textures ▪ DXT ▪ 3D ▪ non power of 2 ▪ Anisotropic filtering, Min/Max LOD, LOD Bias ▪ Depth textures ▪ Gamma correction ▪ Vertex Texture
  • 12. More PSGL Extensions ● Polygon mode (free) ● Dual sided stencil – accelerate shadow volume ● Synchronizations: Fence and Events (wait/set) ● Memory usage hints ▪ For texture, VBO, PBO, render-targets ● Attribute set ▪ Accelerate state change
  • 13. Adding shaders … requirements ● Providing off-line compiler ▪ Shader compiler should be optional ▪ Going against the current ▪ Current technology does not include linkers ● Providing shader effects ▪ Managing states, vp and fp ▪ Managing multipass effects ● Need good compiler ● Need skilled craftsmen ● Need content
  • 14. Adding shaders … choice ● There was no shaders in ES when we had to decide ● Cg was the best choice because: ▪ Already used by game developers ▪ Cg and HLSL are very close ▪ Very good for leveraging content and tools ▪ Good relationship with nVidia ▪ No need to deal with the ARB or Microsoft ▪ Can be extended (with profiles) ▪ No virtualization layers ▪ More predictable performance ▪ Tools (performance tools, FXComposer) ▪ Advance features such as interface and multiple entry points ▪ Access to good compiler ▪ Complete cross-platform Cg API ▪ API and compiler can be easily modified to support Binary shaders ▪ CgFX shader FX API, file format and DCC support
  • 15. OpenGL ES 2.x ? ● Came too late, PSGL already delivered ● OpenGL ES 2.x makes total sense ▪ SCE contributing member for ES 2.0 ▪ Binary shaders load ▪ Shader language choice ▪ No fix pipeline ▪ Still need to implement ES 1.x for that ▪ No shader effect API ▪ Still need Cg API ● PSGL 2.0 could be ES 2.x compatible ▪ Would that be interesting to you ?
  • 16. Cg run-time ● Cg run-time (cg 1.5) ▪ Collaborative work with nVidia ▪ Cg 1.5 already in PSGL, soon on PC ! ▪ Modified to allow for pre-compiled shaders ▪ in addition to embedded compiler ▪ Modified to allow creation of FX at run-time ▪ Load file should not be in a graphics API ▪ More an more flexibility demanded by developers
  • 17. CgGL API ● cgGLSetStateMatrixParameter() ▪ Let Cg use the OpenGL ES matrix stack ● cgGLAttribPointer() ▪ Allows for decoupling shader and geometry ▪ Defines an attribute interface
  • 18. Cg API (effects) ● cgCreateEffect() ● cgCreateTechnique() ● cgCreatePass() ● cgCreateStateAssignment() ● cgCreateEffectAnnotation() ● cgCreateEffectParameter( ) ● cgCreateTechniqueAnnotation() ● ….. ● cgSetFloatStateAssigment() ● …
  • 19. Teleportation From the low level … … to the content tools In between is game developer territory !
  • 20. Getting Content ● PSGL need good content ● Exporters are hard and complex to do right ● Exporters quality is fundamental to content quality We would like the DCC vendors to provide the data in a good standard format
  • 21. Market force ● That’s more work for DCC tools ● Business wise, DCC vendors prefer locking developers to their products ● New concept for developers Main issue: there were no standards !
  • 22. COLLADA ● First meetings SigGraph’03 ▪ Got enough momentum from all DCC vendors to create working group ● First release SigGraph’04 ▪ Minimum set of feature to test concept and collaboration ● Adding features 1.1, 1.2, 1.3 ▪ Game developers really interested ▪ Adding necessary features ▪ 1.3.1 SigGraph’05, 1st anniversary presentation ● COLLADA 1.4 accepted by Khronos as a standard ▪ January 2006 An industry standard in 30 months !
  • 23. COLLADA 1.4.0 ● Now used in production ▪ Ready after less that 3 years ! ▪ See, we are listening to your feedback ☺ (collada.org) ● Full feature ▪ Geometry, material, scene, libraries, …. ▪ Animation, skin, morph ● Advanced features – some frictions on the edge ! ▪ COLLADA PhX ▪ COLLADA FX ● Content pipeline friendly ▪ <asset> ▪ Asset management recognized as the next challenge ● Missing ? ▪ Sound ▪ What else would you want ?
  • 24. COLLADA FX ● See next presentation ● Effect format for PSGL ▪ Providing FX loader, using cg1.5 API ▪ Cross platform effect file ▪ Also for 1.x mobile phones ▪ Multipass effects without shaders ● Effect format for OpenGL ES ● Effect format for OpenGL Desktop ?
  • 25. COLLADA parts ● COLLADA Schema ● COLLADA spec ● Export/Import ● COLLADA DOM ● COLLADA RT ● FX Loader (Cg 1.5) ● FXComposer 2.0 Public Domain PSGL developers New ! New ! www.collada.org www.khronos.org/collada http://sourceforge.net/projects/collada-dom/