Fixed missing initialization of ShaderCollection::Item::m_renderStatesOverlay.
This RenderStates is used to override the values in the final draw packet, if the values are valid; it's supposed to be initialized to invalid values, but it wasn't. So the depth compare function was getting set to Less instead of GreaterEqual. This wasn't a problem when using serialized assets from disk, because the deserialization uses the default constructor which did initialize m_renderStatesOverlay. No all Item constructors initialize m_renderStatesOverlay. Signed-off-by: santorac <55155825+santorac@users.noreply.github.com> Signed-off-by: Guthrie Adams <guthadam@amazon.com>
This commit is contained in:
@@ -193,7 +193,7 @@ namespace AZ
|
||||
MaterialAssetCreator materialAssetCreator;
|
||||
materialAssetCreator.SetElevateWarnings(elevateWarnings);
|
||||
|
||||
#if 0
|
||||
#if 1
|
||||
MaterialTypeSourceData materialTypeSourceData;
|
||||
AZStd::string materialTypeSourcePath = AssetUtils::ResolvePathReference(materialSourceFilePath, m_materialType);
|
||||
if (!AZ::RPI::JsonUtils::LoadObjectFromFile(materialTypeSourcePath, materialTypeSourceData))
|
||||
|
||||
@@ -126,8 +126,8 @@ namespace AZ
|
||||
}
|
||||
|
||||
ShaderCollection::Item::Item()
|
||||
: m_renderStatesOverlay(RHI::GetInvalidRenderStates())
|
||||
{
|
||||
m_renderStatesOverlay = RHI::GetInvalidRenderStates();
|
||||
}
|
||||
|
||||
ShaderCollection::Item& ShaderCollection::operator[](size_t i)
|
||||
@@ -156,7 +156,8 @@ namespace AZ
|
||||
}
|
||||
|
||||
ShaderCollection::Item::Item(const Data::Asset<ShaderAsset>& shaderAsset, const AZ::Name& shaderTag, ShaderVariantId variantId)
|
||||
: m_shaderAsset(shaderAsset)
|
||||
: m_renderStatesOverlay(RHI::GetInvalidRenderStates())
|
||||
, m_shaderAsset(shaderAsset)
|
||||
, m_shaderVariantId(variantId)
|
||||
, m_shaderTag(shaderTag)
|
||||
, m_shaderOptionGroup(shaderAsset->GetShaderOptionGroupLayout(), variantId)
|
||||
@@ -164,7 +165,8 @@ namespace AZ
|
||||
}
|
||||
|
||||
ShaderCollection::Item::Item(Data::Asset<ShaderAsset>&& shaderAsset, const AZ::Name& shaderTag, ShaderVariantId variantId)
|
||||
: m_shaderAsset(AZStd::move(shaderAsset))
|
||||
: m_renderStatesOverlay(RHI::GetInvalidRenderStates())
|
||||
, m_shaderAsset(AZStd::move(shaderAsset))
|
||||
, m_shaderVariantId(variantId)
|
||||
, m_shaderTag(shaderTag)
|
||||
, m_shaderOptionGroup(shaderAsset->GetShaderOptionGroupLayout(), variantId)
|
||||
|
||||
Reference in New Issue
Block a user