We are running into an ensure that is triggered when CVarEnableVRS.GetValueOnRenderThread() is called on the game thread from FVariableRateShadingImageManager::IsAttachmentVRSEnabled.
This happens when using Windows Vulkan ES3_1 Renderer, and we do have our own custom integrated code, however none of our code is in involved with the callstack during this crash.
The calls happens when FMobileBasePassMeshProcessor::CollectPSOInitializers is executed, which is why it happens on the game thread.
When checking if this issue has already been addressed in a later changelist, I found that in CL#54496007 from Epic's P4 Main stream, FVariableRateShadingImageManager::IsPipelineVRSEnabled also had the same call to CVarEnableVRS.GetValueOnRenderThread(), which was changed to GetValueOnAnyThread. The changelist comment also mentioned that it can be used during PSO precaching. That function is written right before IsAttachmentVRSEnabled and they both reference the same cvar.
Presumably the appropriate fix is to also change FVariableRateShadingImageManager::IsAttachmentVRSEnabled to use GetValueOnAnyThread.
n/a
Ensure condition failed: oldValue == newValue [Link Removed] [Line: 325]
oldValue(1) newValue(0) If this check fails make sure that there is a FTaskTagScope(ETaskTag::EParallelRenderingThread) as deep as possible on the current callstack, you can see the current value in ActiveNamedThreads(40000002)
Stack:
[Callstack] 0x00007ff7daddb21e UnrealGame.exe!`IsInParallelRenderingThread'::`10'::::operator()() [UE5\Engine\Source\Runtime\Core\Private\HAL\ThreadingBase.cpp:325][Callstack] 0x00007ff7cd0021cd UnrealGame.exe!IsInParallelRenderingThread() [UE5\Engine\Source\Runtime\Core\Private\HAL\ThreadingBase.cpp:325]
[Callstack] 0x00007ff7d35e0e53 UnrealGame.exe!FVariableRateShadingImageManager::IsAttachmentVRSEnabled() [UE5\Engine\Source\Runtime\Renderer\Private\VariableRateShading\VariableRateShadingImageManager.cpp:332]
[Callstack] 0x00007ff7d2b9deeb UnrealGame.exe!FMobileBasePassMeshProcessor::CollectPSOInitializers() [UE5\Engine\Source\Runtime\Renderer\Private\MobileBasePass.cpp:1325]
[Callstack] 0x00007ff7d10dbeab UnrealGame.exe!FMaterialShaderMap::CollectPSOPrecacheData() [UE5\Engine\Source\Runtime\Engine\Private\Materials\MaterialShader.cpp:3511]
[Callstack] 0x00007ff7d15d1eed UnrealGame.exe!FMaterialPSOPrecacheCollectionTask::CollectPrecacheDataAndStartCompiles() [UE5\Engine\Source\Runtime\Engine\Private\PSOPrecacheMaterial.cpp:904]
[Callstack] 0x00007ff7d15d906a UnrealGame.exe!FMaterialPSOPrecacheCollectionTask::DoTask() [UE5\Engine\Source\Runtime\Engine\Private\PSOPrecacheMaterial.cpp:948]
[Callstack] 0x00007ff7d15e0284 UnrealGame.exe!TGraphTask::ExecuteTask() [UE5\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:702]
[Callstack] 0x00007ff7ccd9b43a UnrealGame.exe!UE::Tasks::Private::FTaskBase::TryExecuteTask() [UE5\Engine\Source\Runtime\Core\Public\Tasks\TaskPrivate.h:525
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-393217 in the post.
| 0 |
| Component | UE - Rendering - RHI |
|---|---|
| Affects Versions | 5.8 |
| Created | Aug 21, 2026 |
|---|---|
| Updated | Aug 24, 2026 |