Adobe Illustrator GPU Pipeline Error on Mac M1 – How I Fixed It
Ilustrator crashes on launch with GPU Pipeline Error on M1 Macs. The fix is disabling GPU performance via a config file. Here's why it happens and exactly what to do.
You’re on a Mac M1 (or M2, M3 — same issue), you double-click Illustrator, it bounces in the dock, then a dialog pops up: GPU Pipeline Error. The app closes. You restart, same thing. Maybe you’ve tried reinstalling, clearing preferences, even running in Rosetta — none of it works.
What’s actually happening here is that Illustrator’s GPU pipeline — the code path that offloads rendering to the graphics hardware — is failing during initialization on Apple Silicon. The M1’s integrated GPU is powerful, but Adobe’s implementation has bugs with certain Metal drivers or display configurations (multiple monitors, external displays, or specific color profiles can trigger it). The app can’t even get past the splash screen because the GPU subsystem crashes before it finishes loading.
The reason typical fixes fail: clearing preferences or reinstalling doesn’t change the GPU pipeline code. Rosetta mode translates the Intel version, but the GPU calls go through Metal anyway — same crash. The real fix is telling Illustrator to skip GPU rendering entirely and fall back to CPU, which is stable on M1.
Below are the steps. I’ve done this on Illustrator 2023 and 2024. Works cleanly.
Step 1: Locate the Illustrator GPU Configuration File
Illustrator stores GPU settings in a text file called GPUOverride.xml. On Mac, it’s inside the application bundle — not in your user Library.
- Open Finder.
- Go to Applications, find Adobe Illustrator (your version).
- Right-click it and select Show Package Contents.
- Navigate to:
Contents/Resources/. - Look for a folder named GPU (in Illustrator 2023+) or
GPUOverride.xmldirectly (older versions). If you seeGPUOverride.xml, you’re in the right place. If not, create one — I’ll show you how.
Step 2: Edit or Create GPUOverride.xml
Open GPUOverride.xml in a plain text editor — TextEdit works, but set it to plain text (Format > Make Plain Text).
If the file exists, it probably has some XML inside. Replace everything with this:
<?xml version="1.0" encoding="utf-8"?>
<GPUOverrides>
<Override>
<Name>Disable GPU Pipeline</Name>
<VendorID>0</VendorID>
<DeviceID>0</DeviceID>
<DisableGPUAcceleration>true</DisableGPUAcceleration>
</Override>
</GPUOverrides>If the file doesn’t exist, create a new text file with that exact content and save it as GPUOverride.xml in the Contents/Resources/ folder. Make sure the extension is .xml, not .txt.
What this does: the VendorID and DeviceID are set to 0, which is a wildcard — it applies to any GPU. The DisableGPUAcceleration flag being true forces Illustrator to skip the GPU pipeline entirely.
Step 3: Save and Relaunch
Save the file. Launch Illustrator normally. If the error doesn’t appear, you’re good. The app will run using CPU rendering. It’s slightly slower for complex effects, but stable. You can test later if GPU works with your setup after this fix — but for now, you’re up and running.
What to Check If It Still Fails
If Illustrator still crashes with the same error, two things to verify:
- File permissions: Make sure
GPUOverride.xmlis readable. Right-click the file, Get Info, check under Sharing & Permissions that your user has Read & Write. If not, click the lock and add it. - Multiple Illustrator versions: Check you edited the right application bundle. Some users have both Creative Cloud and standalone installs. The fix must be applied to the specific
.appyou’re launching.
I’ve seen some cases where an external monitor over DisplayPort or an odd resolution (e.g., 4K scaled to 1440p) still triggers the error even after this fix. If that’s you, try disconnecting external displays, launching Illustrator, then plugging them back in. The GPU pipeline is only initialized at launch — once it’s running, you can reconnect.
One last thing: don’t delete the file after updating Illustrator. Adobe’s updates sometimes rewrite the GPUOverride.xml back to default. After an update, check it’s still there. If not, re-create it.
Was this solution helpful?