DRTVWR-559 Fix for bad hashing of materials breaking render batches and who knows what else.
parent
c4bc717669
commit
e23b3972a0
|
|
@ -692,3 +692,13 @@ void LLGLTFMaterial::applyOverride(const LLGLTFMaterial& override_mat)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
LLUUID LLGLTFMaterial::getHash() const
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
|
||||
// HACK - hash the bytes of this object but don't include the ref count
|
||||
LLUUID hash;
|
||||
HBXXH128::digest(hash, (unsigned char*)this + sizeof(LLRefCount), sizeof(*this) - sizeof(LLRefCount));
|
||||
return hash;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -115,14 +115,7 @@ public:
|
|||
bool mOverrideAlphaMode = false;
|
||||
|
||||
// get a UUID based on a hash of this LLGLTFMaterial
|
||||
LLUUID getHash() const
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
|
||||
// HACK - hash the bytes of this object but don't include the ref count
|
||||
LLUUID hash;
|
||||
HBXXH128::digest(hash, (unsigned char*)this + sizeof(S32), sizeof(this) - sizeof(S32));
|
||||
return hash;
|
||||
}
|
||||
LLUUID getHash() const;
|
||||
|
||||
//setters for various members (will clamp to acceptable ranges)
|
||||
// for_override - set to true if this value is being set as part of an override (important for handling override to default value)
|
||||
|
|
|
|||
|
|
@ -481,7 +481,7 @@ LLUUID LLMaterial::getHash() const
|
|||
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
|
||||
// HACK - hash the bytes of this LLMaterial, but trim off the S32 in LLRefCount
|
||||
LLUUID id;
|
||||
HBXXH128::digest(id, (unsigned char*)this + sizeof(S32), sizeof(this) - sizeof(S32));
|
||||
HBXXH128::digest(id, (unsigned char*)this + sizeof(LLRefCount), sizeof(*this) - sizeof(LLRefCount));
|
||||
return id;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5416,7 +5416,8 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep,
|
|||
|
||||
if (gltf_mat)
|
||||
{
|
||||
// nothing to do, render pools will reference the GLTF material
|
||||
// just remember the material ID, render pools will reference the GLTF material
|
||||
draw_info->mMaterialID = mat_id;
|
||||
}
|
||||
else if (mat)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue