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

Side by Side Diff: tests/ResourceCacheTest.cpp

Issue 1083133002: Rename GrStencilBuffer to GrStencilAttachment (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Align data member Created 5 years, 8 months 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 unified diff | Download patch
« no previous file with comments | « src/gpu/gl/GrGLStencilBuffer.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 // Include here to ensure SK_SUPPORT_GPU is set correctly before it is examined. 8 // Include here to ensure SK_SUPPORT_GPU is set correctly before it is examined.
9 #include "SkTypes.h" 9 #include "SkTypes.h"
10 10
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 GrSurfaceDesc smallDesc; 72 GrSurfaceDesc smallDesc;
73 smallDesc.fFlags = kRenderTarget_GrSurfaceFlag; 73 smallDesc.fFlags = kRenderTarget_GrSurfaceFlag;
74 smallDesc.fConfig = kSkia8888_GrPixelConfig; 74 smallDesc.fConfig = kSkia8888_GrPixelConfig;
75 smallDesc.fWidth = 4; 75 smallDesc.fWidth = 4;
76 smallDesc.fHeight = 4; 76 smallDesc.fHeight = 4;
77 smallDesc.fSampleCnt = 0; 77 smallDesc.fSampleCnt = 0;
78 78
79 // Test that two budgeted RTs with the same desc share a stencil buffer. 79 // Test that two budgeted RTs with the same desc share a stencil buffer.
80 SkAutoTUnref<GrTexture> smallRT0(context->createTexture(smallDesc, true)); 80 SkAutoTUnref<GrTexture> smallRT0(context->createTexture(smallDesc, true));
81 if (smallRT0 && smallRT0->asRenderTarget()) { 81 if (smallRT0 && smallRT0->asRenderTarget()) {
82 smallRT0->asRenderTarget()->renderTargetPriv().attachStencilBuffer(); 82 smallRT0->asRenderTarget()->renderTargetPriv().attachStencilAttachment() ;
83 } 83 }
84 84
85 SkAutoTUnref<GrTexture> smallRT1(context->createTexture(smallDesc, true)); 85 SkAutoTUnref<GrTexture> smallRT1(context->createTexture(smallDesc, true));
86 if (smallRT1 && smallRT1->asRenderTarget()) { 86 if (smallRT1 && smallRT1->asRenderTarget()) {
87 smallRT1->asRenderTarget()->renderTargetPriv().attachStencilBuffer(); 87 smallRT1->asRenderTarget()->renderTargetPriv().attachStencilAttachment() ;
88 } 88 }
89 89
90 REPORTER_ASSERT(reporter, smallRT0 && smallRT1 && 90 REPORTER_ASSERT(reporter,
91 smallRT0->asRenderTarget() && smallRT1->asRenderTa rget() && 91 smallRT0 && smallRT1 &&
92 smallRT0->asRenderTarget()->renderTargetPriv().get StencilBuffer() == 92 smallRT0->asRenderTarget() && smallRT1->asRenderTarget() &&
93 smallRT1->asRenderTarget()->renderTargetPriv().get StencilBuffer()); 93 smallRT0->asRenderTarget()->renderTargetPriv().getStencilAtt achment() ==
94 smallRT1->asRenderTarget()->renderTargetPriv().getStencilAtt achment());
94 95
95 // An unbudgeted RT with the same desc should also share. 96 // An unbudgeted RT with the same desc should also share.
96 SkAutoTUnref<GrTexture> smallRT2(context->createTexture(smallDesc, false)); 97 SkAutoTUnref<GrTexture> smallRT2(context->createTexture(smallDesc, false));
97 if (smallRT2 && smallRT2->asRenderTarget()) { 98 if (smallRT2 && smallRT2->asRenderTarget()) {
98 smallRT2->asRenderTarget()->renderTargetPriv().attachStencilBuffer(); 99 smallRT2->asRenderTarget()->renderTargetPriv().attachStencilAttachment() ;
99 } 100 }
100 REPORTER_ASSERT(reporter, smallRT0 && smallRT2 && 101 REPORTER_ASSERT(reporter,
101 smallRT0->asRenderTarget() && smallRT2->asRenderTa rget() && 102 smallRT0 && smallRT2 &&
102 smallRT0->asRenderTarget()->renderTargetPriv().get StencilBuffer() == 103 smallRT0->asRenderTarget() && smallRT2->asRenderTarget() &&
103 smallRT2->asRenderTarget()->renderTargetPriv().get StencilBuffer()); 104 smallRT0->asRenderTarget()->renderTargetPriv().getStencilAtt achment() ==
105 smallRT2->asRenderTarget()->renderTargetPriv().getStencilAtt achment());
104 106
105 // An RT with a much larger size should not share. 107 // An RT with a much larger size should not share.
106 GrSurfaceDesc bigDesc; 108 GrSurfaceDesc bigDesc;
107 bigDesc.fFlags = kRenderTarget_GrSurfaceFlag; 109 bigDesc.fFlags = kRenderTarget_GrSurfaceFlag;
108 bigDesc.fConfig = kSkia8888_GrPixelConfig; 110 bigDesc.fConfig = kSkia8888_GrPixelConfig;
109 bigDesc.fWidth = 400; 111 bigDesc.fWidth = 400;
110 bigDesc.fHeight = 200; 112 bigDesc.fHeight = 200;
111 bigDesc.fSampleCnt = 0; 113 bigDesc.fSampleCnt = 0;
112 SkAutoTUnref<GrTexture> bigRT(context->createTexture(bigDesc, false)); 114 SkAutoTUnref<GrTexture> bigRT(context->createTexture(bigDesc, false));
113 if (bigRT && bigRT->asRenderTarget()) { 115 if (bigRT && bigRT->asRenderTarget()) {
114 bigRT->asRenderTarget()->renderTargetPriv().attachStencilBuffer(); 116 bigRT->asRenderTarget()->renderTargetPriv().attachStencilAttachment();
115 } 117 }
116 REPORTER_ASSERT(reporter, smallRT0 && bigRT && 118 REPORTER_ASSERT(reporter,
117 smallRT0->asRenderTarget() && bigRT->asRenderTarge t() && 119 smallRT0 && bigRT &&
118 smallRT0->asRenderTarget()->renderTargetPriv().get StencilBuffer() != 120 smallRT0->asRenderTarget() && bigRT->asRenderTarget() &&
119 bigRT->asRenderTarget()->renderTargetPriv().getSte ncilBuffer()); 121 smallRT0->asRenderTarget()->renderTargetPriv().getStencilAtt achment() !=
122 bigRT->asRenderTarget()->renderTargetPriv().getStencilAttach ment());
120 123
121 if (context->getMaxSampleCount() >= 4) { 124 if (context->getMaxSampleCount() >= 4) {
122 // An RT with a different sample count should not share. 125 // An RT with a different sample count should not share.
123 GrSurfaceDesc smallMSAADesc = smallDesc; 126 GrSurfaceDesc smallMSAADesc = smallDesc;
124 smallMSAADesc.fSampleCnt = 4; 127 smallMSAADesc.fSampleCnt = 4;
125 SkAutoTUnref<GrTexture> smallMSAART0(context->createTexture(smallMSAADes c, false)); 128 SkAutoTUnref<GrTexture> smallMSAART0(context->createTexture(smallMSAADes c, false));
126 if (smallMSAART0 && smallMSAART0->asRenderTarget()) { 129 if (smallMSAART0 && smallMSAART0->asRenderTarget()) {
127 smallMSAART0->asRenderTarget()->renderTargetPriv().attachStencilBuff er(); 130 smallMSAART0->asRenderTarget()->renderTargetPriv().attachStencilAtta chment();
128 } 131 }
129 #ifdef SK_BUILD_FOR_ANDROID 132 #ifdef SK_BUILD_FOR_ANDROID
130 if (!smallMSAART0) { 133 if (!smallMSAART0) {
131 // The nexus player seems to fail to create MSAA textures. 134 // The nexus player seems to fail to create MSAA textures.
132 return; 135 return;
133 } 136 }
134 #endif 137 #endif
135 REPORTER_ASSERT(reporter, 138 REPORTER_ASSERT(reporter,
136 smallRT0 && smallMSAART0 && 139 smallRT0 && smallMSAART0 &&
137 smallRT0->asRenderTarget() && smallMSAART0->asRenderTarg et() && 140 smallRT0->asRenderTarget() && smallMSAART0->asRenderTarg et() &&
138 smallRT0->asRenderTarget()->renderTargetPriv().getStenci lBuffer() != 141 smallRT0->asRenderTarget()->renderTargetPriv().getStenci lAttachment() !=
139 smallMSAART0->asRenderTarget()->renderTargetPriv().getSt encilBuffer()); 142 smallMSAART0->asRenderTarget()->renderTargetPriv().getSt encilAttachment());
140 // A second MSAA RT should share with the first MSAA RT. 143 // A second MSAA RT should share with the first MSAA RT.
141 SkAutoTUnref<GrTexture> smallMSAART1(context->createTexture(smallMSAADes c, false)); 144 SkAutoTUnref<GrTexture> smallMSAART1(context->createTexture(smallMSAADes c, false));
142 if (smallMSAART1 && smallMSAART1->asRenderTarget()) { 145 if (smallMSAART1 && smallMSAART1->asRenderTarget()) {
143 smallMSAART1->asRenderTarget()->renderTargetPriv().attachStencilBuff er(); 146 smallMSAART1->asRenderTarget()->renderTargetPriv().attachStencilAtta chment();
144 } 147 }
145 REPORTER_ASSERT(reporter, 148 REPORTER_ASSERT(reporter,
146 smallMSAART0 && smallMSAART1 && 149 smallMSAART0 && smallMSAART1 &&
147 smallMSAART0->asRenderTarget() && 150 smallMSAART0->asRenderTarget() &&
148 smallMSAART1->asRenderTarget() && 151 smallMSAART1->asRenderTarget() &&
149 smallMSAART0->asRenderTarget()->renderTargetPriv().getSt encilBuffer() == 152 smallMSAART0->asRenderTarget()->renderTargetPriv().getSt encilAttachment() ==
150 smallMSAART1->asRenderTarget()->renderTargetPriv().getSt encilBuffer()); 153 smallMSAART1->asRenderTarget()->renderTargetPriv().getSt encilAttachment());
151 // But not one with a larger sample count should not. (Also check that t he request for 4 154 // But not one with a larger sample count should not. (Also check that t he request for 4
152 // samples didn't get rounded up to >= 8 or else they could share.). 155 // samples didn't get rounded up to >= 8 or else they could share.).
153 if (context->getMaxSampleCount() >= 8 && smallMSAART0 && smallMSAART0->a sRenderTarget() && 156 if (context->getMaxSampleCount() >= 8 && smallMSAART0 && smallMSAART0->a sRenderTarget() &&
154 smallMSAART0->asRenderTarget()->numSamples() < 8) { 157 smallMSAART0->asRenderTarget()->numSamples() < 8) {
155 smallMSAADesc.fSampleCnt = 8; 158 smallMSAADesc.fSampleCnt = 8;
156 smallMSAART1.reset(context->createTexture(smallMSAADesc, false)); 159 smallMSAART1.reset(context->createTexture(smallMSAADesc, false));
157 SkAutoTUnref<GrTexture> smallMSAART1(context->createTexture(smallMSA ADesc, false)); 160 SkAutoTUnref<GrTexture> smallMSAART1(context->createTexture(smallMSA ADesc, false));
158 if (smallMSAART1 && smallMSAART1->asRenderTarget()) { 161 if (smallMSAART1 && smallMSAART1->asRenderTarget()) {
159 smallMSAART1->asRenderTarget()->renderTargetPriv().attachStencil Buffer(); 162 smallMSAART1->asRenderTarget()->renderTargetPriv().attachStencil Attachment();
160 } 163 }
161 REPORTER_ASSERT(reporter, 164 REPORTER_ASSERT(reporter,
162 smallMSAART0 && smallMSAART1 && 165 smallMSAART0 && smallMSAART1 &&
163 smallMSAART0->asRenderTarget() && 166 smallMSAART0->asRenderTarget() &&
164 smallMSAART1->asRenderTarget() && 167 smallMSAART1->asRenderTarget() &&
165 smallMSAART0->asRenderTarget()->renderTargetPriv().g etStencilBuffer() != 168 smallMSAART0->asRenderTarget()->renderTargetPriv().getSt encilAttachment() !=
166 smallMSAART1->asRenderTarget()->renderTargetPriv().g etStencilBuffer()); 169 smallMSAART1->asRenderTarget()->renderTargetPriv().getSt encilAttachment());
167 } 170 }
168 } 171 }
169 } 172 }
170 173
171 class TestResource : public GrGpuResource { 174 class TestResource : public GrGpuResource {
172 static const size_t kDefaultSize = 100; 175 static const size_t kDefaultSize = 100;
173 enum ScratchConstructor { kScratchConstructor }; 176 enum ScratchConstructor { kScratchConstructor };
174 public: 177 public:
175 SK_DECLARE_INST_COUNT(TestResource); 178 SK_DECLARE_INST_COUNT(TestResource);
176 /** Property that distinctly categorizes the resource. 179 /** Property that distinctly categorizes the resource.
(...skipping 1024 matching lines...) Expand 10 before | Expand all | Expand 10 after
1201 test_scratch_key_consistency(reporter); 1204 test_scratch_key_consistency(reporter);
1202 test_purge_invalidated(reporter); 1205 test_purge_invalidated(reporter);
1203 test_cache_chained_purge(reporter); 1206 test_cache_chained_purge(reporter);
1204 test_resource_size_changed(reporter); 1207 test_resource_size_changed(reporter);
1205 test_timestamp_wrap(reporter); 1208 test_timestamp_wrap(reporter);
1206 test_flush(reporter); 1209 test_flush(reporter);
1207 test_large_resource_count(reporter); 1210 test_large_resource_count(reporter);
1208 } 1211 }
1209 1212
1210 #endif 1213 #endif
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGLStencilBuffer.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698