Metal 2 on A11 — Raster Order Groups
Metal 2 on A11 — Raster Order Groups
Tech Talks
Introduction
- Access memory from overlapping fragment functions — in submission order
- Allows fragment functions to communicate
- Allows fragment functions to build more interesting data structures
Fragment Shaders with Blending
![](https://cdn-images-1.medium.com/max/800/1*2I3DnzIMMghTsCENB6Ja-w.png)
Mid-Shader Memory Access
![](https://cdn-images-1.medium.com/max/800/1*RMWnlJ_xGunclH_SGD8EaA.png)
With Raster Order Groups
![](https://cdn-images-1.medium.com/max/800/1*evoO7EuI-jdR3sOujHXZUQ.png)
Raster Order Groups on A11
- Supports tile shading and tile memory
- Supports multiple groups
- Eliminates cases of excessive synchronization
- Enable reader / write lock-style behavior
Example: Deferred Shading
![](https://cdn-images-1.medium.com/max/800/1*K37j008Q2YF7JfVUKJFTjw.png)
![](https://cdn-images-1.medium.com/max/800/1*0XWutxqt6iJzLHzouGEt9Q.gif)
![](https://cdn-images-1.medium.com/max/800/1*rCqmWTa9qkIeFq36LD7oLg.png)
Example: Adding Transparency
Add a new phase into the render pass
1. Fill and shade G-buffer
2. Order independent transparency for forward surfaces
![](https://cdn-images-1.medium.com/max/800/1*smlqiHawrQXC1O5hYrURMw.png)
![](https://cdn-images-1.medium.com/max/800/1*dcNmBAAcYuYrKj3qEfTKOg.png)