Skip to content

Commit

Permalink
fix: remove global cache
Browse files Browse the repository at this point in the history
  • Loading branch information
mob-sakai committed Nov 14, 2023
1 parent 3c85252 commit c33f2f6
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 29 deletions.
4 changes: 1 addition & 3 deletions Packages/src/Runtime/CompositeCanvasRenderer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -621,9 +621,7 @@ public override Material GetModifiedMaterial(Material baseMaterial)
Profiler.BeginSample("(CCR)[CompositeCanvasRenderer] GetModifiedMaterial > Get material");
var hash = CreateHash(colorMode, srcBlendMode, dstBlendMode);
_createMaterial = _createMaterial ?? CreateMaterial;
MaterialRegistry.Get(hash, ref _renderingMaterial,
_createMaterial,
CompositeCanvasRendererProjectSettings.cacheRendererMaterial);
MaterialRegistry.Get(hash, ref _renderingMaterial, _createMaterial);
Profiler.EndSample();

return _renderingMaterial;
Expand Down
20 changes: 2 additions & 18 deletions Packages/src/Runtime/CompositeCanvasSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -257,24 +257,8 @@ void IMeshModifier.ModifyMesh(VertexHelper verts)
_mesh.RecalculateBounds();
Profiler.EndSample();
Logging.Log(this, " >>>> Graphic mesh is modified.");
}

public static int Compare(CompositeCanvasSource l, CompositeCanvasSource r)
{
if (l == r) return 0;
if ((!l || !l._graphic) && (r && r._graphic)) return -1;
if (l && l._graphic && (!r || !r._graphic)) return 1;

Profiler.BeginSample("(CCR)[CompositeCanvasSource] Compare > depth");
var lDepth = l._graphic ? l._graphic.depth : -1;
var rDepth = r._graphic ? r._graphic.depth : -1;
Profiler.EndSample();
if (lDepth != -1 && rDepth != -1) return lDepth - rDepth;

Profiler.BeginSample("(CCR)[CompositeCanvasSource] Compare > CompareHierarchyIndex");
var compare = l.transform.CompareHierarchyIndex(r.transform, l._renderer ? l._renderer.transform : null);
Profiler.EndSample();
return compare;
SetRendererDirty();
}

/// <summary>
Expand Down Expand Up @@ -337,7 +321,7 @@ private void SetRendererDirty()

internal void Bake(CommandBuffer cb, bool usePopMaterial)
{
if (!_graphic || !_graphic.canvasRenderer || !IsInScreen()) return;
if (!_graphic || !_graphic.isActiveAndEnabled || !_graphic.canvasRenderer || !IsInScreen()) return;
var cr = _graphic.canvasRenderer;
if (usePopMaterial && cr.popMaterialCount == 0) return;

Expand Down
2 changes: 1 addition & 1 deletion Packages/src/Runtime/Effects/CompositeCanvasBlur.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ public override void ApplyBakedEffect(CommandBuffer cb)
() => new Material(Shader.Find("Hidden/UI/CompositeCanvasRenderer/Blur"))
{
hideFlags = HideFlags.DontSave | HideFlags.NotEditable
}, CompositeCanvasRendererProjectSettings.cacheRendererMaterial);
});
Profiler.EndSample();

var scale = w / compositeCanvasRenderer.renderingSize.x;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,12 @@ public class CompositeCanvasRendererProjectSettings
[SerializeField]
private TransformSensitivity m_TransformSensitivity = TransformSensitivity.Medium;

[SerializeField]
private bool m_CacheRendererMaterial = true;

#if UNITY_EDITOR
[Header("Shader")]
[SerializeField]
private bool m_AutoIncludeShaders = true;
#endif

public static bool cacheRendererMaterial => instance.m_CacheRendererMaterial;

public static TransformSensitivity transformSensitivity
{
get => instance.m_TransformSensitivity;
Expand Down
4 changes: 2 additions & 2 deletions Packages/src/Runtime/Utilities/MaterialRegistry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ private static void Clear()
/// <summary>
/// Adds or retrieves a cached material based on the hash.
/// </summary>
public static void Get(Hash128 hash, ref Material material, Func<Material> onCreate, bool globalCache = false)
public static void Get(Hash128 hash, ref Material material, Func<Material> onCreate)
{
// Find existing entry.
Profiler.BeginSample("(CCR)[MaterialRegistry] Get > Find existing entry");
Expand Down Expand Up @@ -64,7 +64,7 @@ public static void Get(Hash128 hash, ref Material material, Func<Material> onCre
var entry = s_MatEntryPool.Rent();
entry.customMat = onCreate();
entry.hash = hash;
entry.count = globalCache ? 2 : 1;
entry.count = 1;
s_List.Add(entry);
Logging.Log(typeof(MaterialRegistry),
$"Get(#{s_List.Count}): {entry.hash.GetHashCode()}, {entry.customMat.shader}");
Expand Down

0 comments on commit c33f2f6

Please sign in to comment.