Quick answer: The executable expects cooked content for a shader format that is not in the build. Either the exe was run without any cooked content (a Development game build launched from Binaries), or the game started on an RHI you did not cook shaders for, most often DX11 when only SM6 was targeted. Add every RHI you can start on to Targeted RHIs, package properly, and launch from the packaged folder.
This error stops a game at startup with a long dialog about cooked content. It hits developers who run a freshly compiled game binary, and it hits players whose machines fell back to a renderer you never cooked shaders for. The file name in the message tells you which.
The exact error
The global shader cache file '../../../Engine/GlobalShaderCache-PCD3D_SM5.bin' is missing.
Your application is built to load COOKED content. No COOKED content was found; This usually means you did not cook content for this build.
It also may indicate missing cooked data for a shader platform(e.g., OpenGL under Windows): Make sure your platform's packaging settings include this Targeted RHI.
Alternatively build and run the UNCOOKED version instead.
The part that matters is the platform suffix: PCD3D_SM5 (DirectX 11 / SM5), PCD3D_SM6 (DirectX 12 / SM6) or SF_VULKAN_SM5/SF_VULKAN_SM6 (Vulkan).
Cause 1: you ran a game binary with no cooked content
If you built the Development or Shipping configuration (not Development Editor) in Visual Studio and pressed F5, or double-clicked Binaries/Win64/MyGame.exe in your project folder, you started a cooked-content game with nothing cooked. The editor's uncooked assets are not readable by that binary.
Fix it by using the right path for what you want:
- To work in the editor: build and run Development Editor.
- To test the game: use Platforms > Windows > Package Project (or Project Launcher /
RunUAT BuildCookRun), then run the exe from the packaged output folder. - To debug a cooked build in the IDE: cook first (Platforms > Windows > Cook Content), then run the Development configuration so it finds
Saved/Cooked.
Cause 2: the game started on an RHI you did not cook
This is the version players hit. Your project targets DirectX 12 with SM6 only, and the game starts on DirectX 11, because the player added -dx11, a launch option forces it, or their machine could not start D3D12. The DX11 renderer looks for GlobalShaderCache-PCD3D_SM5.bin, which was never cooked.
Cook every shader format you can run on. In Project Settings > Platforms > Windows > Targeted RHIs, or in DefaultEngine.ini:
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
+D3D12TargetedShaderFormats=PCD3D_SM6
+D3D11TargetedShaderFormats=PCD3D_SM5
; only if you support -vulkan on Windows
+VulkanTargetedShaderFormats=SF_VULKAN_SM5
If you decide not to support DX11, remove any -dx11 launch options you advertise, and accept that machines without D3D12 will get the “DX12 is not supported” dialog instead.
Cause 3: the pak was not shipped or not found
In a packaged game, the global shader cache lives inside MyGame/Content/Paks/pakchunk0-Windows.pak. If that folder is missing from your upload, or the exe was moved out of the packaged layout, the engine cannot find it. Check what actually went into the pak:
"C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\Win64\UnrealPak.exe" ^
"D:\Build\Windows\MyGame\Content\Paks\pakchunk0-Windows.pak" -List | findstr GlobalShaderCache
You should see one line per shader format you target. If the pak is fine, compare your Steam depot or zip against the packaged folder: the launcher exe at the root, plus Engine/ and MyGame/ folders, all intact.
How to verify the fix
- Package a clean build (delete
Saved/StagedBuildsfirst). - Run the root exe with no arguments, then with
-dx11, then with-vulkanif you target it. - For each run, check the log for the RHI that loaded and confirm you reach gameplay.
- Install from your actual distribution (Steam branch or zip) on a second machine and repeat once.
Knowing which players start on which renderer
Startup failures like this kill the process before anything can report them, but once your fallback works you have players on a renderer you rarely test. Bugnet's Unreal SDK attaches the GPU, OS and recent log lines to every fatal error and ensure it files, so problems that only happen on the DX11 or Vulkan path show up grouped and counted instead of scattered across Steam discussions.
Related problems
- How to Fix “DX12 is not supported on your system” in Unreal Engine Games
- How to Fix “Failed to open descriptor file '../../../MyGame/MyGame.uproject'” in Unreal
- How to Fix “Unknown Cook Failure” When Packaging an Unreal Project
Frequently asked questions
What does “global shader cache file is missing” mean in Unreal?
The executable expects cooked shaders for a specific shader format, such as PCD3D_SM5 for DirectX 11, and that format is not in the build, or no cooked content exists at all.
Why does GlobalShaderCache-PCD3D_SM5.bin go missing only with -dx11?
Your project only cooks DirectX 12 SM6 shaders. Launching with -dx11 needs SM5 shaders. Enable DirectX 11 (SM5) in Targeted RHIs and repackage.
How do I fix this error when running my game from Visual Studio?
Run the Development Editor configuration to work in the editor, or cook content before running a Development game build. A game build without cooked content cannot load the editor’s uncooked assets.
The suffix in the file name is the whole diagnosis: SM5 means DX11, SM6 means DX12, VULKAN means Vulkan.