e13ca329fc
Add extended config specification form that can be used to run different gpu backend with different APIs. The configs can be specified with the form: gpu(api=string,dit=bool,nvpr=bool,samples=int) This replaces and removes the --gpuAPI flag. All existing configs should still work. Adds following documentation: out/Debug/dm --help config Flags: --config: type: string default: 565 8888 gpu nonrendering Options: 565 8888 debug gpu gpudebug gpudft gpunull msaa16 msaa4 nonrendering null nullgpu nvprmsaa16 nvprmsaa4 pdf pdf_poppler skp svg xps or use extended form 'backend(option=value,...)'. Extended form: 'backend(option=value,...)' Possible backends and options: gpu(api=string,dit=bool,nvpr=bool,samples=int) GPU backend api type: string default: native. Select graphics API to use with gpu backend. Options: native Use platform default OpenGL or OpenGL ES backend. gl Use OpenGL. gles Use OpenGL ES. debug Use debug OpenGL. null Use null OpenGL. dit type: bool default: false. Use device independent text. nvpr type: bool default: false. Use NV_path_rendering OpenGL and OpenGL ES extension. samples type: int default: 0. Use multisampling with N samples. Predefined configs: gpu = gpu() msaa4 = gpu(samples=4) msaa16 = gpu(samples=16) nvprmsaa4 = gpu(nvpr=true,samples=4) nvprmsaa16 = gpu(nvpr=true,samples=16) gpudft = gpu(dit=true) gpudebug = gpu(api=debug) gpunull = gpu(api=null) debug = gpu(api=debug) nullgpu = gpu(api=null) BUG=skia:2992 Review URL: https://codereview.chromium.org/1490113005
50 lines
1.6 KiB
C++
50 lines
1.6 KiB
C++
/*
|
|
* Copyright 2011 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#include "SkTypes.h"
|
|
|
|
#if SK_SUPPORT_GPU
|
|
|
|
#include "GrContextFactory.h"
|
|
#include "GrCaps.h"
|
|
#include "Test.h"
|
|
|
|
DEF_GPUTEST(GrContextFactory_NVPRContextOptionHasPathRenderingSupport, reporter, /*factory*/) {
|
|
// Test that if NVPR is requested, the context always has path rendering
|
|
// or the context creation fails.
|
|
GrContextFactory testFactory;
|
|
// Test that if NVPR is possible, caps are in sync.
|
|
for (int i = 0; i < GrContextFactory::kGLContextTypeCnt; ++i) {
|
|
GrContextFactory::GLContextType glCtxType = static_cast<GrContextFactory::GLContextType>(i);
|
|
GrContext* context = testFactory.get(glCtxType,
|
|
GrContextFactory::kEnableNVPR_GLContextOptions);
|
|
if (!context) {
|
|
continue;
|
|
}
|
|
REPORTER_ASSERT(
|
|
reporter,
|
|
context->caps()->shaderCaps()->pathRenderingSupport());
|
|
}
|
|
}
|
|
|
|
DEF_GPUTEST(GrContextFactory_NoPathRenderingUnlessNVPRRequested, reporter, /*factory*/) {
|
|
// Test that if NVPR is not requested, the context never has path rendering support.
|
|
|
|
GrContextFactory testFactory;
|
|
for (int i = 0; i <= GrContextFactory::kLastGLContextType; ++i) {
|
|
GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType)i;
|
|
GrContext* context = testFactory.get(glCtxType);
|
|
if (context) {
|
|
REPORTER_ASSERT(
|
|
reporter,
|
|
!context->caps()->shaderCaps()->pathRenderingSupport());
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|