FLT_EPSILON_SQRT is initialized with a call to sqrt which, in release
builds on Windows, results in an initializer call (on official release
builds this is optimized away). On Windows release (all flavors)
builds this also triggers duplicate instantiations of the variable
(always a risk with non-integral const variables defined in header
files) with 32 copies ending up in both chrome.dll and chrome_child.dll.
This change avoids the run-time initializer and as a side effect it
also avoids most or all of the duplication. Section size savings in a
Windows 32-bit release official build are:
chrome.dll
.text: -64 bytes change
.rdata: -16 bytes change
.data: -256 bytes change
.reloc: -116 bytes change
Total change: -452 bytes
chrome_child.dll
.text: 160 bytes change
.rdata: -144 bytes change
.data: -256 bytes change
.reloc: -60 bytes change
Total change: -300 bytes
A more complete fix would include using extern const to declare these
constants in the header file but define them once in a .cc file, but
it's not clear that this is necessary.
The size savings on non-official builds are greater. The increase in
the .text segment is odd, but harmless since those bytes are shared.
BUG=630755
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5061
Change-Id: I53d0cdc38e022039646df491d824a1aaf11def80
Reviewed-on: https://skia-review.googlesource.com/5061
Reviewed-by: Cary Clark <caryclark@google.com>
Reviewed-by: Bruce Dawson <brucedawson@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
SkColorSpace::NewICC() can now successfully parse lut8Type/lut16Type
A2B0 tags instead of just A2B0Type ones. It will store the resulting
information in a SkColorSpace_A2B which allows color-correct decoding
of some images which previously were not supported.
BUG=138556
BUG=574209
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4770
Change-Id: I83b565af3f39f12a4bc37e0e7968f7d41e553291
Reviewed-on: https://skia-review.googlesource.com/4770
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Robert Aftias <raftias@google.com>
Fixes the bit rot that has set in for geometry shaders. They're to a
point now that we can use them again for GL experiments. Since SkSL
does not support geometry shaders yet, we pass the shader string
directly to the GL compiler for now.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5080
Change-Id: Ie3864e5559c810c682cf5f1709bdab87f033c43b
Reviewed-on: https://skia-review.googlesource.com/5080
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
We don't need to do any of this funky swap, load, srcin nonsense. We've got a perfectly good scale_constant_float stage just perfect to be used instead.
While we're at it, we only need to modulate by paint alpha if the paint's not opaque. x*1== x...
This puts the (x,y) inputs to shaders in (r,g) where they expect them. It also frees (dr,dg,db,da) for use by the shader. Might be handy for bilerp.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5100
Change-Id: Ief60c469ecac8300798b67cc68817cc1d127cf17
Reviewed-on: https://skia-review.googlesource.com/5100
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
The issue was with the A2B0 matrix not being scaled by its encoding
factor when it needed to be (for A2B0 matrices only).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5003
Change-Id: I3f202323e137e1b014e564bd96d87c601c4748ab
Reviewed-on: https://skia-review.googlesource.com/5003
Commit-Queue: Robert Aftias <raftias@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
This drops allocation overhead from 16 bytes down to 4 bytes.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5066
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Debug-Trybot;master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-GN-Trybot
Change-Id: Id4665fd914dfb679996cefaf36fce6ef225fafb5
Reviewed-on: https://skia-review.googlesource.com/5066
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
The script now emits a meta-solution that include all projects across
all configurations. For example, third party libraries may not be in
all configurations, or certain targets are only present in some.
Additionally, the ItemDefinitionGroup (which includes preprocessor
definitions) is included from every configuration's project file, so
syntax highlighting of inactive code works correctly.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5085
Change-Id: I241d83aea3f076365811965161fc941f82c9714c
Reviewed-on: https://skia-review.googlesource.com/5085
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This CL is related to the issue that we tried to fix in
https://skia-review.googlesource.com/c/5078/
Specifically, SkARGB32_Blitter overrides blitAntiH2 and blitAntiV2 and
they're different from blitAntiRuns. Therefore, if
SkRectClipCheckBlitter does not override those two functions, we're
going to get different results in debug and release build.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5082
Change-Id: I7f9565d494f0a6c45ab5a06fbedb73ef233b9a1f
Reviewed-on: https://skia-review.googlesource.com/5082
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Our codec generator will now preserve any asked-for color space, and
convert the encoded data to that representation. Cacherator now
allows decoding an image to both legacy (nullptr color space), and
color-correct formats. In color-correct mode, we choose the best
decoded format, based on the original properties, and our backend's
capabilities. Preference is given to the native format, when it's
already texturable (sRGB 8888 or F16 linear). Otherwise, we prefer
linear F16, and fall back to sRGB when that's not an option.
Re-land (and fix) of:
https://skia-review.googlesource.com/c/4438/https://skia-review.googlesource.com/c/4796/
BUG=skia:5907
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4838
Change-Id: I20ff972ffe1c7e6535ddc501e2a8ab8c246e4061
Reviewed-on: https://skia-review.googlesource.com/4838
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
With RectClipCheckBlitter, the cc_unittests in Chromium will have
different results for rel and dbg buidls. As far as I know, the scan
converter blits the same alpha but they are somehow translated into
different RGBs. I'll look into it on Monday.
(RectClipCheckBlitter is added in https://skia-review.googlesource.com/c/4629/)
BUG=skia:
TBR=fmalita@chromium.org
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5078
Change-Id: I537d4380a44d0194103a4fcfb2bd2e2bcef41fcb
Reviewed-on: https://skia-review.googlesource.com/5078
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
It's dangerous and rightfully makes Control Flow Integrity check unhappy.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5074
Change-Id: Ie59490a5c671240128a9fcb353108f67f32d2f9e
Reviewed-on: https://skia-review.googlesource.com/5074
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This reverts commit c89e2438ae.
Reason for revert:
I'm going to stub this code out in Chrome instead for now. Chrome's not going to land something that looks like this, so I'd rather undo it than leave Skia in this odd state.
Original change's description:
> Turn off /arch:AVX[2] on Windows builds.
>
> This canaries a similar change Chrome may need.
>
> BUG=chromium:666707
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5005
>
> Change-Id: Ibf7f9941968d905d865b9be1e63ebbf768870175
> Reviewed-on: https://skia-review.googlesource.com/5005
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
>
TBR=mtklein@chromium.org,brucedawson@chromium.org,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I9562f7877749c61f6ba4d48d6c4b557f09876128
Reviewed-on: https://skia-review.googlesource.com/5069
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5064
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Change-Id: I9d48ba73e145701245e5ec4f32c8c360da6baddd
Reviewed-on: https://skia-review.googlesource.com/5064
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This leaves libskia as the only thing we build when tools are not enabled (other GN environments like Fuchsia, Flutter, Chrome, or for people using ours and actively disabling tools).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4993
Change-Id: I5acad66c1b068ef81c1a7e292c3524a0b1497b66
Reviewed-on: https://skia-review.googlesource.com/4993
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This canaries a similar change Chrome may need.
BUG=chromium:666707
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5005
Change-Id: Ibf7f9941968d905d865b9be1e63ebbf768870175
Reviewed-on: https://skia-review.googlesource.com/5005
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
crrev.com/2500113004 removed SkBitmapProcState_opts_arm.cpp.
ARM targets now use SkBitmapProcState_opts_none.cpp, so stop filtering it out.
(See the gn/opts.gni change.)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4996
Change-Id: Ib46ac5d9e908e8043aaec1f462672d9f9710431d
Reviewed-on: https://skia-review.googlesource.com/4996
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
This test will catch our (1 << 10) bug (which should be 1 << 9)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4986
Change-Id: I25b607d1535a647284cee3b304a6f567f389e7f6
Reviewed-on: https://skia-review.googlesource.com/4986
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
The following two CLs were created via grep:
https://skia-review.googlesource.com/c/4929/ (Guard against instantiate & accessRenderTarget failures)
https://skia-review.googlesource.com/c/4961/ (Remove accessRenderTarget call in SkGpuDevice ctor)
This CL was created by running through all the tests and having instantiate fail so it catches up-stack failures to handle a null return.
BUG=665681,665500,665621
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4991
Change-Id: I6611eec8d36679123eef140538ee2526fb18628f
Reviewed-on: https://skia-review.googlesource.com/4991
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This makes it clearer which jobs we're running when looking at
gen_tasks.go. Doesn't actually change any behavior.
BUG=skia:
Change-Id: Ie4fe639552bd673d3a605e03782a68b5e013cf1d
Reviewed-on: https://skia-review.googlesource.com/4990
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
the entire pipeline.
Adjust SkFixedAlloc to allow nesting of allocation.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4987
Change-Id: Ieeb1b5deaae004b67cee933af9bc19bbfd5a7687
Reviewed-on: https://skia-review.googlesource.com/4987
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This patch moves the C++/SSE2/NEON implementations of convolve functions
into the same place and uses SkOpts framework.
Also some indentation fix.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2500113004
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2500113004
The executable bit is needed in the Fuchsia build in order to execute this file
during the build.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4985
Change-Id: I4c11d823d052b7c8cef79b2842169581db76e815
Reviewed-on: https://skia-review.googlesource.com/4985
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Nothing too tricky. The path of least resistance was to keep the matrix row-major when in perspective. It should make no difference in the end.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4983
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Change-Id: I48bb9de0265e7873c465874cc37076a8111f5ea1
Reviewed-on: https://skia-review.googlesource.com/4983
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Does the note in repeat() look right?
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4980
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Change-Id: I347023f312ab4643fc387e486192c3ae3357db8b
Reviewed-on: https://skia-review.googlesource.com/4980
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
First, this avoids removing .suo files (solution options), which is where
things like debugging command line arguments live. This lets those
settings persist when re-generating.
Second, it lets you run the script while you have the solution open.
(Writing new files works okay, but removing the existing ones was
triggering a sharing violation).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4981
Change-Id: Ib40494caf152dd638f9eee7635639399e8099421
Reviewed-on: https://skia-review.googlesource.com/4981
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Our previous (1 << 10) limit is based on 2^32 being our maximum value.
However, that's not the case because we have one more sign bit.
Therefore I should make it (1 << 9).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4973
Change-Id: I38acb627cdb2514d3e4996aef02480b389cf3588
Reviewed-on: https://skia-review.googlesource.com/4973
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
For approximate-fit deferred proxies asserts were firing when the instantiated size was larger than the pre-computed exact-fit size.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4972
Change-Id: I879e16b86ab4d9ef9834163c24ccd6507fe4b94a
Reviewed-on: https://skia-review.googlesource.com/4972
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>