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 materialAssetCreator;
|
||||||
materialAssetCreator.SetElevateWarnings(elevateWarnings);
|
materialAssetCreator.SetElevateWarnings(elevateWarnings);
|
||||||
|
|
||||||
#if 0
|
#if 1
|
||||||
MaterialTypeSourceData materialTypeSourceData;
|
MaterialTypeSourceData materialTypeSourceData;
|
||||||
AZStd::string materialTypeSourcePath = AssetUtils::ResolvePathReference(materialSourceFilePath, m_materialType);
|
AZStd::string materialTypeSourcePath = AssetUtils::ResolvePathReference(materialSourceFilePath, m_materialType);
|
||||||
if (!AZ::RPI::JsonUtils::LoadObjectFromFile(materialTypeSourcePath, materialTypeSourceData))
|
if (!AZ::RPI::JsonUtils::LoadObjectFromFile(materialTypeSourcePath, materialTypeSourceData))
|
||||||
|
|||||||
@@ -126,8 +126,8 @@ namespace AZ
|
|||||||
}
|
}
|
||||||
|
|
||||||
ShaderCollection::Item::Item()
|
ShaderCollection::Item::Item()
|
||||||
|
: m_renderStatesOverlay(RHI::GetInvalidRenderStates())
|
||||||
{
|
{
|
||||||
m_renderStatesOverlay = RHI::GetInvalidRenderStates();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ShaderCollection::Item& ShaderCollection::operator[](size_t i)
|
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)
|
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_shaderVariantId(variantId)
|
||||||
, m_shaderTag(shaderTag)
|
, m_shaderTag(shaderTag)
|
||||||
, m_shaderOptionGroup(shaderAsset->GetShaderOptionGroupLayout(), variantId)
|
, m_shaderOptionGroup(shaderAsset->GetShaderOptionGroupLayout(), variantId)
|
||||||
@@ -164,7 +165,8 @@ namespace AZ
|
|||||||
}
|
}
|
||||||
|
|
||||||
ShaderCollection::Item::Item(Data::Asset<ShaderAsset>&& shaderAsset, const AZ::Name& shaderTag, ShaderVariantId variantId)
|
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_shaderVariantId(variantId)
|
||||||
, m_shaderTag(shaderTag)
|
, m_shaderTag(shaderTag)
|
||||||
, m_shaderOptionGroup(shaderAsset->GetShaderOptionGroupLayout(), variantId)
|
, m_shaderOptionGroup(shaderAsset->GetShaderOptionGroupLayout(), variantId)
|
||||||
|
|||||||
Reference in New Issue
Block a user