FWriteToSliceVS shader missing for 4.25 builds

The cook stage for every build reports as successful, 0 errors.

[File:D:/Build/++UE4+Licensee/Sync/Engine/Source/Runtime/Engine/Private/ShaderCompiler/ShaderCompiler.cpp] [Line: 4297] Missing global shader FWriteToSliceVS’s permutation 0, Please make sure cooking was successful.

Versions: UE 4.25.3, VS 2019 16.6.5
I’ve tried with multiple machines using: VS 2019 Community and Enterprise, and 2017 Professional

The error occurs for my main project. I’ve also built a totally brand new, empty, default code project, totally unchanged from the default new project.

I’m building my real project and my new empty project with:
RunUAT.bat BuildCookRun -rocket -installed -nop4 -nocompile -project="%~dp0ExampleProject.uproject" -cook -stage -archive -archivedirectory="%~dp0%archivePath%" -package -clientconfig=Development -Platform=%targetPlatform% -compressed -CookAll -pak -prereqs -build -utf8output -editorrecompile

I’ve tried -clientconfig=Development and -clientconfig=Shipping

Some machines are Windows 10, some machines are Windows Server 2019 (Which can only run windowless command line - no directx11)

I’m running each with: ExampleProject.exe -run=RunTests Which I’m realizing now RunTests isn’t defined for the empty proj, but instead of telling me that RunTests isn’t a thing, it just fails on the shader. My real project DOES define that cmdlet, but still has the exact same shader error.

I started with the real project with a RunTests cmdlet that works on 4.24, and I’m trying to work backwards to discover the problem, and I’ve found nothing. Every 4.25 build I make, including an empty one, fails with this shader error, on every machine I have available (6 machines, with varying settings, installation versions, etc etc).

I just can’t get 4.25 to run windowless on the command line at all, and this project has only started failing on 4.25. All previous versions (back to… 4.18 or likely earlier) all worked (albeit with minor changes along the way). The empty project throws the same error and at that point I started thinking “maybe it’s not my project”.

I can run this project, and execute all code with a game/graphics window (no cmd line params), on Windows 10, and from the editor. But our automated testing on WinServer 2019 requires the cmd-line windowless version to work.

I tried another build, directly from the editor, using File → Package Project → Windows (64 bit), and got the same failure.

Hello,

From what I can find, Windows Server 2019 should have DirectX available. You might have to do a bit of configuration if you are running it in VMs. https://petri.com/how-to-enable-gpu-acceleration-in-windows-containers

You can also try running with -nullrhi which substitutes the DX11 implementation with an empty one.

I will try the -nullrhi parameter. But directx isn’t even the point of my question. This is an automated test system. We run on console, because there’s no human to look at the gui. And on docker containers, there’s no windows gui at all. I have many reasons that I need command line executions to work, and very few reasons to dig into the directx issue.

Add -NoShaderCompile as a command-line parameter. This skips the shader compile for the executable, which is perfect for command line. It’s not a fix, but it is a viable workaround.