Meet the Tile Based Deferred Rendering (TBDR) GPU architecture for Apple Silicon Macs — the heart of your Metal app or game's graphics performance. Learn how you can translate or port your graphics-intensive app over to Apple Silicon, and how to take advantage of TBDR and Metal when building natively for the platform. We'll look at how TBDR compares with the Immediate Mode Rendering pipeline of older Macs, go through common issues you may face when bringing an app or game over, and explore how to offer incredible performance when building with the native SDK.
We've designed this session in tandem with “Optimize Metal Performance for Apple Silicon Macs.” After you've watched this session be sure to check that out next.
and ready for the future. we're bringing our deep expertise in GPU design to the Mac. So let's get started.
If you're familiar with these devices then you know that there are several to make this move as easy as possible. This enables you to get the benefits of the faster more power efficient GPU with more features without having to retool your app or game. On Intel based Macs your app runs natively. On Apple Silicon Macs.
when it comes to the GPU Apple Silicon Mac contains an Apple designed GPU An important note here is that triangles can span the entire screen or two triangles from the same draw call might end up in widely different places Early depth test is followed by shading. When early depth test cannot be done Now that we reviewed IMR Architecture I will move on to the tile based need to access it for alpha testing write mask or blending or for anything else. all the geometry will be processed rendering and all the pixels will be processed. Now that we reviewed the architecture we can move onto apps view of the GPU.
Mac 2. Additionally for the first time ever the features that are specific MSAA Resolve MSA feature shines on this system. You can even use MSAA with deferred rendering because all the processing is done on the chip in this coverage control and so on that open up opportunities for new techniques not feature proof. Let's see an example. Here is some code basing feature Please refer to the video Optimize Metal performance for Apple Silicon Macs to know start with a previously rendered texture in system memory. If a DonCare to be preserved. This is the case when a draw does not cover the full frame buffer and accumulation is needed on top of the previous rendering. Otherwise make sure to not store to avoid extra memory traffic. As a consequence different optimizations between vertex shaders might lead This causes some pixels to fail the depth test and be discarded. For those pixels Let's now take a look at the code. Here we have the 2 vertex shaders As you can see the position computation is exactly the same between the two shaders. due to the code around the position computation that might trigger differences in compiler optimizations affecting the position itself. How can this be avoided? First make sure to parse the preserveInvariance option to the metal on the position output. Note that you need to set these two options to correct synchronization on any GPU you should query the simdgroup Let's dig into the computer shader used in this application. This kernel
Looking for something specific? Enter a topic above and jump straight to the good stuff.
An error occurred when submitting your query. Please check your Internet connection and try again.