(The failing NexusPlayer bot is a demo.)
This should make stack traces more useful, turning this sort of thing
09-20 11:29:39.536 2978 2978 F DEBUG : #00 pc 00970fd0 /data/local/tmp/dm
into something like this
09-20 11:29:39.536 2978 2978 F DEBUG : #00 pc 00970fd0 adjust_bounds_to_granularity(SkIRect*, SkIRect const&, VkExtent2D const&, int, int) at /b/work/skia/out/Build-Ubuntu-Clang-x86-Debug-GN_Android_Vulkan/Debug/../../../src/gpu/vk/GrVkGpu.cpp:1803 /data/local/tmp/dm
Some bots like the S7 already have good enough stack traces, e.g.
09-20 11:35:12.567 936 936 F DEBUG : #00 pc 00000000000bed6c /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN13QglManagedBuf14ConfirmEntriesEv+108)
09-20 11:35:12.567 936 936 F DEBUG : #01 pc 00000000000b098c /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN9QglBltLib6FillHwEPK10QglBltFillPK15QglBltColorFillPK15QglBltDepthFillPjP12QglBltStatusSB_+588)
09-20 11:35:12.567 936 936 F DEBUG : #02 pc 00000000000b23bc /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN9QglBltLib9FillImageEPK10QglBltFillPK15QglBltColorFillPK15QglBltDepthFillPjP12QglBltStatusSB_+348)
09-20 11:35:12.567 936 936 F DEBUG : #03 pc 000000000009bb00 /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN16A5xCommandBuffer22PerformConditionalFillEiiP10QglBltFillPK15QglBltColorFillP15QglBltDepthFillP12QglBltStatusS8_+256)
09-20 11:35:12.567 936 936 F DEBUG : #04 pc 000000000009c0c0 /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN16A5xCommandBuffer23HwWriteSubpassInitClearEP10QglBltFillPK15QglBltColorFillP15QglBltDepthFillP12QglBltStatusS8_+224)
09-20 11:35:12.567 936 936 F DEBUG : #05 pc 0000000000072610 /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN16QglCommandBuffer18WriteSubpassClearsEv+464)
09-20 11:35:12.567 936 936 F DEBUG : #06 pc 0000000000073ae0 /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN16QglCommandBuffer12BeginSubpassEv+32)
09-20 11:35:12.567 936 936 F DEBUG : #07 pc 0000000000063120 /system/vendor/lib64/hw/vulkan.msm8996.so (vkCmdBeginRenderPass+224)
09-20 11:35:12.567 936 936 F DEBUG : #08 pc 0000000000635f60 /data/local/tmp/nanobench (_ZN24GrVkPrimaryCommandBuffer15beginRenderPassEPK7GrVkGpuPK14GrVkRenderPassjPK12VkClearValueRK16GrVkRenderTargetRK7SkIRectb+132)
or
09-20 11:42:24.557 937 937 F DEBUG : backtrace:
09-20 11:42:24.557 937 937 F DEBUG : #00 pc 0000000000069404 /system/lib64/libc.so (tgkill+8)
09-20 11:42:24.557 937 937 F DEBUG : #01 pc 0000000000066b94 /system/lib64/libc.so (pthread_kill+68)
09-20 11:42:24.557 937 937 F DEBUG : #02 pc 0000000000023a28 /system/lib64/libc.so (raise+28)
09-20 11:42:24.557 937 937 F DEBUG : #03 pc 000000000001e358 /system/lib64/libc.so (abort+60)
09-20 11:42:24.557 937 937 F DEBUG : #04 pc 000000000076430c /data/local/tmp/dm (_Z17sk_abort_no_printv+8)
These won't be affected.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2351243002
NOTREECHECKS=true
Review-Url: https://codereview.chromium.org/2351243002
Three distinct issues exposed by Fuzzer:
1) truncating the flags to 8 bits may trip the assert in SkToU8
Since clients can pass in any garbage, we cannot assume it fits in 8
bits. Just static_cast<> instead.
2) vertical gradients with dx == -0.0 don't trigger interval inversion.
For dx < 0 we want reversed intervals. But, alas, -0.0 < 0 == false
(thanks, Ob^WIEEE 754!). Use signbit() instead.
3) half closed range checking needs to be inverted for reversed
intervals.
Normally we check for [p0, p1), but for reversed intervals (p1 < p0) we
want to check for [p1, p0), and not (p1, p0]. Adjust the logic
accordingly.
BUG=skia:5647
R=reed@google.com,kjlubick@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349153004
Review-Url: https://codereview.chromium.org/2349153004
Some pointers are being cast to intptr_t so they can be used with
SkAlign8(). However, a large pointer value might become a negative
integer since intptr_t is signed.
When comparing these intptr_ts, we expect the larger pointer value to be
greater. But it might be so large that it becomes negative, causing it
to be less than.
A SkASSERT is firing for this exact reason.
BUG=648452
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2353453004
Review-Url: https://codereview.chromium.org/2353453004
For now, the only options are sRGB or WideGamutRGB
Basically, the color option to the gpu config is now of
the form: 8888|srgb[_gamut]|f16[_gamut]
color=8888 still implies legacy behavior
srgb implies 8-bit gamma-correct rendering (via sRGB format)
f16 implies 16-bit gamma-correct rendering (via F16 format)
Either of the last two options can then optionally include
a gamut specifier, either _srgb or _wide.
_srgb selects the (default) sRGB gamut
_wide selects the Adobe Wide Gamut RGB gamut, which is nice
for testing, in that it's significantly wider than sRGB,
so rendering differences are obvious.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2350003003
Review-Url: https://codereview.chromium.org/2350003003
Chromium needs to be able to set up their build such that the globals
continue existing but the SkFontMgr::Factory can be defined separately.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2346333002
CQ_INCLUDE_TRYBOTS=master.client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot
Review-Url: https://codereview.chromium.org/2346333002
skpbench is a benchmarking suite for skps that aims to generate 100%
repeatable results. The initial commit consists of three parts:
skpbench
A minimalist program whose sole purpose is to open an skp file,
benchmark it on a single config, and exit. No tiling, looping, or
other fanciness is used; it just draws the skp whole into a size-
matched render target and syncs the GPU after each draw.
Limiting the entire process to a single config/skp pair helps to keep
the results repeatable.
skpbench.py
A wrapper to execute the skpbench binary with various configs and skps.
It also monitors the output in order to filter out and re-run results
with an unacceptable stddev.
In the future this script will lock down and monitor clocks and
temperatures.
parseskpbench.py
A utility for parsing skpbench output into a spreadsheet.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2341823002
Review-Url: https://codereview.chromium.org/2341823002
A lot of this is so we don't have duplicated code in both the map/unmap and
updateData functions of GrVkBuffer. Also there were slightly differences in
how we handled various things in the two cases that this now unifies.
Also I added a barrier after the vkUpdateBuffer call which I believe was
missing.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2344323002
Review-Url: https://codereview.chromium.org/2344323002
GN is now far more capable than our CMake builds.
Time to officially end that experiment.
Reminder how this lands:
1) this CL
2) remove the bots from the masters
3) remove the CMake recipe files
4) remove the CMake files
I'm willing to wait on 4) until we can do GN -> CMake generation, but I don't want the bots to hold us back.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2350073002
Review-Url: https://codereview.chromium.org/2350073002
For old API: no change.
For new API: LTR text is perfectly extracted, RTL needs better testing.
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot
BUG=skia:5434
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2322403002
Review-Url: https://codereview.chromium.org/2322403002