Developer Finds Way for Apple M1 GPU to Bug Out

A developer found a rendering process that was hard to do on the M1 GPU. Although they were able to fix it, the lengthy process requires a lot of extra steps to 3D render using Apple's new chip.

Developer Found a Way for the GPU to Bug Out

According to the story by Tech Spot, while developers were trying to reverse-engineer the M1 processor, Alyssa Rosenzweig was able to find a quirk in the M1's GPU. Rosenzweig tried to render the GPU's pipeline but apparently found a way for the GPU to bug out.

Rosenzweig found that the problem was in the "GPU's poor access to memory," saying that, like the A-Series iPhone SoC, the chip tries to preserve efficiency by taking shortcuts. Unlike other discrete GPUs, which render straight into the frame buffer, Apple's chip passes a frame twice.

GPU Needs to Buffer All Pre-Vertex Data for Tiles to Come Back

The first frame passes include the vertices, with the second passing everything else. As noted by Tech Spot, the second passes are more intensive, and in between them, the "dedicated hardware segments the frames into tiles" while the second pass does the process one tile at a time.

Although tiling helps limited memory resources, the GPU still needs to buffer all the per-vertex data in order to place the tiles back together in the frame. Rosenzweig found that the render wouldn't work due to the overflowed buffer.

Apple Used PowerVR GPU Architecture

When the buffer was full, it was found that the Apple chip was only able to render half of the output. The buffer is often referred to as the parameter buffer.

Apple recently made a deal with Imagination, a UK-based company back in the start of 2020, allowing them to license different IPs. As per Tech Spot, the M1 came from one of the licensed IPs using the PowerVR GPU architecture.

Partial Renders can be Compiled Into the Complete Render

Although the partial renders can be compiled in order to create the whole render, this will still add extra steps to the whole process. As Tech Spot describes, the completed render, however, isn't 100% accurate.

The publication notes that this is because the color buffer and depth buffer are split, making the frames work differently when partial renders are loaded. In order to fix this problem, it is possible to reverse-engineer the configuration from the Apple driver.

Read Also: Could the Apple iPhone 11 be Discontinued This Year?

Other 3D Rendering Attempts Resulted in Extra Steps Needed

Rosenzweig's M1 open-source graphics driver wasn't the only attempt that needed to go through all the extra hoops in order to come up with a good rendering. As per Tech Spot, this is how the GPU works.

The publication notes that the reason behind the lengthy render process is that its architecture might not have been designed for 3D rendering from the start. Apple says that the new chips are designed to rival discrete GPUs or potentially surpass them.

There were other renders done on the M1 to test out its capabilities found both on Rosenzweig's blog as well as the Asahi Linux website that tested out the actual capabilities of the new Apple chip.

Related Article: Apple Could Host WWDC 2022 In-Person on June 6

This article is owned by Tech Times

Written by Urian B.

ⓒ 2024 TECHTIMES.com All rights reserved. Do not reproduce without permission.
Join the Discussion
Real Time Analytics