| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
GrGLGpu::uploadTexData.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1531343002
Review URL: https://codereview.chromium.org/1531343002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkMatrix::preScale() always sets the kScale bit, which means something
like
m = SkMatrix::MakeScale(2, 2);
m.preScale(0.5, 0.5);
leaves m.getType() == kScale_Mask, and can throw off the bitmap proc
heuristics.
We could detect the inverse case and clear the scale bit instead.
R=reed@google.com,caryclark@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1531323002
Review URL: https://codereview.chromium.org/1531323002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is memory leak in the SkImageFilter::Cache. There are two sources
of memory leak:
1. The cache filling up quickly.
2. A slow small leak that never stops.
This CL solves the first issue, which prevents the cache filling up quickly.
This CL creates a new hash table that index the
SkImageFilter::uniqueID to an array of keys, and with the existing
key<-->Value hash table, we can have SkImageFilters proactively
purge content derived cached content when destroyed.
BUG=489543
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1514893003
Review URL: https://codereview.chromium.org/1514893003
|
|
|
|
|
|
|
|
|
| |
The minimal fix here seems to be handling BoxBlur's return value in SkBlurMaskFilter.cpp::GrRRectBlurEffect::Create. We seem to do enough special handling of the fImage field though that always initialializing it may not be a bad idea.
BUG=570232
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1539553002
Review URL: https://codereview.chromium.org/1539553002
|
|
|
|
|
|
|
|
|
|
|
| |
We've ended up with a flag in both GrCaps and GrGLCaps to indicate
the same instanced rendering functionality. This change removes the
GrGLCaps version of the flag and also also fixes the interface assembler
to use the proper suffix when loading the EXT version of the extension.
BUG=skia:
Review URL: https://codereview.chromium.org/1537483002
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1526253007
Review URL: https://codereview.chromium.org/1526253007
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1531283002
Review URL: https://codereview.chromium.org/1531283002
|
|
|
|
|
|
|
|
|
|
| |
The x-coordinates are not swapped, so using the swapped y will result
in a comparison with the wrong (end) point.
BUG=skia:4265
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1533873002
Review URL: https://codereview.chromium.org/1533873002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I broke this in https://skia.googlesource.com/skia/+/c57e0ded7d535523cfc6bf07c78e5f3479bb8c42.
That change added support for cropping during blur, but
did not do the correct thing for the small-sigma 2D matrix convolution
optimization when blurring from small-to-large textures.
The fix is pass the correct dstRect and srcOffset to convolve_gaussian_2d.
I also changed convolve_gaussian_1d() and convolve_gaussian_2d() to take
the original (non-negated) srcOffset, and to negate them when constructing
the local matrix.
Test: added a new (blur 0.3 0.3) column to imagefilterscropexpand, so that
GM will have to be rebaselined.
BUG=skia:4719,569883
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1529313003
Review URL: https://codereview.chromium.org/1529313003
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Timing against complex svg image (map),
no tiling: no change or very slightly faster
tiling (4x4): went from 3x slower (than untiled) to 2x slower
no gold changes expected
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1532733002
Review URL: https://codereview.chromium.org/1532733002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This piece of code is already 64-bit only, so we don't need to think about ARMv7.
Hopefully this shuts up the warnings. They were harmless.
If this doesn't work (it's relatively new modifier, so maybe some compilers barf), an alternative is to cast count to a size_t.
BUG=skia:4686
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1527123003
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review URL: https://codereview.chromium.org/1527123003
|
|
|
|
|
|
|
|
| |
R=reed@google.com,mtklein@google.com
BUG=skia:4691
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1530783003
Review URL: https://codereview.chromium.org/1530783003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mike points that the the ulps compares
rank high in path ops profiles. The
check for finite scalars is rarely
required.
Call it less by:
- specializing _pin version of compares
- checking for 0 divides up front
- handling failing cases before comparing
- casting float to double before adding
R=reed@google.com
Review URL: https://codereview.chromium.org/1522183002
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1527383003
Review URL: https://codereview.chromium.org/1527383003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is mainly warmup for an AVX2 version.
The machine I'm typing this on just doesn't support AVX2.
This strategy should translate easily down to SSSE3 and SSE2.
Xfermode_SrcOver: 2.73ms -> 2.62ms (0.96x) (That's Color32.)
Xfermode_SrcOver_aa: 3.48ms -> 3.09ms (0.89x) (That's BlitMask_D32_A8.)
AA text blits (text_16_AA_{88,FF,WT,BK}) show speedups in the range of 5 to 20%.
Unlike previous versions of this code, all the div255() are exactly (x+127)/255.
This won't fix any major bugs, but it does correct our bias in the middle.
There will be many diffs, all minor.
I've punted for now on pmaddubsw for lerping. I do intend to try that,
but I want this (relatively simple) code as my basis for comparison.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1526883004
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review URL: https://codereview.chromium.org/1526883004
|
|
|
|
|
|
|
|
|
|
| |
Add more testing and a pixel magnification to GM.
R=reed@google.com, fmalita@chromium.org
BUG=skia:4599
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1527083002
Review URL: https://codereview.chromium.org/1527083002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1529803004/ )
Reason for revert:
guard has landed in chrome
Original issue's description:
> Revert of remove drawSprite from canvas (patchset #4 id:60001 of https://codereview.chromium.org/1534443003/ )
>
> Reason for revert:
> need to remove an override in chrome
>
> Original issue's description:
> > remove drawSprite from canvas
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/4657ce2324ea197507c4ba728d81138f56da13b1
>
> TBR=fmalita@chromium.org,robertphillips@google.com,senorblanco@chromium.org,mtklein@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/32704674f64cb6a14356dfebe060cd3484c06cc7
TBR=fmalita@chromium.org,robertphillips@google.com,senorblanco@chromium.org,mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1530203002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1534443003/ )
Reason for revert:
need to remove an override in chrome
Original issue's description:
> remove drawSprite from canvas
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4657ce2324ea197507c4ba728d81138f56da13b1
TBR=fmalita@chromium.org,robertphillips@google.com,senorblanco@chromium.org,mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1529803004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1534443003
|
|
|
|
|
|
|
|
|
| |
We are trying to support the behavior provided by the Android
framework. Other developers do not necessarily need this behavior.
BUG=skia:4296
Review URL: https://codereview.chromium.org/1518933002
|
|
|
|
|
|
| |
When the default framebuffer is wrapped in a device for rendering we don't get a GrTexture. This CL adds a copy to a temporary texture in this instance so the rest of the Ganesh pipeline can continue on as usual.
Review URL: https://codereview.chromium.org/1531493002
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1525193002
|
|
|
|
|
|
|
| |
TBR=bsalomon@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/1521613002
|
|
|
|
|
|
| |
BUG=552080
Review URL: https://codereview.chromium.org/1522973002
|
|
|
|
|
|
|
|
| |
"locale_t" is not defined for Newlib.
BUG=https://github.com/domokit/mojo/issues/431
Review URL: https://codereview.chromium.org/1526703003
|
|
|
|
|
|
|
|
|
|
| |
Fix case where texture format and data format are different.
Use helper when createing a testing "backend" texture.
BUG=skia:
Review URL: https://codereview.chromium.org/1527753002
|
|
|
|
|
|
|
|
|
|
| |
Given the autovectorization we've seen, I wouldn't expect big speedups
from this, but it does give us a point of control over what's going on.
BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review URL: https://codereview.chromium.org/1526923003
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Epsilon bias to keep bitmap sample rounding consistent with geometry
rounding.
Also update the GM to draw an outer border + drop uninteresting
scales in favor of negative scale variants.
BUG=skia:4680,skia:4649
R=reed@google.com,caryclark@google.com,mtklein@google.com
Review URL: https://codereview.chromium.org/1527633002
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1498653002
|
|
|
|
|
|
| |
BUG=skia:4693
Review URL: https://codereview.chromium.org/1523793002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- one base case and one N=1 case instead of two each (or three with doubles)
- use SkNx_cast instead of FromBytes/toBytes
- 4-at-a-time Sk4f::ToBytes becomes a special standalone Sk4f_ToBytes
If I did everything right, this'll be perf- and pixel- neutral.
https://gold.skia.org/search2?issue=1526523003&unt=true&query=source_type%3Dgm&master=false
BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review URL: https://codereview.chromium.org/1526523003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1521293002/ )
Reason for revert:
linux Canary builder has no std::steady_clock. Weird...
Original issue's description:
> SkTime updates
>
> 1) Use steady_clock instead of high_resolution_clock. If we don't have a
> guarantee of monotonicity, it's pretty much useless for timing things.
>
> 2) Implement Mac/iOS with <chrono> too. This was waiting on C++11 library support.
>
> Both high_resolution_clock and steady_clock are (still) busted on MSVC 2013,
> so no change there.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6a20871e5aeaa7e61f3348694bf436af16f824b9
TBR=herb@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1529603002
|
|
|
|
|
|
|
|
| |
Running `Release/dm --gpu 0`, the number of times we call
SkBitmap::operator=(const SkBitmap&)
(which refs the pixelref) is reduced from ~214929 to ~214626.
Review URL: https://codereview.chromium.org/1514503004
|
|
|
|
|
|
|
| |
TBR=fmalita@chromium.org
BUG=569540
Review URL: https://codereview.chromium.org/1524803002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Use steady_clock instead of high_resolution_clock. If we don't have a
guarantee of monotonicity, it's pretty much useless for timing things.
2) Implement Mac/iOS with <chrono> too. This was waiting on C++11 library support.
Both high_resolution_clock and steady_clock are (still) busted on MSVC 2013,
so no change there.
BUG=skia:
Review URL: https://codereview.chromium.org/1521293002
|
|
|
|
|
|
|
|
|
|
|
| |
the path edge is not canceled with another edge through coincidence.
Add test cases for edges and conics, and make sure it all works.
R=reed@google.com
BUG=skia:4669,4265
Review URL: https://codereview.chromium.org/1517883002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #12 id:220001 of https://codereview.chromium.org/1490113005/ )
Reason for revert:
speculative revert to see if it unblocks the DEPS roll
https://codereview.chromium.org/1529443002
Original issue's description:
> Add config options to run different GPU APIs to dm and nanobench
>
> 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
>
> Committed: https://skia.googlesource.com/skia/+/e13ca329fca4c28cf4e078561f591ab27b743d23
TBR=bsalomon@google.com,scroggo@google.com,joshualitt@google.com,kkinnunen@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992
Review URL: https://codereview.chromium.org/1528473002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
Try to fix intermittent GrAutoLocaleSetter crashes on Windows.
The string returned by setlocale() is only valid up to
next setlocale(), so it can not be fed to setlocale().
Also, libraries such as ANGLE might call setlocale when
inside a callstack containing GrAutoLocaleSetter. This
would render the old locale pointer invalid.
Review URL: https://codereview.chromium.org/1514083002
|
|
|
|
|
|
|
|
|
|
| |
Add a test that we get the same color back after calling SkBitmap::eraseColor, modulo rounding.
Also update some incorrect docs.
BUG=skia:4297
Review URL: https://codereview.chromium.org/1521673002
|
|
|
|
|
|
|
| |
BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review URL: https://codereview.chromium.org/1521623003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1519083002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will prevent behavior changes in BitmapFactory when
switching from SkImageDecoder to SkAndroidCodec.
We will only choose kGray8 if it is explicitly requested (and
also supported).
Additionally, we will always decode GIFS and WBMPS to
kIndex8.
BUG=skia:
Review URL: https://codereview.chromium.org/1519843002
|
|
|
|
|
|
| |
BUG=skia:3491
Review URL: https://codereview.chromium.org/1515193002
|
|
|
|
|
|
|
|
|
|
| |
If the client requests a color type or alpha type that is
not supported, we should decode to the default/appropriate
color and alpha types to match existing behavior in Android.
BUG=skia:
Review URL: https://codereview.chromium.org/1513023002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1521453002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1518883002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL may not really be necessary since it seems that the Android Ones we have fall back to mediump when highp isn't supported.
FYI, for bits-of-precision/precision we have:
Low Med High Precision-Used
A1 (Cherry One - Mali 400) 10 10 0 Med - conic looks bad
N5 (Adreno 330) 10 10 23 High - conic looks bad!!!
N6 (Adreno 420) 10 10 23 High - conic looks good
N7v2 (Adreno 320) 10 10 23 High - conic looks bad!!!
N9 (K1) 23 23 23 High - looks good
N10 (Mail-604) 10 10 23 High - looks good
I suspect derivative computation is broken on the Adreno 300s.
BUG=555779,skia:4668
TBR=bsalomon@google.com
Review URL: https://codereview.chromium.org/1513573009
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initialize glGenTexture, glGenBuffer call id buffer items to zero before
calls. Otherwise it's not easy to check if the call succeeded or not.
Assert the rule in debug gl context.
Make TesselatingPathRendererTests use debug gl context. It exercises
some of the GenBuffers call sites.
Review URL: https://codereview.chromium.org/1514033002
|
|
|
|
|
|
| |
BUG=skia:4634
Review URL: https://codereview.chromium.org/1518863002
|