Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(890)

Unified Diff: src/gpu/GrStencilBuffer.cpp

Issue 815833004: Add a simpler key type for scratch resource keys. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: final fix Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrStencilBuffer.h ('k') | src/gpu/GrTexture.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrStencilBuffer.cpp
diff --git a/src/gpu/GrStencilBuffer.cpp b/src/gpu/GrStencilBuffer.cpp
index 5aa56e07173c58a3bacabc3fa2a5ef475a70ed8a..be463a0ccf675f68ca011e4e3ec855afc0643ab9 100644
--- a/src/gpu/GrStencilBuffer.cpp
+++ b/src/gpu/GrStencilBuffer.cpp
@@ -7,35 +7,13 @@
*/
#include "GrStencilBuffer.h"
+#include "GrResourceKey.h"
-#include "GrContext.h"
-#include "GrGpu.h"
-#include "GrResourceCache2.h"
-
-namespace {
-// we should never have more than one stencil buffer with same combo of (width,height,samplecount)
-void gen_cache_id(int width, int height, int sampleCnt, GrCacheID* cacheID) {
- static const GrCacheID::Domain gStencilBufferDomain = GrResourceKey::ScratchDomain();
- GrCacheID::Key key;
- uint32_t* keyData = key.fData32;
- keyData[0] = width;
- keyData[1] = height;
- keyData[2] = sampleCnt;
- memset(keyData + 3, 0, sizeof(key) - 3 * sizeof(uint32_t));
- GR_STATIC_ASSERT(sizeof(key) >= 3 * sizeof(uint32_t));
- cacheID->reset(gStencilBufferDomain, key);
-}
-}
-
-GrResourceKey GrStencilBuffer::ComputeKey(int width,
- int height,
- int sampleCnt) {
- // All SBs are created internally to attach to RTs so they all use the same domain.
- static const GrResourceKey::ResourceType gStencilBufferResourceType =
- GrResourceKey::GenerateResourceType();
- GrCacheID id;
- gen_cache_id(width, height, sampleCnt, &id);
-
- // we don't use any flags for SBs currently.
- return GrResourceKey(id, gStencilBufferResourceType, 0);
+void GrStencilBuffer::ComputeKey(int width, int height, int sampleCnt, GrScratchKey* key) {
+ static const GrScratchKey::ResourceType kType = GrScratchKey::GenerateResourceType();
+ GrScratchKey::Builder builder(key, kType, 2);
+ SkASSERT(width <= SK_MaxU16);
+ SkASSERT(height <= SK_MaxU16);
+ builder[0] = width | (height << 16);
+ builder[1] = sampleCnt;
}
« no previous file with comments | « src/gpu/GrStencilBuffer.h ('k') | src/gpu/GrTexture.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698