You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Don't crash if a texture reference is null.
There might be valid reasons for this (material being destroyed), so all resource types should behave the same way as 2D textures - use a black default instead of crashing with an assertion failure. #jira FROST-5288 #rnx #preflight 6138b7c12d09b9000158308e #lockdown Michal.Valient #rb Uriel.Doyon, Ben.Ingram #ushell-cherrypick of 17489330 by mihnea.balta #ROBOMERGE-AUTHOR: mihnea.balta #ROBOMERGE-SOURCE: CL 17489559 in //UE5/Main/... #ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530) [CL 17489579 by mihnea balta in ue5-release-engine-test branch]
This commit is contained in:
@@ -893,9 +893,8 @@ void FUniformExpressionSet::FillUniformBuffer(const FMaterialRenderContext& Mate
|
||||
BufferCursor = ((uint8*)BufferCursor) + (SHADER_PARAMETER_POINTER_ALIGNMENT * 2);
|
||||
check(BufferCursor <= TempBuffer + TempBufferSize);
|
||||
|
||||
if(Value && Value->GetResource() && (Value->GetMaterialType() & MCT_TextureCube) != 0u)
|
||||
if(Value && Value->GetResource() && Value->TextureReference.TextureReferenceRHI && (Value->GetMaterialType() & MCT_TextureCube) != 0u)
|
||||
{
|
||||
check(Value->TextureReference.TextureReferenceRHI);
|
||||
*ResourceTableTexturePtr = Value->TextureReference.TextureReferenceRHI;
|
||||
const FSamplerStateRHIRef* SamplerSource = &Value->GetResource()->SamplerStateRHI;
|
||||
|
||||
@@ -933,9 +932,8 @@ void FUniformExpressionSet::FillUniformBuffer(const FMaterialRenderContext& Mate
|
||||
void** ResourceTableSamplerPtr = (void**)((uint8*)BufferCursor + 1 * SHADER_PARAMETER_POINTER_ALIGNMENT);
|
||||
BufferCursor = ((uint8*)BufferCursor) + (SHADER_PARAMETER_POINTER_ALIGNMENT * 2);
|
||||
|
||||
if (Value && Value->GetResource() && (Value->GetMaterialType() & MCT_Texture2DArray) != 0u)
|
||||
if (Value && Value->GetResource() && Value->TextureReference.TextureReferenceRHI && (Value->GetMaterialType() & MCT_Texture2DArray) != 0u)
|
||||
{
|
||||
check(Value->TextureReference.TextureReferenceRHI);
|
||||
*ResourceTableTexturePtr = Value->TextureReference.TextureReferenceRHI;
|
||||
const FSamplerStateRHIRef* SamplerSource = &Value->GetResource()->SamplerStateRHI;
|
||||
ESamplerSourceMode SourceMode = Parameter.SamplerSource;
|
||||
@@ -972,9 +970,8 @@ void FUniformExpressionSet::FillUniformBuffer(const FMaterialRenderContext& Mate
|
||||
void** ResourceTableSamplerPtr = (void**)((uint8*)BufferCursor + 1 * SHADER_PARAMETER_POINTER_ALIGNMENT);
|
||||
BufferCursor = ((uint8*)BufferCursor) + (SHADER_PARAMETER_POINTER_ALIGNMENT * 2);
|
||||
|
||||
if (Value && Value->GetResource() && (Value->GetMaterialType() & MCT_TextureCubeArray) != 0u)
|
||||
if (Value && Value->GetResource() && Value->TextureReference.TextureReferenceRHI && (Value->GetMaterialType() & MCT_TextureCubeArray) != 0u)
|
||||
{
|
||||
check(Value->TextureReference.TextureReferenceRHI);
|
||||
*ResourceTableTexturePtr = Value->TextureReference.TextureReferenceRHI;
|
||||
const FSamplerStateRHIRef* SamplerSource = &Value->GetResource()->SamplerStateRHI;
|
||||
ESamplerSourceMode SourceMode = Parameter.SamplerSource;
|
||||
@@ -1012,9 +1009,8 @@ void FUniformExpressionSet::FillUniformBuffer(const FMaterialRenderContext& Mate
|
||||
BufferCursor = ((uint8*)BufferCursor) + (SHADER_PARAMETER_POINTER_ALIGNMENT * 2);
|
||||
check(BufferCursor <= TempBuffer + TempBufferSize);
|
||||
|
||||
if(Value && Value->GetResource() && (Value->GetMaterialType() & MCT_VolumeTexture) != 0u)
|
||||
if(Value && Value->GetResource() && Value->TextureReference.TextureReferenceRHI && (Value->GetMaterialType() & MCT_VolumeTexture) != 0u)
|
||||
{
|
||||
check(Value->TextureReference.TextureReferenceRHI);
|
||||
*ResourceTableTexturePtr = Value->TextureReference.TextureReferenceRHI;
|
||||
const FSamplerStateRHIRef* SamplerSource = &Value->GetResource()->SamplerStateRHI;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user