This CL adds the clip region to the GPU layer hoisting image cache. It also switches back to the old caching behavior of using the entire CTM in the cache key rather then just the upper 2x2. This latter change is to focus more on hoisting rather then caching.
It also includes 2 smaller fixes:
a) layer's that have an image filter are no longer atlased (b.c. doing so complicates applying the image filter)
b) the result of clipping the layer's bounds to the current clip is used as the hoisted layer's size. This reduces the amount of pixels drawn to match a normal (non-hoisted) draw pass.
Review URL: https://codereview.chromium.org/640773004
Chromium has libpng with pngusr.h that disables certain functionality with
defines. Use those defines when compiling SkImageDecoder_libpng.cpp.
This makes it possible to use Skia PNG decoder and encoder when compiling dm
with Chromium. Skia PNG decoder and encoder of course is not compiled to the
skia library, but to dm with Chromium.
BUG=skia:2992
Review URL: https://codereview.chromium.org/645883004
Use the same tricks used by webtry and perf. Code seems more robust and
easier to check for errors this way.
BUG=None
TEST=./run_server.sh, then navigate to 127.0.0.1:8000 and
127.0.0.1:8000/res
R=borenet@google.com
Review URL: https://codereview.chromium.org/661613004
This setup and runs a logserver, like the one being used by skiaperf, to
serve the directory /tmp/glog, so we don't need to ssh into the instance
to see the logs of the webtry application.
This is a follow up to suggestion made in codereview.chromium.org/655323002.
BUG=None
R=jcgregorio@google.com
Review URL: https://codereview.chromium.org/643903003
This remedies two problems with the debugger's matrix handling:
1) the user matrix was not being passed to the setMatrix command (for a concat)
2) the setting of the user matrix was not consistently forcing a complete re-rendering of the scene
BUG=skia:3018
Review URL: https://codereview.chromium.org/660883002
Compute blob bounds when the client doesn't pass explicit run rects to
the builder. This allows us to remove a couple of internal workarounds.
R=reed@google.com,mtklein@google.com,bungeman@google.com
Review URL: https://codereview.chromium.org/654873003
If SkPDFDevice::drawText is called with glyph encoding and a font with
cubic outlines (CFF or Type1) and a glyph code > 255 then it was
mutating the in(const) glyph codes in place. Instead, a copy is made.
BUG=skia:3019
Review URL: https://codereview.chromium.org/656143002
You can also click on the errors in the parsed output to jump directly to the offending location in the editor.
BUG=skia:
NOTRY=true
Review URL: https://codereview.chromium.org/660573003
Reason for revert:
A large number of GMs on Ubuntu12 are failing. The text layout on GPU is visibly different than that for 8888.
Original issue's description:
> Change drawText() to generate positions and send to drawPosText()
>
> The idea here is to have a central place that does layout for drawText(), and
> then always feed text through drawPosText(). This both makes all of the
> GrTextContexts consistent in drawText() output, and does a better job of
> stressing drawPosText().
>
> Because of the effect of matrices on hinting and approximation error, the
> generated text is not 100% identical to that produced by the raster pipeline.
>
> BUG=skia:2778
>
> Committed: https://skia.googlesource.com/skia/+/7851a56895c9c076f73a835a7dd51d3c6180c16fTBR=cdalton.nvidia@gmail.com,bungeman@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2778
Review URL: https://codereview.chromium.org/659993003
The idea here is to have a central place that does layout for drawText(), and
then always feed text through drawPosText(). This both makes all of the
GrTextContexts consistent in drawText() output, and does a better job of
stressing drawPosText().
Because of the effect of matrices on hinting and approximation error, the
generated text is not 100% identical to that produced by the raster pipeline.
BUG=skia:2778
Review URL: https://codereview.chromium.org/653133004
Image subsets were always showing the same tile and were causing an image to be fully YUV decoded once per tile, which was both slow and wrong.
BUG=413001, 419718
Review URL: https://codereview.chromium.org/661483002
Refactor SkGLContext to be actually extendable. Before, non-trivial subclass
would need to destroy the GL connection upon running the destructor. However,
the base class would run GL commands in its own destructor (with destroyed GL
connection)
Refactor so that SkGLContext subclass object creation is completely done by
the factory function. If the factory function returns a non-NULL ptr, it means the context
is usable.
The destruction is done with the destructor instead of virtual function called
upon destruction. Make the destructors not to call virtual functions, for
clarity.
Remove custom 1x1 FBO setup code from the base class. It appears not to be used
anymore.
BUG=skia:2992
Review URL: https://codereview.chromium.org/640283004
The net effect is that two "+1" instructions are removed from insert().
search() nets no change: two +1 removed, two +1 added.
When vectorized, this removes the need to add in userToGrid() at all and
so the need to read an awkward {0, 0, 1, 1} constant from memory. Mostly
the benefit is less vector code to look at and think about.
BUG=skia:
Review URL: https://codereview.chromium.org/659823004
A careful reading of the preprocessor specification indicates that
any use of the 'defined' operator outside the form of 'defined X' or
'defined ( X )' directly in the constant expression of a '#if' or
'#elif' may cause undefined behavior.
In particular, msvc is very unpredictable. The 'defined X' and
'defined ( X )' forms behave differently when created from marco
expansion, with 'defined ( X )' generally evaluating to '0L'. The
'defined X' form generally behaves more the way one would expect,
but still has a number of quirks which should simply be considered
undefined behavior.
BUG=chromium:419245
Review URL: https://codereview.chromium.org/657183002