Remove "nvpr" configs
The majority of our gm testing has been disabling nvpr, which doesn't match our real-world behavior where we use nvpr whenever available. This CL fixes the issue by completely removing the explicit nvpr configs. Now if we have nvpr, you get it. This CL also lowers the nvpr priority in the path renderer chain and adds a "NonNVPR" job on Quadro where we can continue to test our non-nvpr codepaths on NVIDIA. Bug: skia: Change-Id: I6a36f1101c8218adcaaf10cab25d2c28e70371f0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223828 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
This commit is contained in:
parent
9dbbf887ce
commit
b3c9745911
@ -52,8 +52,7 @@ void RunWithGPUTestContexts(GrContextTestFn* test, GrContextTypeFilterFn* contex
|
||||
// also tracks which of its contexts is current above that API and gets tripped up if the
|
||||
// native windowing API is used directly outside of the command buffer code.
|
||||
GrContextFactory factory(options);
|
||||
ContextInfo ctxInfo = factory.getContextInfo(
|
||||
contextType, GrContextFactory::ContextOverrides::kDisableNVPR);
|
||||
ContextInfo ctxInfo = factory.getContextInfo(contextType);
|
||||
if (contextTypeFilter && !(*contextTypeFilter)(contextType)) {
|
||||
continue;
|
||||
}
|
||||
@ -63,12 +62,6 @@ void RunWithGPUTestContexts(GrContextTestFn* test, GrContextTypeFilterFn* contex
|
||||
(*test)(reporter, ctxInfo);
|
||||
ctxInfo.grContext()->flush();
|
||||
}
|
||||
ctxInfo = factory.getContextInfo(contextType,
|
||||
GrContextFactory::ContextOverrides::kRequireNVPRSupport);
|
||||
if (ctxInfo.grContext()) {
|
||||
(*test)(reporter, ctxInfo);
|
||||
ctxInfo.grContext()->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
} // namespace skiatest
|
||||
|
@ -219,11 +219,6 @@ struct SK_API GrContextOptions {
|
||||
*/
|
||||
bool fSuppressDualSourceBlending = false;
|
||||
|
||||
/**
|
||||
* If true, the caps will never report driver support for path rendering.
|
||||
*/
|
||||
bool fSuppressPathRendering = false;
|
||||
|
||||
/**
|
||||
* If true, the caps will never support geometry shaders.
|
||||
*/
|
||||
|
@ -370,7 +370,7 @@ func deriveCompileTaskName(jobName string, parts map[string]string) string {
|
||||
ec := []string{}
|
||||
if val := parts["extra_config"]; val != "" {
|
||||
ec = strings.Split(val, "_")
|
||||
ignore := []string{"Skpbench", "AbandonGpuContext", "PreAbandonGpuContext", "Valgrind", "ReleaseAndAbandonGpuContext", "CCPR", "FSAA", "FAAA", "FDAA", "NativeFonts", "GDI", "NoGPUThreads", "ProcDump", "DDL1", "DDL3", "T8888", "DDLTotal", "DDLRecord", "9x9", "BonusConfigs", "SkottieTracing", "SkottieWASM"}
|
||||
ignore := []string{"Skpbench", "AbandonGpuContext", "PreAbandonGpuContext", "Valgrind", "ReleaseAndAbandonGpuContext", "CCPR", "FSAA", "FAAA", "FDAA", "NativeFonts", "GDI", "NoGPUThreads", "ProcDump", "DDL1", "DDL3", "T8888", "DDLTotal", "DDLRecord", "9x9", "BonusConfigs", "SkottieTracing", "SkottieWASM", "NonNVPR"}
|
||||
keep := make([]string, 0, len(ec))
|
||||
for _, part := range ec {
|
||||
if !util.In(part, ignore) {
|
||||
|
@ -596,6 +596,7 @@
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All",
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE",
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs",
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR",
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan",
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan_ProcDump",
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All",
|
||||
|
@ -592,7 +592,7 @@
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"copy",
|
||||
"set -x; /data/local/tmp/nanobench -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --pre_log --images --gpuStatsDump true --scales 1.0 1.1 --nocpu --config gl glsrgb glmsaa4 glnvpr4 --dontReduceOpListSplitting --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 swarming_bot_id skia-bot-123 swarming_task_id 123456 --key arch arm64 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value TegraX1 extra_config Android model NVIDIA_Shield os Android; echo $? >/data/local/tmp/rc",
|
||||
"set -x; /data/local/tmp/nanobench -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --pre_log --images --gpuStatsDump true --scales 1.0 1.1 --nocpu --config gl glsrgb glmsaa4 --dontReduceOpListSplitting --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 swarming_bot_id skia-bot-123 swarming_task_id 123456 --key arch arm64 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value TegraX1 extra_config Android model NVIDIA_Shield os Android; echo $? >/data/local/tmp/rc",
|
||||
"[START_DIR]/tmp/nanobench.sh"
|
||||
],
|
||||
"env": {
|
||||
@ -602,7 +602,7 @@
|
||||
"infra_step": true,
|
||||
"name": "write nanobench.sh",
|
||||
"~followup_annotations": [
|
||||
"@@@STEP_LOG_LINE@nanobench.sh@set -x; /data/local/tmp/nanobench -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --pre_log --images --gpuStatsDump true --scales 1.0 1.1 --nocpu --config gl glsrgb glmsaa4 glnvpr4 --dontReduceOpListSplitting --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 swarming_bot_id skia-bot-123 swarming_task_id 123456 --key arch arm64 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value TegraX1 extra_config Android model NVIDIA_Shield os Android; echo $? >/data/local/tmp/rc@@@",
|
||||
"@@@STEP_LOG_LINE@nanobench.sh@set -x; /data/local/tmp/nanobench -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --pre_log --images --gpuStatsDump true --scales 1.0 1.1 --nocpu --config gl glsrgb glmsaa4 --dontReduceOpListSplitting --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 swarming_bot_id skia-bot-123 swarming_task_id 123456 --key arch arm64 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value TegraX1 extra_config Android model NVIDIA_Shield os Android; echo $? >/data/local/tmp/rc@@@",
|
||||
"@@@STEP_LOG_END@nanobench.sh@@@"
|
||||
]
|
||||
},
|
||||
|
@ -164,7 +164,6 @@
|
||||
"gl",
|
||||
"glsrgb",
|
||||
"glmsaa8",
|
||||
"glnvpr8",
|
||||
"--loops",
|
||||
"1",
|
||||
"--samples",
|
||||
|
@ -96,11 +96,6 @@ def nanobench_flags(api, bot):
|
||||
configs.extend([gl_prefix, gl_prefix + 'srgb'])
|
||||
if sample_count:
|
||||
configs.append(gl_prefix + 'msaa' + sample_count)
|
||||
if ('TegraX1' in bot or
|
||||
'Quadro' in bot or
|
||||
'GTX' in bot or
|
||||
('GT610' in bot and 'Ubuntu17' not in bot)):
|
||||
configs.extend([gl_prefix + 'nvpr' + sample_count])
|
||||
|
||||
# We want to test both the OpenGL config and the GLES config on Linux Intel:
|
||||
# GL is used by Chrome, GLES is used by ChromeOS.
|
||||
|
@ -0,0 +1,446 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"ensure-directory",
|
||||
"--mode",
|
||||
"0777",
|
||||
"[START_DIR]\\tmp"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "makedirs tmp_dir"
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"copy",
|
||||
"[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
||||
"/path/to/tmp/"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "Get skp VERSION"
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"copy",
|
||||
"42",
|
||||
"[START_DIR]\\tmp\\SKP_VERSION"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "write SKP_VERSION",
|
||||
"~followup_annotations": [
|
||||
"@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
|
||||
"@@@STEP_LOG_END@SKP_VERSION@@@"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"copy",
|
||||
"[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
||||
"/path/to/tmp/"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "Get skimage VERSION"
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"copy",
|
||||
"42",
|
||||
"[START_DIR]\\tmp\\SK_IMAGE_VERSION"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "write SK_IMAGE_VERSION",
|
||||
"~followup_annotations": [
|
||||
"@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
|
||||
"@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"copy",
|
||||
"[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
||||
"/path/to/tmp/"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "Get svg VERSION"
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"copy",
|
||||
"42",
|
||||
"[START_DIR]\\tmp\\SVG_VERSION"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "write SVG_VERSION",
|
||||
"~followup_annotations": [
|
||||
"@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
|
||||
"@@@STEP_LOG_END@SVG_VERSION@@@"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"rmtree",
|
||||
"[START_DIR]\\test"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "rmtree test"
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py",
|
||||
"--json-output",
|
||||
"/path/to/tmp/json",
|
||||
"ensure-directory",
|
||||
"--mode",
|
||||
"0777",
|
||||
"[START_DIR]\\test"
|
||||
],
|
||||
"infra_step": true,
|
||||
"name": "makedirs test"
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = sys.argv[1]\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[2], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n",
|
||||
"https://example.com/hashes.txt",
|
||||
"[START_DIR]\\tmp\\uninteresting_hashes.txt"
|
||||
],
|
||||
"env": {
|
||||
"CHROME_HEADLESS": "1",
|
||||
"PATH": "<PATH>;RECIPE_REPO[depot_tools]"
|
||||
},
|
||||
"infra_step": true,
|
||||
"name": "get uninteresting hashes",
|
||||
"~followup_annotations": [
|
||||
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@import contextlib@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@import math@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@import socket@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@import time@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@import urllib2@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@HASHES_URL = sys.argv[1]@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[2], 'w') as f:@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ break@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ print e@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@",
|
||||
"@@@STEP_LOG_END@python.inline@@@"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
|
||||
],
|
||||
"name": "get swarming bot id",
|
||||
"~followup_annotations": [
|
||||
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
|
||||
"@@@STEP_LOG_END@python.inline@@@"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"python",
|
||||
"-u",
|
||||
"import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
|
||||
],
|
||||
"name": "get swarming task id",
|
||||
"~followup_annotations": [
|
||||
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
|
||||
"@@@STEP_LOG_END@python.inline@@@"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"powershell",
|
||||
"-ExecutionPolicy",
|
||||
"Unrestricted",
|
||||
"-File",
|
||||
"RECIPE_MODULE[skia::flavor]\\resources\\win_run_and_check_log.ps1",
|
||||
"[START_DIR]\\build\\dm",
|
||||
"--resourcePath",
|
||||
"[START_DIR]\\skia\\resources",
|
||||
"--skps",
|
||||
"[START_DIR]\\skp",
|
||||
"--images",
|
||||
"[START_DIR]\\skimage\\dm",
|
||||
"--colorImages",
|
||||
"[START_DIR]\\skimage\\colorspace",
|
||||
"--nameByHash",
|
||||
"--properties",
|
||||
"gitHash",
|
||||
"abc123",
|
||||
"builder",
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR",
|
||||
"buildbucket_build_id",
|
||||
"123454321",
|
||||
"task_id",
|
||||
"task_12345",
|
||||
"swarming_bot_id",
|
||||
"skia-bot-123",
|
||||
"swarming_task_id",
|
||||
"123456",
|
||||
"--svgs",
|
||||
"[START_DIR]\\svg",
|
||||
"--key",
|
||||
"arch",
|
||||
"x86_64",
|
||||
"compiler",
|
||||
"Clang",
|
||||
"configuration",
|
||||
"Debug",
|
||||
"cpu_or_gpu",
|
||||
"GPU",
|
||||
"cpu_or_gpu_value",
|
||||
"QuadroP400",
|
||||
"extra_config",
|
||||
"NonNVPR",
|
||||
"model",
|
||||
"Golo",
|
||||
"os",
|
||||
"Win10",
|
||||
"style",
|
||||
"default",
|
||||
"--uninterestingHashesFile",
|
||||
"[START_DIR]\\tmp\\uninteresting_hashes.txt",
|
||||
"--writePath",
|
||||
"[START_DIR]\\[SWARM_OUT_DIR]",
|
||||
"--dont_write",
|
||||
"pdf",
|
||||
"--randomProcessorTest",
|
||||
"--nocpu",
|
||||
"--pr",
|
||||
"~nvpr",
|
||||
"--config",
|
||||
"gl",
|
||||
"glmsaa4",
|
||||
"--src",
|
||||
"tests",
|
||||
"gm",
|
||||
"image",
|
||||
"colorImage",
|
||||
"svg",
|
||||
"--blacklist",
|
||||
"_",
|
||||
"svg",
|
||||
"_",
|
||||
"svgparse_",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"pal8os2v2.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"pal8os2v2-16.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"rgba32abf.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"rgb24prof.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"rgb24lprof.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"8bpp-pixeldata-cropped.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"4bpp-pixeldata-cropped.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"32bpp-pixeldata-cropped.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"24bpp-pixeldata-cropped.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"testimgari.jpg",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"rle8-height-negative.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"rle4-height-negative.bmp",
|
||||
"_",
|
||||
"image",
|
||||
"gen_platf",
|
||||
"error",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
"interlaced1.png",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
"interlaced2.png",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
"interlaced3.png",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".arw",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".cr2",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".dng",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".nef",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".nrw",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".orf",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".raf",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".rw2",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".pef",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".srw",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".ARW",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".CR2",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".DNG",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".NEF",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".NRW",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".ORF",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".RAF",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".RW2",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".PEF",
|
||||
"_",
|
||||
"image",
|
||||
"_",
|
||||
".SRW",
|
||||
"--nonativeFonts",
|
||||
"--verbose"
|
||||
],
|
||||
"env": {
|
||||
"CHROME_HEADLESS": "1",
|
||||
"PATH": "<PATH>;RECIPE_REPO[depot_tools]"
|
||||
},
|
||||
"name": "dm"
|
||||
},
|
||||
{
|
||||
"name": "$result"
|
||||
}
|
||||
]
|
@ -288,6 +288,11 @@ def dm_flags(api, bot):
|
||||
configs = [c for c in configs if c == 'gl' or c == 'gles']
|
||||
args.extend(['--pr', 'ccpr', '--cc', 'true', '--cachePathMasks', 'false'])
|
||||
|
||||
# Test non-nvpr on NVIDIA.
|
||||
if 'NonNVPR' in bot:
|
||||
configs = ['gl', 'glmsaa4']
|
||||
args.extend(['--pr', '~nvpr'])
|
||||
|
||||
# DDL is a GPU-only feature
|
||||
if 'DDL1' in bot:
|
||||
# This bot generates gl and vk comparison images for the large skps
|
||||
@ -1034,6 +1039,7 @@ TEST_BUILDERS = [
|
||||
'Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3',
|
||||
'Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Lottie',
|
||||
'Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs',
|
||||
'Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR',
|
||||
('Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All'
|
||||
'-ReleaseAndAbandonGpuContext'),
|
||||
'Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts_GDI',
|
||||
|
@ -3009,6 +3009,11 @@
|
||||
"Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs"
|
||||
]
|
||||
},
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR": {
|
||||
"tasks": [
|
||||
"Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR"
|
||||
]
|
||||
},
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": {
|
||||
"tasks": [
|
||||
"Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan"
|
||||
@ -70975,6 +70980,122 @@
|
||||
"test"
|
||||
]
|
||||
},
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR": {
|
||||
"caches": [
|
||||
{
|
||||
"name": "vpython",
|
||||
"path": "cache/vpython"
|
||||
}
|
||||
],
|
||||
"cipd_packages": [
|
||||
{
|
||||
"name": "infra/tools/luci/kitchen/${platform}",
|
||||
"path": ".",
|
||||
"version": "git_revision:d8f38ca9494b5af249942631f9cee45927f6b4bc"
|
||||
},
|
||||
{
|
||||
"name": "infra/tools/luci-auth/${platform}",
|
||||
"path": "cipd_bin_packages",
|
||||
"version": "git_revision:2c805f1c716f6c5ad2126b27ec88b8585a09481e"
|
||||
},
|
||||
{
|
||||
"name": "infra/tools/luci/vpython/${platform}",
|
||||
"path": "cipd_bin_packages",
|
||||
"version": "git_revision:f96db4b66034c859090be3c47eb38227277f228b"
|
||||
},
|
||||
{
|
||||
"name": "infra/python/cpython/${platform}",
|
||||
"path": "cipd_bin_packages",
|
||||
"version": "version:2.7.15.chromium14"
|
||||
},
|
||||
{
|
||||
"name": "skia/bots/skimage",
|
||||
"path": "skimage",
|
||||
"version": "version:39"
|
||||
},
|
||||
{
|
||||
"name": "skia/bots/skp",
|
||||
"path": "skp",
|
||||
"version": "version:192"
|
||||
},
|
||||
{
|
||||
"name": "skia/bots/svg",
|
||||
"path": "svg",
|
||||
"version": "version:9"
|
||||
}
|
||||
],
|
||||
"command": [
|
||||
"./kitchen${EXECUTABLE_SUFFIX}",
|
||||
"cook",
|
||||
"-checkout-dir",
|
||||
"recipe_bundle",
|
||||
"-mode",
|
||||
"swarming",
|
||||
"-luci-system-account",
|
||||
"system",
|
||||
"-cache-dir",
|
||||
"cache",
|
||||
"-temp-dir",
|
||||
"tmp",
|
||||
"-known-gerrit-host",
|
||||
"android.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"boringssl.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"chromium.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"dart.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"fuchsia.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"go.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"llvm.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"skia.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"webrtc.googlesource.com",
|
||||
"-output-result-json",
|
||||
"${ISOLATED_OUTDIR}/build_result_filename",
|
||||
"-workdir",
|
||||
".",
|
||||
"-recipe",
|
||||
"test",
|
||||
"-properties",
|
||||
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR\",\"gold_hashes_url\":\"https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"patch_issue\":\"<(ISSUE)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
|
||||
"-logdog-annotation-url",
|
||||
"logdog://logs.chromium.org/skia/<(TASK_ID)/+/annotations"
|
||||
],
|
||||
"dependencies": [
|
||||
"Housekeeper-PerCommit-BundleRecipes",
|
||||
"Build-Win-Clang-x86_64-Debug"
|
||||
],
|
||||
"dimensions": [
|
||||
"gpu:10de:1cb3-25.21.14.1678",
|
||||
"os:Windows-10-16299.309",
|
||||
"pool:Skia"
|
||||
],
|
||||
"env_prefixes": {
|
||||
"PATH": [
|
||||
"cipd_bin_packages",
|
||||
"cipd_bin_packages/bin"
|
||||
],
|
||||
"VPYTHON_VIRTUALENV_ROOT": [
|
||||
"cache/vpython"
|
||||
]
|
||||
},
|
||||
"execution_timeout_ns": 14400000000000,
|
||||
"expiration_ns": 72000000000000,
|
||||
"extra_tags": {
|
||||
"log_location": "logdog://logs.chromium.org/skia/<(TASK_ID)/+/annotations"
|
||||
},
|
||||
"io_timeout_ns": 14400000000000,
|
||||
"isolate": "test_skia_bundled.isolate",
|
||||
"max_attempts": 2,
|
||||
"outputs": [
|
||||
"test"
|
||||
]
|
||||
},
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": {
|
||||
"caches": [
|
||||
{
|
||||
@ -112575,6 +112696,111 @@
|
||||
"max_attempts": 2,
|
||||
"service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com"
|
||||
},
|
||||
"Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR": {
|
||||
"caches": [
|
||||
{
|
||||
"name": "vpython",
|
||||
"path": "cache/vpython"
|
||||
}
|
||||
],
|
||||
"cipd_packages": [
|
||||
{
|
||||
"name": "infra/tools/luci/kitchen/${platform}",
|
||||
"path": ".",
|
||||
"version": "git_revision:d8f38ca9494b5af249942631f9cee45927f6b4bc"
|
||||
},
|
||||
{
|
||||
"name": "infra/tools/luci-auth/${platform}",
|
||||
"path": "cipd_bin_packages",
|
||||
"version": "git_revision:2c805f1c716f6c5ad2126b27ec88b8585a09481e"
|
||||
},
|
||||
{
|
||||
"name": "infra/tools/luci/vpython/${platform}",
|
||||
"path": "cipd_bin_packages",
|
||||
"version": "git_revision:f96db4b66034c859090be3c47eb38227277f228b"
|
||||
},
|
||||
{
|
||||
"name": "infra/python/cpython/${platform}",
|
||||
"path": "cipd_bin_packages",
|
||||
"version": "version:2.7.15.chromium14"
|
||||
},
|
||||
{
|
||||
"name": "infra/gsutil",
|
||||
"path": "cipd_bin_packages",
|
||||
"version": "version:4.28"
|
||||
}
|
||||
],
|
||||
"command": [
|
||||
"./kitchen${EXECUTABLE_SUFFIX}",
|
||||
"cook",
|
||||
"-checkout-dir",
|
||||
"recipe_bundle",
|
||||
"-mode",
|
||||
"swarming",
|
||||
"-luci-system-account",
|
||||
"system",
|
||||
"-cache-dir",
|
||||
"cache",
|
||||
"-temp-dir",
|
||||
"tmp",
|
||||
"-known-gerrit-host",
|
||||
"android.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"boringssl.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"chromium.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"dart.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"fuchsia.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"go.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"llvm.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"skia.googlesource.com",
|
||||
"-known-gerrit-host",
|
||||
"webrtc.googlesource.com",
|
||||
"-output-result-json",
|
||||
"${ISOLATED_OUTDIR}/build_result_filename",
|
||||
"-workdir",
|
||||
".",
|
||||
"-recipe",
|
||||
"upload_dm_results",
|
||||
"-properties",
|
||||
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR\",\"gs_bucket\":\"skia-infra-gm\",\"patch_issue\":\"<(ISSUE)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"output_ignored\",\"task_id\":\"<(TASK_ID)\"}",
|
||||
"-logdog-annotation-url",
|
||||
"logdog://logs.chromium.org/skia/<(TASK_ID)/+/annotations"
|
||||
],
|
||||
"dependencies": [
|
||||
"Housekeeper-PerCommit-BundleRecipes",
|
||||
"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-NonNVPR"
|
||||
],
|
||||
"dimensions": [
|
||||
"cpu:x86-64-Haswell_GCE",
|
||||
"gpu:none",
|
||||
"machine_type:n1-highmem-2",
|
||||
"os:Debian-9.8",
|
||||
"pool:Skia"
|
||||
],
|
||||
"env_prefixes": {
|
||||
"PATH": [
|
||||
"cipd_bin_packages",
|
||||
"cipd_bin_packages/bin"
|
||||
],
|
||||
"VPYTHON_VIRTUALENV_ROOT": [
|
||||
"cache/vpython"
|
||||
]
|
||||
},
|
||||
"execution_timeout_ns": 3600000000000,
|
||||
"extra_tags": {
|
||||
"log_location": "logdog://logs.chromium.org/skia/<(TASK_ID)/+/annotations"
|
||||
},
|
||||
"io_timeout_ns": 3600000000000,
|
||||
"isolate": "swarm_recipe.isolate",
|
||||
"max_attempts": 2,
|
||||
"service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com"
|
||||
},
|
||||
"Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": {
|
||||
"caches": [
|
||||
{
|
||||
|
@ -30,18 +30,6 @@ GrPathRendererChain::GrPathRendererChain(GrRecordingContext* context, const Opti
|
||||
if (options.fGpuPathRenderers & GpuPathRenderers::kDashLine) {
|
||||
fChain.push_back(sk_make_sp<GrDashLinePathRenderer>());
|
||||
}
|
||||
if (options.fGpuPathRenderers & GpuPathRenderers::kStencilAndCover) {
|
||||
auto direct = context->priv().asDirectContext();
|
||||
if (direct) {
|
||||
auto resourceProvider = direct->priv().resourceProvider();
|
||||
|
||||
sk_sp<GrPathRenderer> pr(
|
||||
GrStencilAndCoverPathRenderer::Create(resourceProvider, caps));
|
||||
if (pr) {
|
||||
fChain.push_back(std::move(pr));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (options.fGpuPathRenderers & GpuPathRenderers::kAAConvex) {
|
||||
fChain.push_back(sk_make_sp<GrAAConvexPathRenderer>());
|
||||
}
|
||||
@ -66,6 +54,18 @@ GrPathRendererChain::GrPathRendererChain(GrRecordingContext* context, const Opti
|
||||
context->priv().addOnFlushCallbackObject(spr.get());
|
||||
fChain.push_back(std::move(spr));
|
||||
}
|
||||
if (options.fGpuPathRenderers & GpuPathRenderers::kStencilAndCover) {
|
||||
auto direct = context->priv().asDirectContext();
|
||||
if (direct) {
|
||||
auto resourceProvider = direct->priv().resourceProvider();
|
||||
|
||||
sk_sp<GrPathRenderer> pr(
|
||||
GrStencilAndCoverPathRenderer::Create(resourceProvider, caps));
|
||||
if (pr) {
|
||||
fChain.push_back(std::move(pr));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (options.fGpuPathRenderers & GpuPathRenderers::kTessellating) {
|
||||
fChain.push_back(sk_make_sp<GrTessellatingPathRenderer>());
|
||||
}
|
||||
|
@ -333,11 +333,6 @@ void GrGLCaps::init(const GrContextOptions& contextOptions,
|
||||
GrShaderCaps* shaderCaps = fShaderCaps.get();
|
||||
|
||||
shaderCaps->fPathRenderingSupport = this->hasPathRenderingSupport(ctxInfo, gli);
|
||||
#if GR_TEST_UTILS
|
||||
if (contextOptions.fSuppressPathRendering) {
|
||||
shaderCaps->fPathRenderingSupport = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Enable supported shader-related caps
|
||||
if (GR_IS_GR_GL(standard)) {
|
||||
|
@ -15,38 +15,6 @@
|
||||
|
||||
using namespace sk_gpu_test;
|
||||
|
||||
DEF_GPUTEST(GrContextFactory_NVPRContextOptionHasPathRenderingSupport, reporter, options) {
|
||||
// Test that if NVPR is requested, the context always has path rendering
|
||||
// or the context creation fails.
|
||||
for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) {
|
||||
GrContextFactory testFactory(options);
|
||||
// Test that if NVPR is possible, caps are in sync.
|
||||
GrContextFactory::ContextType ctxType = static_cast<GrContextFactory::ContextType>(i);
|
||||
GrContext* context = testFactory.get(ctxType,
|
||||
GrContextFactory::ContextOverrides::kRequireNVPRSupport);
|
||||
if (!context) {
|
||||
continue;
|
||||
}
|
||||
REPORTER_ASSERT(reporter,
|
||||
context->priv().caps()->shaderCaps()->pathRenderingSupport());
|
||||
}
|
||||
}
|
||||
|
||||
DEF_GPUTEST(GrContextFactory_NoPathRenderingIfNVPRDisabled, reporter, options) {
|
||||
// Test that if NVPR is explicitly disabled, the context has no path rendering support.
|
||||
|
||||
for (int i = 0; i <= GrContextFactory::kLastContextType; ++i) {
|
||||
GrContextFactory testFactory(options);
|
||||
GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType)i;
|
||||
GrContext* context =
|
||||
testFactory.get(ctxType, GrContextFactory::ContextOverrides::kDisableNVPR);
|
||||
if (context) {
|
||||
REPORTER_ASSERT(reporter,
|
||||
!context->priv().caps()->shaderCaps()->pathRenderingSupport());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DEF_GPUTEST(GrContextFactory_abandon, reporter, options) {
|
||||
for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) {
|
||||
GrContextFactory testFactory(options);
|
||||
|
@ -203,8 +203,7 @@ DEF_GPUTEST(SurfaceSemaphores, reporter, options) {
|
||||
}
|
||||
}
|
||||
sk_gpu_test::GrContextFactory factory(options);
|
||||
sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(
|
||||
contextType, sk_gpu_test::GrContextFactory::ContextOverrides::kDisableNVPR);
|
||||
sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType);
|
||||
if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -274,8 +274,7 @@ DEF_GPUTEST(VkDrawableImportTest, reporter, options) {
|
||||
continue;
|
||||
}
|
||||
sk_gpu_test::GrContextFactory factory(options);
|
||||
sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(
|
||||
contextType, sk_gpu_test::GrContextFactory::ContextOverrides::kDisableNVPR);
|
||||
sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType);
|
||||
skiatest::ReporterContext ctx(
|
||||
reporter, SkString(sk_gpu_test::GrContextFactory::ContextTypeName(contextType)));
|
||||
if (ctxInfo.grContext()) {
|
||||
|
@ -40,9 +40,6 @@ static const struct {
|
||||
{ "glmsaa4", "gpu", "api=gl,samples=4" },
|
||||
{ "glmsaa8" , "gpu", "api=gl,samples=8" },
|
||||
{ "glesmsaa4", "gpu", "api=gles,samples=4" },
|
||||
{ "glnvpr4", "gpu", "api=gl,nvpr=true,samples=4" },
|
||||
{ "glnvpr8" , "gpu", "api=gl,nvpr=true,samples=8" },
|
||||
{ "glesnvpr4", "gpu", "api=gles,nvpr=true,samples=4" },
|
||||
{ "glbetex", "gpu", "api=gl,surf=betex" },
|
||||
{ "glesbetex", "gpu", "api=gles,surf=betex" },
|
||||
{ "glbert", "gpu", "api=gl,surf=bert" },
|
||||
@ -126,7 +123,7 @@ static const char configExtendedHelp[] =
|
||||
"Extended form: 'backend(option=value,...)'\n\n"
|
||||
"Possible backends and options:\n"
|
||||
"\n"
|
||||
"gpu[api=string,color=string,dit=bool,nvpr=bool,inst=bool,samples=int]\n"
|
||||
"gpu[api=string,color=string,dit=bool,samples=int]\n"
|
||||
"\tapi\ttype: string\trequired\n"
|
||||
"\t Select graphics API to use with gpu backend.\n"
|
||||
"\t Options:\n"
|
||||
@ -161,8 +158,6 @@ static const char configExtendedHelp[] =
|
||||
"\t\tf16\t\t\tLinearly blended 16-bit floating point.\n"
|
||||
"\tdit\ttype: bool\tdefault: false.\n"
|
||||
"\t Use device independent text.\n"
|
||||
"\tnvpr\ttype: bool\tdefault: false.\n"
|
||||
"\t Use NV_path_rendering OpenGL and OpenGL ES extension.\n"
|
||||
"\tsamples\ttype: int\tdefault: 0.\n"
|
||||
"\t Use multisampling with N samples.\n"
|
||||
"\tstencils\ttype: bool\tdefault: true.\n"
|
||||
@ -431,7 +426,6 @@ private:
|
||||
SkCommandLineConfigGpu::SkCommandLineConfigGpu(const SkString& tag,
|
||||
const SkTArray<SkString>& viaParts,
|
||||
ContextType contextType,
|
||||
bool useNVPR,
|
||||
bool useDIText,
|
||||
int samples,
|
||||
SkColorType colorType,
|
||||
@ -452,13 +446,6 @@ SkCommandLineConfigGpu::SkCommandLineConfigGpu(const SkString& tag,
|
||||
, fTestThreading(testThreading)
|
||||
, fTestPersistentCache(testPersistentCache)
|
||||
, fSurfType(surfType) {
|
||||
if (useNVPR) {
|
||||
fContextOverrides |= ContextOverrides::kRequireNVPRSupport;
|
||||
} else {
|
||||
// We don't disable NVPR for instanced configs. Otherwise the caps wouldn't use mixed
|
||||
// samples and we couldn't test the mixed samples backend for simple shapes.
|
||||
fContextOverrides |= ContextOverrides::kDisableNVPR;
|
||||
}
|
||||
if (!useStencilBuffers) {
|
||||
fContextOverrides |= ContextOverrides::kAvoidStencilBuffers;
|
||||
}
|
||||
@ -469,7 +456,6 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString&
|
||||
const SkString& options) {
|
||||
// Defaults for GPU backend.
|
||||
SkCommandLineConfigGpu::ContextType contextType = GrContextFactory::kGL_ContextType;
|
||||
bool useNVPR = false;
|
||||
bool useDIText = false;
|
||||
int samples = 1;
|
||||
SkColorType colorType = kRGBA_8888_SkColorType;
|
||||
@ -488,7 +474,6 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString&
|
||||
|
||||
bool validOptions =
|
||||
extendedOptions.get_option_gpu_api("api", &contextType, false) &&
|
||||
extendedOptions.get_option_bool("nvpr", &useNVPR) &&
|
||||
extendedOptions.get_option_bool("dit", &useDIText) &&
|
||||
extendedOptions.get_option_int("samples", &samples) &&
|
||||
extendedOptions.get_option_gpu_color("color", &colorType, &alphaType, &colorSpace) &&
|
||||
@ -505,7 +490,6 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString&
|
||||
return new SkCommandLineConfigGpu(tag,
|
||||
vias,
|
||||
contextType,
|
||||
useNVPR,
|
||||
useDIText,
|
||||
samples,
|
||||
colorType,
|
||||
|
@ -54,7 +54,6 @@ public:
|
||||
SkCommandLineConfigGpu(const SkString& tag,
|
||||
const SkTArray<SkString>& viaParts,
|
||||
ContextType contextType,
|
||||
bool useNVPR,
|
||||
bool useDIText,
|
||||
int samples,
|
||||
SkColorType colorType,
|
||||
@ -68,11 +67,6 @@ public:
|
||||
const SkCommandLineConfigGpu* asConfigGpu() const override { return this; }
|
||||
ContextType getContextType() const { return fContextType; }
|
||||
ContextOverrides getContextOverrides() const { return fContextOverrides; }
|
||||
bool getUseNVPR() const {
|
||||
SkASSERT(!(fContextOverrides & ContextOverrides::kRequireNVPRSupport) ||
|
||||
!(fContextOverrides & ContextOverrides::kDisableNVPR));
|
||||
return fContextOverrides & ContextOverrides::kRequireNVPRSupport;
|
||||
}
|
||||
bool getUseDIText() const { return fUseDIText; }
|
||||
int getSamples() const { return fSamples; }
|
||||
SkColorType getColorType() const { return fColorType; }
|
||||
|
@ -48,7 +48,6 @@ static DEFINE_string(tf , "srgb", "The transfer function for any raster bac
|
||||
static DEFINE_bool (legacy, false, "Use a null SkColorSpace instead of --gamut and --tf?");
|
||||
|
||||
static DEFINE_int (samples , 0, "Samples per pixel in GPU backends.");
|
||||
static DEFINE_bool (nvpr , false, "Use NV_path_rendering in GPU backends?");
|
||||
static DEFINE_bool (stencils, true, "If false, avoid stencil buffers in GPU backends.");
|
||||
static DEFINE_bool (dit , false, "Use device-independent text in GPU backends.");
|
||||
static DEFINE_string(surf , "default", "Backing store for GPU backend surfaces.");
|
||||
@ -256,8 +255,7 @@ static sk_sp<SkImage> draw_with_gpu(std::function<bool(SkCanvas*)> draw,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto overrides = FLAGS_nvpr ? GrContextFactory::ContextOverrides::kRequireNVPRSupport
|
||||
: GrContextFactory::ContextOverrides::kDisableNVPR;
|
||||
auto overrides = GrContextFactory::ContextOverrides::kNone;
|
||||
if (!FLAGS_stencils) { overrides |= GrContextFactory::ContextOverrides::kAvoidStencilBuffers; }
|
||||
|
||||
GrContext* context = factory->getContextInfo(api, overrides)
|
||||
|
@ -201,9 +201,6 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv
|
||||
VkTestContext* vkSharedContext = masterContext
|
||||
? static_cast<VkTestContext*>(masterContext->fTestContext) : nullptr;
|
||||
SkASSERT(kVulkan_ContextType == type);
|
||||
if (ContextOverrides::kRequireNVPRSupport & overrides) {
|
||||
return ContextInfo();
|
||||
}
|
||||
testCtx.reset(CreatePlatformVkTestContext(vkSharedContext));
|
||||
if (!testCtx) {
|
||||
return ContextInfo();
|
||||
@ -236,9 +233,6 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv
|
||||
case GrBackendApi::kMock: {
|
||||
TestContext* sharedContext = masterContext ? masterContext->fTestContext : nullptr;
|
||||
SkASSERT(kMock_ContextType == type);
|
||||
if (ContextOverrides::kRequireNVPRSupport & overrides) {
|
||||
return ContextInfo();
|
||||
}
|
||||
testCtx.reset(CreateMockTestContext(sharedContext));
|
||||
if (!testCtx) {
|
||||
return ContextInfo();
|
||||
@ -251,9 +245,6 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv
|
||||
|
||||
SkASSERT(testCtx && testCtx->backend() == backend);
|
||||
GrContextOptions grOptions = fGlobalOptions;
|
||||
if (ContextOverrides::kDisableNVPR & overrides) {
|
||||
grOptions.fSuppressPathRendering = true;
|
||||
}
|
||||
if (ContextOverrides::kAvoidStencilBuffers & overrides) {
|
||||
grOptions.fAvoidStencilBuffers = true;
|
||||
}
|
||||
@ -265,11 +256,6 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv
|
||||
if (!grCtx.get()) {
|
||||
return ContextInfo();
|
||||
}
|
||||
if (ContextOverrides::kRequireNVPRSupport & overrides) {
|
||||
if (!grCtx->priv().caps()->shaderCaps()->pathRenderingSupport()) {
|
||||
return ContextInfo();
|
||||
}
|
||||
}
|
||||
|
||||
// We must always add new contexts by pushing to the back so that when we delete them we delete
|
||||
// them in reverse order in which they were made.
|
||||
|
@ -53,10 +53,7 @@ public:
|
||||
*/
|
||||
enum class ContextOverrides {
|
||||
kNone = 0x0,
|
||||
kDisableNVPR = 0x1,
|
||||
kAvoidStencilBuffers = 0x2,
|
||||
|
||||
kRequireNVPRSupport = 0x4,
|
||||
kAvoidStencilBuffers = 0x1,
|
||||
};
|
||||
|
||||
static bool IsRenderingContext(ContextType type) {
|
||||
@ -122,8 +119,7 @@ public:
|
||||
/**
|
||||
* Get a context initialized with a type of GL context. It also makes the GL context current.
|
||||
*/
|
||||
ContextInfo getContextInfo(ContextType type,
|
||||
ContextOverrides overrides = ContextOverrides::kNone);
|
||||
ContextInfo getContextInfo(ContextType type, ContextOverrides = ContextOverrides::kNone);
|
||||
|
||||
/**
|
||||
* Get a context in the same share group as the passed in GrContext, with the same type and
|
||||
|
@ -152,7 +152,6 @@ static std::unique_ptr<sk_gpu_test::TestContext> make_test_context(SkQP::SkiaBac
|
||||
static GrContextOptions context_options(skiagm::GM* gm = nullptr) {
|
||||
GrContextOptions grContextOptions;
|
||||
grContextOptions.fAllowPathMaskCaching = true;
|
||||
grContextOptions.fSuppressPathRendering = true;
|
||||
grContextOptions.fDisableDriverCorrectnessWorkarounds = true;
|
||||
if (gm) {
|
||||
gm->modifyGrContextOptions(&grContextOptions);
|
||||
|
Loading…
Reference in New Issue
Block a user