Vulkan: Fix SharedFence::mRefCountedFence leak

This was introduced in crrev.com/c/4159871. mRefCountedFence itself is
not been properly deleted.

Bug: b/261106868
Change-Id: I91b620d96064cc0a8a155327336881d26a5bc33b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4198475
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/CommandProcessor.cpp b/src/libANGLE/renderer/vulkan/CommandProcessor.cpp
index 5714810..5b51be8 100644
--- a/src/libANGLE/renderer/vulkan/CommandProcessor.cpp
+++ b/src/libANGLE/renderer/vulkan/CommandProcessor.cpp
@@ -207,8 +207,12 @@
         if (!mRefCountedFence->isReferenced())
         {
             mRefCountedFence->get().destroy(device);
+            SafeDelete(mRefCountedFence);
         }
-        mRefCountedFence = nullptr;
+        else
+        {
+            mRefCountedFence = nullptr;
+        }
     }
 }
 
@@ -220,8 +224,13 @@
         if (!mRefCountedFence->isReferenced())
         {
             mRecycler->recycle(std::move(mRefCountedFence->get()));
+            ASSERT(!mRefCountedFence->get().valid());
+            SafeDelete(mRefCountedFence);
         }
-        mRefCountedFence = nullptr;
+        else
+        {
+            mRefCountedFence = nullptr;
+        }
     }
 }