aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Invalidate path VBs when paths are destroyedGravatar Brian Osman2017-09-26
| | | | | | | | | | | | | | | | | | | For this to work, we need access to the "original" path, before any style was applied. To that end, add an original path to GrShape (and unit tests of that functionality). Then add a version of addGenIDChangeListener to GrShape, that propagates to the original path, and use that in tessellating path renderer. Includes unit tests of caching behavior in the PR, all of which failed without this change. Bug: skia: Change-Id: I98bb505f521e8ff07184f5c3fbd3c5fd1a22d3d5 Reviewed-on: https://skia-review.googlesource.com/50300 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add animated cowboy sample from WebKit tests, and fix.Gravatar Jim Van Verth2017-09-25
| | | | | | | | Bug: chromium:712455 Change-Id: Ic9bb9b862abe01f112cc41d28589733460b15bc1 Reviewed-on: https://skia-review.googlesource.com/50181 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "migrate to sk_sp for SkFontMgr API"Gravatar Mike Reed2017-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 4bf296be2821d2bdd0afabae9fdfe18e7e9b59cb. Reason for revert: need guard for flutter Original change's description: > migrate to sk_sp for SkFontMgr API > > Bug: skia: > Change-Id: I1bf2a13537f67938cdc9956080065d10ea0bd1d8 > Reviewed-on: https://skia-review.googlesource.com/48740 > Commit-Queue: Ben Wagner <bungeman@google.com> > Reviewed-by: Ben Wagner <bungeman@google.com> TBR=bungeman@google.com,reed@google.com Change-Id: Ib0b2d00fcbcdb6131444f94d1046df6dae24f551 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/50940 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* migrate to sk_sp for SkFontMgr APIGravatar Mike Reed2017-09-25
| | | | | | | | Bug: skia: Change-Id: I1bf2a13537f67938cdc9956080065d10ea0bd1d8 Reviewed-on: https://skia-review.googlesource.com/48740 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* Simplify / fix SkBitmap::ReadRawPixels()Gravatar Mike Klein2017-09-25
| | | | | | | | | | | | | | | | | | | | | | | We no longer need to look at the field snugRB except to check for the simple no-pixels case. This is good, because our snugRB <= ramRB check is actually too weak, and is the source of this linked Chromium issue. BUG=chromium:765858 Instead of doing complicated checks against that stored snugRB and the computed ramRB, we now just ignore snugRB. We know the images written by write_row_bytes() will be snug, so we can just look at width, height, and color type to figure out exactly how many bytes we should be reading. Then it becomes the call to readByteArray()'s responsibility to make sure that we have an array there of exactly that many bytes to read. We've just got to make sure we check for its failure. Change-Id: Ia05c36d8a77b0de16ee03a80f6cb2dab6fcedbae Reviewed-on: https://skia-review.googlesource.com/50800 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Make SkPath::readFromMemory failure silentGravatar Adrienne Walker2017-09-25
| | | | | | | | | | | | It currently asserts, but should instead silently fail. Otherwise, without asserts turned on, this would leave the SkPath in an inconsistent state. Bug: chromium: 767770 Change-Id: Ib2af4caccfe19a4a008abccfe7b25b80ccf23146 Reviewed-on: https://skia-review.googlesource.com/50160 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Reland "Fix SkImageSource::filterBounds()" againGravatar Xianzhu Wang2017-09-25
| | | | | | | | | | | | | | | | | | | | | | | This relands commit cb4d58766668b003fea67798027fc25d84acd059 which was reverted by commit b6d2be1330f16fe05f1eed5abda927c0fbb50055 because the original CL broke some blink layout tests, and the first reland was reverted by commit because it broke filterfastbounds gm. This reland let SkImageSource::onFilterNodeBounds() return the dst rect with ctm applied when mapping forward or otherwise the default value. Original description: > Previously SkImageSource::filterBounds() uses the default > SkImageFilter::onFilterNodeBounds() which returns the input rect. > > Now override onFilterNodeBounds() in SkImageSource to return src > or dst rect (with transform applied). Change-Id: I4548981142b9a96beda8339d394cf9943c9f4c0f Reviewed-on: https://skia-review.googlesource.com/50420 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Merge fCurrIncrementalCodec and fCurrScanlineCodec usage into single Gravatar nagarajan.n2017-09-25
| | | | | | | | | | | | | variable This patch merges fCurrIncrementalCodec and fCurrScanlineCodec usage into single variable for SkIcoCodec. Bug: skia: None Change-Id: I6629f04fc27b8792c4cb1e6f494f8df7006c6b21 Reviewed-on: https://skia-review.googlesource.com/50520 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Reland blitFatAntiRect with guard to avoid overhead in MaskAdditiveBlitterGravatar Yuqian Li2017-09-25
| | | | | | | | | | | | | | | This results in ~15% (~700ns vs ~600ns) speedup for path_fill_small_rect bench in 8888 config. Some skps have a lot of stroked horizontal/vertical lines (e.g., bar charts) so this improvement could have a great impact there. For example, cereal converts Microsoft word docx to PNGs on server and the sample docx has a big bar chart. That inspired this improvement. Bug: skia: Change-Id: If191b8beca58c5c08b356b64ffef93d51761fd0a Reviewed-on: https://skia-review.googlesource.com/50043 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Remove unneeded kExact and kNoCreate Flags from GrResouceProviderGravatar Greg Daniel2017-09-25
| | | | | | | | | | This is change 1 of 3 to reland, https://skia-review.googlesource.com/c/skia/+/42083 Bug: skia: Change-Id: Ia0369fc67807e369c2e90220f5824da7164a230a Reviewed-on: https://skia-review.googlesource.com/44461 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Fold clamp_{x,y} into the gathers.Gravatar Mike Klein2017-09-22
| | | | | | | | | | | | | | | | | | | All three image tile modes go through exclusive_clamp() and then a gather today, so we can move the work of exclusive_clamp() into eac gather_ stage, eliminating the need for clamp_{x,y} stages. Luckily, we've got a convenient place to bottleneck this, ptr_and_ix(), which works out the pointer and vector of indices to load for gathers. This deletes SkRasterPipeline_repeat_tiling unit test, which now no longer exactly makes sense. It tests that repeat_x does that clamp, but that's now done automatically outside that stage. Change-Id: I24637ef60921bec7aa00082984c0c6a49dd86ca9 Reviewed-on: https://skia-review.googlesource.com/50260 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Remove unused function with an incorrect assertGravatar Brian Osman2017-09-22
| | | | | | | | Bug: skia: Change-Id: I4003085fbb1cadc4aeb2e950f1a9f44f96d03a93 Reviewed-on: https://skia-review.googlesource.com/50240 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Shrink GrDrawOpAtlases when no longer needed"Gravatar Jim Van Verth2017-09-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7cf59526c9b1ab3682e875d449200e51f3b6ff32. Reason for revert: Red red bots... it's tearing me apart... Original change's description: > Shrink GrDrawOpAtlases when no longer needed > > Bug: skia:3550 > Change-Id: I7b09aa2b0fd22ed99694f32f9f395392ef80e238 > Reviewed-on: https://skia-review.googlesource.com/49901 > Commit-Queue: Jim Van Verth <jvanverth@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: I8331ec79b0796e1f75d7cc53b9753f886aea7fcd No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:3550 Reviewed-on: https://skia-review.googlesource.com/50220 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Shrink GrDrawOpAtlases when no longer neededGravatar Jim Van Verth2017-09-22
| | | | | | | | | Bug: skia:3550 Change-Id: I7b09aa2b0fd22ed99694f32f9f395392ef80e238 Reviewed-on: https://skia-review.googlesource.com/49901 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Use clear-as-draw workaround on Ivy Bridge/ANGLE D3D11.Gravatar Brian Salomon2017-09-22
| | | | | | | | Bug: chromium:755871 Change-Id: Id2538406c75d86de994ff88cc0bfc17d2cb45394 Reviewed-on: https://skia-review.googlesource.com/50040 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Add missing onDrawDrawable() overrides to utility canvasesGravatar Florin Malita2017-09-22
| | | | | | | | Change-Id: Ia5a7c523263e2c4744e0f3a743c6a4433760a4be Reviewed-on: https://skia-review.googlesource.com/49770 Reviewed-by: Stan Iliev <stani@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* switched SkSL's temporary 'highfloat' type back to 'float'Gravatar Ethan Nicholas2017-09-22
| | | | | | | | Bug: skia: Change-Id: If0debae7318b6b5b4a7cb85d458996a09931127e Reviewed-on: https://skia-review.googlesource.com/48760 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Don't deserialize pathref oval/rrect bitsGravatar Brian Salomon2017-09-22
| | | | | | | Change-Id: Id891329ee789347fb269d41bef9991f85233e031 Reviewed-on: https://skia-review.googlesource.com/49771 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove unsafe align4 callGravatar Herb Derby2017-09-21
| | | | | | | | | | | Align by 4 safely before calling malloc. BUG=chromium:763972 Change-Id: I9278ae0df516adf3eb96fc390ad7318a47cbefa4 Reviewed-on: https://skia-review.googlesource.com/49760 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Temporary patch for Mac TSAN bot (with threaded Ganesh mask generation)Gravatar Robert Phillips2017-09-21
| | | | | | | | Change-Id: Id84e1534b00583eb2d76699386f42277d2007602 Reviewed-on: https://skia-review.googlesource.com/49900 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* count total non-lowp runsGravatar Mike Klein2017-09-21
| | | | | | | Change-Id: I2e24c990983ea93cbd7983c9c4e88120c2b7f358 Reviewed-on: https://skia-review.googlesource.com/49768 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Guard resource provider path creation methods against abandoned contextGravatar Robert Phillips2017-09-21
| | | | | | | Change-Id: Idb447352d1c39b14137e8bb5af4f3c8fd7378750 Reviewed-on: https://skia-review.googlesource.com/49767 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Don't call GrBuffer::map() in createPatternedIndexBuffer.Gravatar Mike Klein2017-09-21
| | | | | | | | | | | | | | | TSAN doesn't seem to be understanding that the memory coming back from GrBuffer::map() is a new allocation. Using AnnotateNewMemory() to tell TSAN didn't seem to help. This also appears to fix a memory leak if buffer->updateData() fails when useTempData was true. Not sure if that ever really happens? Bug: skia:7058 Change-Id: I0a2786fa2c59e14c322ec5acc8cd26436c5a9477 Reviewed-on: https://skia-review.googlesource.com/49743 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Serialize rrect/oval paths as rrects rather than points and verbs.Gravatar Brian Salomon2017-09-21
| | | | | | | | | This is a step towards not trusting deserialized isoval/isrrect for general paths without losing the performance advantages of knowing that a path is a rrect/oval. Change-Id: I1a8c0608c0f29f4bf7a118dfa1d475e2ab5802ea Reviewed-on: https://skia-review.googlesource.com/49761 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Add SK_API to APIs used by the android framework.Gravatar Derek Sollenberger2017-09-21
| | | | | | | | | | | | | This CL enables us to set the default visibility of the symbols on Android to hidden. It is the intent that all of he SK_APIs that have been added to /src directies should be removed as soon as we can remove their callers within Android. Bug: b/31971097 Change-Id: Ic787f94df0fb0c2b8d941aa7095a12b317c4b5de Reviewed-on: https://skia-review.googlesource.com/49501 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
* Fix wrap mode asserts in GrVkSampler::GenerateKeyGravatar Brian Salomon2017-09-21
| | | | | | | | | Samplers now use their own enum rather than SkShader::TileMode. Change-Id: I25324f7905a3c22fcd3699d6a0f778befa8c32da Reviewed-on: https://skia-review.googlesource.com/49764 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Teach TSAN directly about semaphore_t.Gravatar Mike Klein2017-09-21
| | | | | | | | | | | | | | | Instead of teaching TSAN than SkMutex is a lock to get around it not understanding Mach semaphore_t routines, teach it that there is a happens-before relationship between semaphore_signal() and semaphore_wait(). This reverts commit e395bf2d189e22822ddf2b46541c510d6d8fbcc0. New changes are entirely restricted to SkSemaphore.cpp. Change-Id: I27f647b93c48e81e8327db849881d669c4cd3d04 Reviewed-on: https://skia-review.googlesource.com/49180 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Remove pre-attachment of stencil buffersGravatar Robert Phillips2017-09-21
| | | | | | | Change-Id: I4ef555a2b36cf3a0ec74e0ecf7e8ab4f8779df3e Reviewed-on: https://skia-review.googlesource.com/49740 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Add native caching of uniquely keyed GrTextureProxies (take 2)Gravatar Robert Phillips2017-09-21
| | | | | | | | | TBR=bsalomon@google.com Change-Id: I590dcdc85fb60706c7eb06277694791dc04c9141 Reviewed-on: https://skia-review.googlesource.com/49543 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Add native caching of uniquely keyed GrTextureProxies"Gravatar Robert Phillips2017-09-20
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d4f100dad90ed5beb1b614464d8c4fcb22c0a993. Reason for revert: ASAN Original change's description: > Add native caching of uniquely keyed GrTextureProxies > > Change-Id: I303fe025b7856b8d681a2d35b416c015bd468e1d > Reviewed-on: https://skia-review.googlesource.com/48300 > Commit-Queue: Robert Phillips <robertphillips@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com Change-Id: I7bbf549d4855ce6d985867c3880eef80080bd3d1 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/49442 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* remove dead code for STREAM_APIGravatar Mike Reed2017-09-20
| | | | | | | | Bug: skia: Change-Id: I5c5a65710af443c60a3d13fb309ce31309be7f74 Reviewed-on: https://skia-review.googlesource.com/49460 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add native caching of uniquely keyed GrTextureProxiesGravatar Robert Phillips2017-09-20
| | | | | | | Change-Id: I303fe025b7856b8d681a2d35b416c015bd468e1d Reviewed-on: https://skia-review.googlesource.com/48300 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Avoid using glUnmapBufferOES with ES3Gravatar Brian Osman2017-09-20
| | | | | | | | | | | | As reported in https://github.com/flutter/flutter/issues/10617#issuecomment-330935921, we were mixing ES2 and ES3 API. This makes our interface assembly code directly parallel our caps code. Bug: skia: Change-Id: I91c0696a223f7eaf27641dbe16ab451b0bdc362c Reviewed-on: https://skia-review.googlesource.com/49440 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Fix TSAN issue with atlas expansion.Gravatar Jim Van Verth2017-09-20
| | | | | | | | | | | Removes SkString-related malloc from DM crash handler, and adds null check in ProxyRefTest. Bug: skia:3550 Change-Id: I143c532b5d231a426b1a96b854e1effd6379b673 Reviewed-on: https://skia-review.googlesource.com/48440 Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Fix float-cast-overflow in SkTypeface_FreeType::onGetAdvancedMetricsGravatar Ben Wagner2017-09-20
| | | | | | | | Bug: skia:4632 Change-Id: Id2ee217787e6741011f324951f11eeefc55f62b9 Reviewed-on: https://skia-review.googlesource.com/47321 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* Extra safety for SkRRect.Gravatar Brian Salomon2017-09-20
| | | | | | | | | | | | | This moves closer to ensuring that all SkRRects are valid. It also checks for validity of deserialized SkRRects and sets the SkRRect to empty if the serialized data is invalid rather than asserting. It is still possible to use mutators to create invalid SkRRects (e.g. outset() by large number, translate() so that type changes due to fp precision). Bug: skia: Change-Id: Ice5f73a020e99739ef4b3ce362181d3dbb35701c Reviewed-on: https://skia-review.googlesource.com/49220 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Use shader based blending to clamp kPlus mode w/F16Gravatar Brian Osman2017-09-20
| | | | | | | | Bug: skia:6173 Change-Id: I21042d484d9a7b3eee04aa3301d9793d00ad6908 Reviewed-on: https://skia-review.googlesource.com/48183 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Reduced size of SkSL lexer tablesGravatar Ethan Nicholas2017-09-20
| | | | | | | | | | | | | The SkSL lexer tables contain duplicate rows, as many characters have the same transitions (for instance, every lexer rule treats all digits [0-9] the same way, so that means ten rows with identical transitions). This change collapses such duplicate rows. Bug: 764430 Change-Id: I83040692f847e3aff8069fddbe975a007f4b383c Reviewed-on: https://skia-review.googlesource.com/48263 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* CCPR: Process corners analyticallyGravatar Chris Dalton2017-09-20
| | | | | | | | | | | | | | Replaces the sampling-based corner approximation with a faster, smoother analytic one. The new version also only looks at the two incoming edges rather than considering the entire triangle. This paves the way for fanning with more efficient, larger polygons instead of just triangles. Bug: skia:6993 Change-Id: Ia5ab9a4ccadfba72759d52ce5e6a9cc719294459 Reviewed-on: https://skia-review.googlesource.com/48341 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Fix 3 related races in SkColorSpace.cpp.Gravatar Mike Klein2017-09-19
| | | | | | | | | | | | | As written one thread can be comparing against, say, gSRGB, while another thread is initializing it. TSAN caught us. To fix this, we funnel everything through a function that returns its own local static, which is intialized on first use in a thread safe way. Change-Id: I2b7aa4628daff0511ad969d9800d40d967e2938e Reviewed-on: https://skia-review.googlesource.com/48761 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add a SkWStream-based SkSVGCanvas factoryGravatar Florin Malita2017-09-19
| | | | | | | | | BUG=skia:7047 Change-Id: I729ec3bf7cb1bbdcef1e527ac63dbc1b1857bfa1 Reviewed-on: https://skia-review.googlesource.com/48520 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* Move adding offset to dstRow in SkRawCodec::onGetPixelsGravatar nagarajan.n2017-09-19
| | | | | | | | | | This patch moves adding offset to dstRow in SkRawCodec::onGetPixels. Bug: skia:None Change-Id: Icd6a299b73e394eb67e30ad29829d9e2aa8a3646 Reviewed-on: https://skia-review.googlesource.com/48400 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Remove legacy code for box blur.Gravatar Herb Derby2017-09-19
| | | | | | | Change-Id: I2a4ca5d623adcf923981dd27be40dcbf81152954 Reviewed-on: https://skia-review.googlesource.com/48583 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Mac TSAN support: annotate Sk[Base]Mutex as a mutex.Gravatar Mike Klein2017-09-19
| | | | | | | | | | | | TSAN does not intercept Mach semaphore_t calls used to implement SkBaseMutex's fSemaphore (its OSSemaphore field). We can teach it that Sk[Base]Mutex is a mutex anyway with the same annotations we use for SkSharedMutex. Change-Id: Ib91928bb9fcfa94f5cea985b46dea31ff2b56963 Reviewed-on: https://skia-review.googlesource.com/48580 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* fix race in SkFontHost_mac.cppGravatar Mike Klein2017-09-19
| | | | | | | | | | | We've not got any sort of synchronization guarding gSupportsLCD. If we simply move the work into its initializer, it will happen once in a thread safe way. Change-Id: I86d87bea2850d0ce4d3886069f6f1f968d323343 Reviewed-on: https://skia-review.googlesource.com/48582 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Fix float-cast-overflow in SkOpSpan::sortableTop.Gravatar Ben Wagner2017-09-19
| | | | | | | | Bug: skia:4632 Change-Id: I5af8bb7b04673307cdf7865bb7d56a041ba27d83 Reviewed-on: https://skia-review.googlesource.com/47320 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
* add back SkPacked16toX32 to SkColorPrivGravatar Cary Clark2017-09-19
| | | | | | | | | | | | Android vendor requires this interface so moving it back to public for now. TBR=reed@google.com Bug: skia: 6898 Change-Id: I4eb6da0b929227fcf327dac0626e9efd8f9a2705 Reviewed-on: https://skia-review.googlesource.com/48420 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
* Revert "Reland "Fix SkImageSource::filterBounds()""Gravatar Florin Malita2017-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit bf12c079707a89f683ad0a6c989127fa20d9d202. Reason for revert: broke the filterfastbounds GM (2nd column, 5th & 7th rows) Original change's description: > Reland "Fix SkImageSource::filterBounds()" > > This relands commit cb4d58766668b003fea67798027fc25d84acd059 > which was reverted by commit b6d2be1330f16fe05f1eed5abda927c0fbb50055 > because the original CL broke some blink layout tests. > > This reland let SkImageSource::filterBounds() return the dst rect with > ctm applied regardless of direction. > > Original description: > > > Previously SkImageSource::filterBounds() uses the default > > SkImageFilter::onFilterNodeBounds() which returns the input rect. > > > > Now override onFilterNodeBounds() in SkImageSource to return src > > or dst rect (with transform applied). > > Change-Id: I915b7889ff59829ddbc4479cd66d75a0bb581e54 > Reviewed-on: https://skia-review.googlesource.com/47501 > Commit-Queue: Stephen White <senorblanco@chromium.org> > Reviewed-by: Stephen White <senorblanco@chromium.org> TBR=senorblanco@chromium.org,reed@google.com,wangxianzhu@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I698433de66cf3de145b9319e09cb9ec9e30d2fa9 Reviewed-on: https://skia-review.googlesource.com/48160 Reviewed-by: Florin Malita <fmalita@chromium.org>
* skipRect should only work for lines (not quads or cubics)Gravatar Yuqian Li2017-09-18
| | | | | | | | | | | | | | The added unit test shows that we'll trigger SkASSERT failure if we forgot to check that the edges are lines (instead of quads or cubics). Similar to skia:7015, this bug is not triggered in our production because we don't use DAA for convex paths by default. The skipRect is an optimization just for convex paths. Bug: skia:7051 Change-Id: Id87ce2d452ede0db9a48425541f473af19ee0572 Reviewed-on: https://skia-review.googlesource.com/48045 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Revert "Call blitFatAntiRect to avoid overhead in MaskAdditiveBlitter"Gravatar Mike Klein2017-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6d1aaca8276ff4ae2e10870f7e2c3222907cc4aa. Reason for revert: speculative revert for Google3 diff. Original change's description: > Call blitFatAntiRect to avoid overhead in MaskAdditiveBlitter > > This results in 25% (720ns vs 560ns) speedup for > path_fill_small_rect bench in 8888 config. Some skps have a lot of stroked > horizontal/vertical lines (e.g., bar charts) so this improvement could > have a great impact there. For example, cereal converts Microsoft word docx > to PNGs on server and the sample docx has a big bar chart. That inspired > this improvement. > > Bug: skia: > Change-Id: Icf96c966edf87427b3d1f53da09a49930eda2ac1 > Reviewed-on: https://skia-review.googlesource.com/46584 > Commit-Queue: Yuqian Li <liyuqian@google.com> > Reviewed-by: Mike Klein <mtklein@google.com> TBR=mtklein@google.com,herb@google.com,liyuqian@google.com,reed@google.com Change-Id: Ia30df0be874749c5f8ee0138f3d7d961d5bc3fcf No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/48220 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>