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

Unified Diff: tests/GLProgramsTest.cpp

Issue 1717393002: Add "sample locations" feature to GrProcessor (Closed) Base URL: https://skia.googlesource.com/skia.git@upload_getmultisamp
Patch Set: addressed comments Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: tests/GLProgramsTest.cpp
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
index 81d1013dd0104775a937408f0978d38cae105885..8bd74456c078bfd74ac2fdcb49ff889a912b2b24 100644
--- a/tests/GLProgramsTest.cpp
+++ b/tests/GLProgramsTest.cpp
@@ -262,17 +262,19 @@ static void set_random_color_coverage_stages(GrPipelineBuilder* pipelineBuilder,
}
}
-static void set_random_state(GrPipelineBuilder* pipelineBuilder, SkRandom* random) {
- int state = 0;
- for (int i = 1; i <= GrPipelineBuilder::kLast_Flag; i <<= 1) {
- state |= random->nextBool() * i;
- }
-
+static void set_random_state(GrPipelineBuilder* pipelineBuilder, SkRandom* random,
+ const GrCaps& caps) {
+ enum { kStateMask = GrPipelineBuilder::kLast_Flag | (GrPipelineBuilder::kLast_Flag - 1) };
+ int state = random->nextU() & kStateMask;
// If we don't have an MSAA rendertarget then we have to disable useHWAA
if ((state | GrPipelineBuilder::kHWAntialias_Flag) &&
- !pipelineBuilder->getRenderTarget()->isUnifiedMultisampled()) {
+ !pipelineBuilder->getRenderTarget()->isStencilBufferMultisampled()) {
state &= ~GrPipelineBuilder::kHWAntialias_Flag;
}
+ // We can only use sample locations if they are supported and we have HWAA.
+ if (!caps.sampleLocationsSupport() || !(state & GrPipelineBuilder::kHWAntialias_Flag)) {
+ state &= ~GrPipelineBuilder::kSampleLocations_Flag;
+ }
pipelineBuilder->enableState(state);
}
@@ -352,7 +354,7 @@ bool GrDrawingManager::ProgramUnitTest(GrContext* context, int maxStages) {
GrProcessorTestData ptd(&random, context, context->caps(), rt, dummyTextures);
set_random_color_coverage_stages(&pipelineBuilder, &ptd, maxStages);
set_random_xpf(&pipelineBuilder, &ptd);
- set_random_state(&pipelineBuilder, &random);
+ set_random_state(&pipelineBuilder, &random, *context->caps());
set_random_stencil(&pipelineBuilder, &random);
SkAutoTUnref<GrDrawContext> drawContext(context->drawContext(rt));
« src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp ('K') | « src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698