Fix gpuResourceCacheLimit implementation

We need to wait until there's a resourceCache to set the value on.

Bug: skia:10877
Change-Id: I1558af6c369e857fbafb450179d3b341250ad16a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397459
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
diff --git a/src/gpu/GrDirectContext.cpp b/src/gpu/GrDirectContext.cpp
index 6435e7e..f402df0 100644
--- a/src/gpu/GrDirectContext.cpp
+++ b/src/gpu/GrDirectContext.cpp
@@ -65,11 +65,6 @@
 GrDirectContext::GrDirectContext(GrBackendApi backend, const GrContextOptions& options)
         : INHERITED(GrContextThreadSafeProxyPriv::Make(backend, options), false)
         , fDirectContextID(DirectContextID::Next()) {
-#if GR_TEST_UTILS
-    if (options.fResourceCacheLimitOverride != -1) {
-        this->setResourceCacheLimit(options.fResourceCacheLimitOverride);
-    }
-#endif
 }
 
 GrDirectContext::~GrDirectContext() {
@@ -221,6 +216,11 @@
                                                        this->contextID());
     fResourceCache->setProxyProvider(this->proxyProvider());
     fResourceCache->setThreadSafeCache(this->threadSafeCache());
+#if GR_TEST_UTILS
+    if (this->options().fResourceCacheLimitOverride != -1) {
+        this->setResourceCacheLimit(this->options().fResourceCacheLimitOverride);
+    }
+#endif
     fResourceProvider = std::make_unique<GrResourceProvider>(fGpu.get(), fResourceCache.get(),
                                                              this->singleOwner());
     fMappedBufferManager = std::make_unique<GrClientMappedBufferManager>(this->directContextID());