Setting MaterialQualityLevel to 0 or 2 crashes (permanently stalls) 4.22 (setting it to 1 has no effect). We only have one material affected by the material quality switch, on medium and high settings this material uses parallax occlusion mapping, and on low it does not. Multiple material instances have this material as their parent. An image of the material graph should be below.
EDIT: Removing the quality settings node from the material graph does not stop the crash from happening. When changed in the editor UE4 stalls for 30 to 60 seconds and then starts recompiling the materials. Again this did not occur in previous versions of the UE4
EDIT 2 After allowing the materials to recompile the editor now crashes fully. The error reporting dialogue states the issue occurs on Line 2039 in the file \Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\Materials\MaterialShared.cpp
This issue was not present in previous versions on the engine.
The project has been recently upgraded to 4.22 from 4.20, a new project was created and content was migrated across, it was not converted in place.
We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.
The line check(OutUniformExpressionCache.UniformBuffer->GetLayout() == UniformBufferStruct.GetLayout()); is where the error dialogue states the error occurs. Other than the line in 4.20 being changed to the code from 4.22 the rest of the function is unchanged.
Unfortunately I am not familiar enough with UE4’s source to really understand what has been changed and why.
Removing the Parallax Occlusion Mapping node from the material stops the crash from occurring, so the issue seems to be when the effects changing from high, medium and low material quality settings has on parallax occlusion mapping. EDIT specifically the issue seems to be when switching from low material quality to medium or high.
functions cause the engine to crash I’m assuming the (IsValidRef(OutUniformExpressionCache.UniformBuffer)) If check is returning TRUE when it should be returning FALSE. But forcing it down the FALSE (else) statement so that only