Skip to content

KNOWN BUG on Intel Mac with AMD GPU – Workaround to Disable OpenCL Drivers #2

@valueimagery

Description

@valueimagery

THE ISSUE WITH AMD GPU OPENCL DRIVERS:

As support for Intel Macs and AMD GPUs becomes increasingly deprecated, we’ve observed a known glitch with OpenCL drivers on macOS that affects MXF file processing. My testing involved the following:

  • Test Footage & Formats:
    • Sony FX6 10 Bit 422 MXF XAVC-I clips
    • Sony A7R5 10 Bit 422 HEVC MP4 clips
  • Test Systems:
    • Intel iMac 20,2 equipped with an AMD Radeon RX 6800 XT
    • Intel MacBook Pro 16,2 using an eGPU (AMD Radeon RX 5700 XT)
    • Intel iMac 20,1 using onboard Intel GPU (no AMD GPU)
  • Software Versions:
    • DaVinci Resolve Studio 19.1.4
    • macOS 15.2
    • Gyroflow Version: v1.6.0 (gh2310) nightly build
    • OFX Plugin Version: Gyroflow 2.0.2.134 (nightly build)
  • Observations:
    • HEVC MP4 (A7rv 50fps):
      • Both the Standalone Gyrflow App and OFX Plugin work perfectly in the Resolve Edit panel on all test systems (using either OpenCL or wgpu).
    • MXF Files (FX6):
      • On systems using AMD GPUs (iMac 20,2 and MacBook Pro with eGPU) the OFX Gyroflow plugin does not work
      • On systems using AMD GPUs, when using the Standalone App and setting the Advanced/Device for Video Processing to [OpenCL], the export fails with artifacts identical to those seen in the OFX Plugin within Resolve.
      • Multiple tests show that switching the Device for Video Processing from [OpenCL] to the Metal-based [wgpu] path results in successful exports on these AMD-based systems.
      • Unlike the Standalone App, there is no option within the OFX Plugin to choose “Device for Video Processing.”
      • Even when Resolve Studio 19’s settings are manually configured to force AMD GPU selection and Metal processing, macOS still defaults to OpenCL handling within the OFX Plugin for these MXF files, causing pixelated artifacts or plugin crashes.
      • Notably, on the Intel iMac 20,1 (using the onboard Intel GPU) or the MacBook Pro without the eGPU, no issues occur, confirming that the problem is specific to AMD GPU systems.

THE WORKAROUND SOLUTION:

Force the OFX Plugin to use a Metal-based GPU processing path (via [wgpu]) instead of OpenCL for video processing. This addresses the export issues on AMD GPU systems.

1. Create a Temporary Environment:

Set the environment variable NO_OPENCL=1 in Terminal before launching DaVinci Resolve (e.g., using export NO_OPENCL=1 followed by open -a "DaVinci Resolve"). This forces Resolve to bypass OpenCL for the current session.

2. Create a Global Environment (Recommended by the Developer, but depreciated my MacOS):

Create a global environment by adding setenv NO_OPENCL 1 to /etc/launchd.conf so that all applications on macOS inherit NO_OPENCL=1. This permanently disables OpenCL across the system.

3. Create a Wrapper Application (Preferred for an automated Fix)

Create a simple wrapper application using Option 1 that sets the environment variable and then launches DaVinci Resolve. This ensures that Resolve always starts with NO_OPENCL=1, forcing it to use the Metal-based ([wgpu]) processing path.

1. How to Create a Temporary Environment Variable to Disable OpenCL on macOS

Follow these steps to set the environment variable NO_OPENCL=1 temporarily in your Terminal session. Applications launched from that Terminal (including DaVinci Resolve) will inherit this setting:

Open Terminal

Set the Environment Variable:
export NO_OPENCL=1

Launch DaVinci Resolve from Terminal:
open -a "DaVinci Resolve"

Verify the Setting:
echo $NO_OPENCL

You should see:
1

This temporary setting will remain in effect for the duration of the Terminal session. For a permanent solution, please refer to the global workaround instructions.

2. How to Create a Global Environment Variable to Disable OpenCL on macOS (DEPRECIATED)

Unfortunately, macOS no longer offers a truly foolproof, system-wide method for setting environment variables that are inherited by all GUI applications, independent of user-specific settings.

DEPRECIATED STEPS:

Follow these steps to set the global environment variable NO_OPENCL=1 using /etc/launchd.conf so that all applications—including those launched via Spotlight—inherit this setting.

Open Terminal and Edit /etc/launchd.conf

Open Terminal
Run the following command to open (or create) the file with vi:
sudo vi /etc/launchd.conf

Insert the Environment Variable
Press I to enter insert mode.
Add the following line:
setenv NO_OPENCL 1
(You can add additional environment variables on separate lines if needed.)

Save and Exit
Press Esc to exit insert mode.
Type :wq and press Enter to save the file and quit vi.

Load the New Settings Without Reboot (Optional)
To load the changes immediately, run:
sudo launchctl setenv NO_OPENCL 1

Alternatively, to apply all variables from /etc/launchd.conf without rebooting, run:
grep -E "^setenv" /etc/launchd.conf | xargs -t -L 1 sudo launchctl setenv

Reboot Your Mac

After rebooting, open Terminal and run:
echo $NO_OPENCL
You should see:
1

This confirms that the global environment variable is set.

Now all applications—including DaVinci Resolve—will inherit NO_OPENCL=1, forcing them to avoid using OpenCL.

3. Create a Wrapper Application (Preferred for an automated Fix)

Steps to Create the Wrapper Application:

Open Automator:

Open the Automator app (found in Applications).

Create a New Application:
Select “Application” as the document type.
Add a “Run Shell Script” Action:

In the Automator library, find and drag “Run Shell Script” into the workflow area.
Enter the Shell Script:
Replace the default script with the following:

#!/bin/bash
export NO_OPENCL=1
open -a "DaVinci Resolve"

This script sets NO_OPENCL=1 and launches DaVinci Resolve.

Save the Application:

Save the Automator application with a name like “Resolve Launcher” in a convenient location (or your Applications folder).

Usage and Dock Shortcut:

Important: Do not close the Terminal session or the underlying process if you’re running the script from a terminal wrapper, as the environment variable must remain active.

To create a Dock shortcut, copy the icon from the actual DaVinci Resolve Studio application and assign it to the Automator launcher. This is purely cosmetic—making the launcher easy to recognize.
When you launch the wrapper, you'll see both its icon and the real app's icon in your Dock. I recommend keeping only the launcher in your Dock to ensure you're always launching Resolve with the proper environment variable set.

This wrapper method ensures that every time you launch Resolve via the wrapper, it runs with NO_OPENCL=1, thereby bypassing the problematic OpenCL backend.

A FEW NOTES

If you've already applied the OFX plugin in your timeline on your clip, try either reseting or disabling the plugin and enabling to clear any cache and previous artifacting

CREDIT

🙏 A HUGE THANK YOU to @AdrianEddy for not only his admirable work with developing the Gyrolfow app, but also his guidance during this troubleshooting process to find a workable solution

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions