aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
Commit message (Collapse)AuthorAge
* Revert of Move sRGB <-> linear conversion components to their own files. ↵Gravatar mtklein2016-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #5 id:80001 of https://codereview.chromium.org/2128893002/ ) Reason for revert: Monotonicity assert is failing on ARM. (Different rsqrt() and invert() precision?) Will investigate a bit tomorrow... might reland with the test TODO. Original issue's description: > Move sRGB <-> linear conversion components to their own files. > > This makes them a little easier to use outside SkColorXform code. > > I've added some notes about how best to use them and their eccentricities, and added a test. > > Ultimately any software sRGB <-> linear conversion should funnel somehow through here. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128893002 > CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot > > Committed: https://skia.googlesource.com/skia/+/45e58c8807179638980aae8503573b950b844e4c TBR=reed@google.com,msarett@google.com,mtklein@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2131793002
* make some canvas utils virtual (for proxy based subclasses)Gravatar reed2016-07-07
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2130973002 Review-Url: https://codereview.chromium.org/2130973002
* Move sRGB <-> linear conversion components to their own files.Gravatar mtklein2016-07-07
| | | | | | | | | | | | | | This makes them a little easier to use outside SkColorXform code. I've added some notes about how best to use them and their eccentricities, and added a test. Ultimately any software sRGB <-> linear conversion should funnel somehow through here. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128893002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2128893002
* drawTextRSXformGravatar reed2016-07-07
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2130643004 Review-Url: https://codereview.chromium.org/2130643004
* centralize VECTORCALL as SK_VECTORCALLGravatar mtklein2016-07-07
| | | | | | | | | | | | Gonna start using this, might as well define it once centrally. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2126253002 No public API changes. TBR=reed@google.com Review-Url: https://codereview.chromium.org/2126253002
* Abstracted diffuse color map out of SkLightingShaderImpl into a generic SkShaderGravatar dvonbeck2016-07-06
| | | | | | | | | | | Will not run until after landing https://codereview.chromium.org/2106893003/ This CL's base is the CL for the addition of NormalSource to the API: https://codereview.chromium.org/2063793002/ BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2062703003 Review-Url: https://codereview.chromium.org/2062703003
* API change to allow for NormalSource selection at the user level.Gravatar dvonbeck2016-07-06
| | | | | | | | | This CL's base is the CL for CPU handling: https://codereview.chromium.org/2050773002/ BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2063793002 Review-Url: https://codereview.chromium.org/2063793002
* check for zero scale in SkDraw::ComputeResScaleForStrokingGravatar lsalzman2016-07-06
| | | | | | | | | | | | | | If the transform used to compute the res scale has both 0 scale and skew, then it will currently compute a 0 res scale. This causes getFillPath to trigger an assertion while using SkStroke since that can't handle a 0 res scale. Downstream Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1284356 BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2125933003 Review-Url: https://codereview.chromium.org/2125933003
* Experiment: add flag for finish-recording to return nullGravatar reed2016-07-06
| | | | | | | BUG=skia:5495 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2106843004 Review-Url: https://codereview.chromium.org/2106843004
* use mapRectScaleTranslate for common case in clipRectGravatar reed2016-06-30
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2119473002 Review-Url: https://codereview.chromium.org/2119473002
* speed up maprect for scale+trans caseGravatar reed2016-06-30
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2111703002 Review-Url: https://codereview.chromium.org/2111703002
* add SK_SUPPORT_PRECHECK_CLIPRECT experiment for clipRectGravatar reed2016-06-29
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2113443002 Review-Url: https://codereview.chromium.org/2113443002
* Tighten up masking of colorType & alphaType in SkImageInfo serialization ↵Gravatar robertphillips2016-06-28
| | | | | | | | | | (for fuzzer bug) In this case the int that contains the color and alpha types is getting munged. We don't really case that the surplus bits are 0 just that the values we care about are reasonable. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2110493002 Review-Url: https://codereview.chromium.org/2110493002
* Address two fuzzer bugs:Gravatar robertphillips2016-06-28
| | | | | | | | | SkImageInfos that were made invalid weren't being caught Messing with the size of a SAVE record wasn't being caught GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2104973003 Review-Url: https://codereview.chromium.org/2104973003
* Move SkColorSpace ICC parsing/writing code to its own fileGravatar msarett2016-06-28
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2101823003 Review-Url: https://codereview.chromium.org/2101823003
* remove SK_SUPPORT_LEGACY_COLORPROFILETYPE dead-codeGravatar reed2016-06-28
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2101983003 TBR= Review-Url: https://codereview.chromium.org/2101983003
* Fix mask applied to SkPath::fFillType in readFromMemory to fix fuzzer bugGravatar robertphillips2016-06-28
| | | | | | | | The fFillType field only needs/uses 2 bits - not all 8 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2099113004 Review-Url: https://codereview.chromium.org/2099113004
* Fix Perlin noise fuzz issueGravatar robertphillips2016-06-27
| | | | | | | | | | The main "fix" here was that the assert was checking the un-clamped input value rather than the clamped value. The SkValidatingReadBuffer.cpp change was required to get the reproducing fuzz test case to complete. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2107453002 Review-Url: https://codereview.chromium.org/2107453002
* Address ASAN fuzzer complaintGravatar robertphillips2016-06-27
| | | | | | | | This addresses a class of fuzzer failure where the paint index has been made invalid but the calling code doesn't handle a null pointer return. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2099343002 Review-Url: https://codereview.chromium.org/2099343002
* SkLightingShader normal vector CPU computation refactor.Gravatar dvonbeck2016-06-27
| | | | | | | | | | | | | | | | The purpose of this change is to refactor the handling of normal maps out of SkLightingShader, laying the groundwork to eventually allow for multiple normal sources. This CL's base was the CL for GPU handling: https://codereview.chromium.org/2043393002/ What this CL includes: - A refactor of the SkLightingShader context's code that deals with reading normals off of a normal map. This is now abstracted out into a NormalSource::Provider class that the context uses. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2050773002 Committed: https://skia.googlesource.com/skia/+/790a70118327a129cb6b48fabe80f4e184c1e67c Review-Url: https://codereview.chromium.org/2050773002
* Fix up flags to SkGpuBlurUtils::GaussianBlurGravatar robertphillips2016-06-27
| | | | | | | | | | This fixes a bug introduced in: https://codereview.chromium.org/1961953002/ (Reland of Simplify SkGpuBlurUtils::GaussianBlur method) Although the 'canOverwriteSrc' flag is/was being used I still believe we're better off re-adding it after the mask-blur refactoring finishes. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2100873002 Review-Url: https://codereview.chromium.org/2100873002
* Revert of Refactoring of CPU NormalMap handling out into its own class ↵Gravatar dvonbeck2016-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #13 id:240001 of https://codereview.chromium.org/2050773002/ ) Reason for revert: GMs are crashing on Windows Test trybots Original issue's description: > SkLightingShader normal vector CPU computation refactor. > > The purpose of this change is to refactor the handling of normal maps out of SkLightingShader, laying the groundwork to eventually allow for multiple normal sources. > > This CL's base was the CL for GPU handling: https://codereview.chromium.org/2043393002/ > > What this CL includes: > > - A refactor of the SkLightingShader context's code that deals with reading normals off of a normal map. This is now abstracted out into a NormalSource::Provider class that the context uses. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2050773002 > > Committed: https://skia.googlesource.com/skia/+/790a70118327a129cb6b48fabe80f4e184c1e67c TBR=egdaniel@google.com,reed@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2101653002
* SkLightingShader normal vector CPU computation refactor.Gravatar dvonbeck2016-06-27
| | | | | | | | | | | | | | | The purpose of this change is to refactor the handling of normal maps out of SkLightingShader, laying the groundwork to eventually allow for multiple normal sources. This CL's base was the CL for GPU handling: https://codereview.chromium.org/2043393002/ What this CL includes: - A refactor of the SkLightingShader context's code that deals with reading normals off of a normal map. This is now abstracted out into a NormalSource::Provider class that the context uses. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2050773002 Review-Url: https://codereview.chromium.org/2050773002
* remove experimental treat-skcolor-as-srgb flagGravatar reed2016-06-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2097003003 Review-Url: https://codereview.chromium.org/2097003003
* Add documention on SkBlitter for runs, and small cleanups.Gravatar herb2016-06-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2054213002 Review-Url: https://codereview.chromium.org/2054213002
* Fix incorrect swizzle on BGRA platforms in filterColor4f pathGravatar brianosman2016-06-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2091923003 Review-Url: https://codereview.chromium.org/2091923003
* Change SkColor4f to RGBA channel orderGravatar brianosman2016-06-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2093763003 Review-Url: https://codereview.chromium.org/2093763003
* Add support for 3D colorLUTs to SkColorXformGravatar msarett2016-06-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2097553002 Review-Url: https://codereview.chromium.org/2097553002
* SkMatrix44 clarifications and clean-upsGravatar msarett2016-06-23
| | | | | | | | | | | | | | Fixed row/col major bug and added comments to the header. Made SkMatrix::I() thread safe using constexpr. Added a test set3x3RowMajorf(). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2098583002 Review-Url: https://codereview.chromium.org/2098583002
* Fix bug in filterSpan4f - read the source, rather than the destGravatar brianosman2016-06-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2091793003 Review-Url: https://codereview.chromium.org/2091793003
* Add stub for avx.Gravatar herb2016-06-23
| | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087343002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2087343002
* Use a table-based implementation of SkDefaultXformGravatar msarett2016-06-22
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2084673002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2084673002
* Add guards around access to font cache global fields.Gravatar herb2016-06-22
| | | | | | | BUG=589439 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2082423002 Review-Url: https://codereview.chromium.org/2082423002
* Enable flattening and unflattening of SkColorSpaceGravatar msarett2016-06-22
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2085653003 Review-Url: https://codereview.chromium.org/2085653003
* update callers to not use SkColorProfileTypeGravatar reed2016-06-21
| | | | | | | | | Requires https://codereview.chromium.org/2087833002/ to land first. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2086583002 Review-Url: https://codereview.chromium.org/2086583002
* assert that non-empty clips have non-empty boundsGravatar reed2016-06-20
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2084603002 TBR= Review-Url: https://codereview.chromium.org/2084603002
* More removal of SkColorProfileType...Gravatar brianosman2016-06-20
| | | | | | | | | | | Scrub GMs. Remove the gDefaultProfile thing (it's unused now), along with the command line flag that was setting it in DM and nanobench. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2071393002 Committed: https://skia.googlesource.com/skia/+/944876f2745a62a839e49275daf93a0329372e67 Review-Url: https://codereview.chromium.org/2071393002
* Sanitize parsing of color look-up tableGravatar msarett2016-06-20
| | | | | | | BUG=skia:5443 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2079243003 Review-Url: https://codereview.chromium.org/2079243003
* Support sRGB dsts in opt codeGravatar msarett2016-06-20
| | | | | | | | | | | | | | | 201295.jpg on HP z620 (300x280) QCMS Xform 0.418 ms Skia NEW Xform 0.378 ms Vs QCMS 1.11x BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2078623002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2078623002
* Simplify mask/clip intersection, making sure to explicitly check for an ↵Gravatar mtklein2016-06-19
| | | | | | | | | | | | | | | empty mask. Previously we were only asserting the mask wasn't empty, which isn't necessarily true when we're given pathological float coordinates like +Inf or NaN. A local run of nanobench --match text_ was not able to show this is faster or slower. This patch fixed this first Chrome bug on my desktop, and the second is probably a dupe. BUG=chromium:619378,chromium:613912 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2073873002 Review-Url: https://codereview.chromium.org/2073873002
* Revert of More removal of SkColorProfileType... (patchset #2 id:20001 of ↵Gravatar egdaniel2016-06-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2071393002/ ) Reason for revert: This was still used in chrome Original issue's description: > More removal of SkColorProfileType... > > Scrub GMs. Remove the gDefaultProfile thing (it's unused now), along with > the command line flag that was setting it in DM and nanobench. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2071393002 > > Committed: https://skia.googlesource.com/skia/+/944876f2745a62a839e49275daf93a0329372e67 TBR=msarett@google.com,reed@google.com,bsalomon@google.com,brianosman@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2074103004
* More removal of SkColorProfileType...Gravatar brianosman2016-06-17
| | | | | | | | | | Scrub GMs. Remove the gDefaultProfile thing (it's unused now), along with the command line flag that was setting it in DM and nanobench. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2071393002 Review-Url: https://codereview.chromium.org/2071393002
* remove colorprofiletype from imageinfoGravatar reed2016-06-17
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2075853002 Review-Url: https://codereview.chromium.org/2075853002
* Lots of progress on switching to SkColorSpace rather than SkColorProfileTypeGravatar brianosman2016-06-16
| | | | | | | | | | Fixed a bunch of code in Ganesh, as well as usage of SkColorProfileType in most of our tools (DM, SampleApp, Viewer, nanobench, skiaserve, HelloWorld). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069173002 Committed: https://skia.googlesource.com/skia/+/6a61a875467646f8dbc37cfecf49e12d1f475170 Review-Url: https://codereview.chromium.org/2069173002
* Refactoring of GPU NormalMap handling out into its own class.Gravatar dvonbeck2016-06-16
| | | | | | | | | | | | | | | | | | | | | The purpose of this change is to refactor the handling of normal maps out of SkLightingShader, laying the groundwork to eventually allow for multiple normal sources. What this CL includes: - Created a new 'NormalMapFP', out of the existing normal map reading behavior in LightingFP. - Encapsulates this new fragment processor on a new class NormalMapSource. - Created a NormalSource abstraction that will interface with SkLightingShader. - Adapted SkLightingShader to use the normals from its NormalSource field ON THE GPU SIDE. No changes done to the CPU side yet. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2043393002 Committed: https://skia.googlesource.com/skia/+/87b0dd00cf9409c5fc990f5d0bb7c0df837f08da Committed: https://skia.googlesource.com/skia/+/a7d1e2a57aef2aa4913d4380646d60bbab761318 Review-Url: https://codereview.chromium.org/2043393002
* Revert of Lots of progress switching to SkColorSpace rather than ↵Gravatar brianosman2016-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | SkColorProfileType (patchset #10 id:180001 of https://codereview.chromium.org/2069173002/ ) Reason for revert: Mac crashes in GrUploadPixmapToTexture Original issue's description: > Lots of progress on switching to SkColorSpace rather than SkColorProfileType > > Fixed a bunch of code in Ganesh, as well as usage of SkColorProfileType in most of our tools (DM, SampleApp, Viewer, nanobench, skiaserve, HelloWorld). > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069173002 > > Committed: https://skia.googlesource.com/skia/+/6a61a875467646f8dbc37cfecf49e12d1f475170 TBR=reed@google.com,herb@google.com,msarett@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2072813002
* Lots of progress on switching to SkColorSpace rather than SkColorProfileTypeGravatar brianosman2016-06-16
| | | | | | | | | Fixed a bunch of code in Ganesh, as well as usage of SkColorProfileType in most of our tools (DM, SampleApp, Viewer, nanobench, skiaserve, HelloWorld). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069173002 Review-Url: https://codereview.chromium.org/2069173002
* Implement fast, correct gamma conversion for color xformsGravatar msarett2016-06-16
| | | | | | | | | | | | | | | | | | | | | | 201295.jpg on HP z620 (300x280, most common form of sRGB profile) QCMS Xform 0.495 ms Skia Old Xform 0.235 ms Skia NEW Xform 0.423 ms Vs Old Code 0.56x Vs QCMS 1.17x So to summarize, we are now much slower than before, but still a bit faster than QCMS. And now we are also far more accurate than QCMS :). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2060823003 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2060823003
* Differentiate between sRGBGamma and 2Dot2GammaGravatar msarett2016-06-16
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2067833003 Review-Url: https://codereview.chromium.org/2067833003
* Revert of Refactoring of GPU NormalMap handling out into its own class ↵Gravatar egdaniel2016-06-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #9 id:160001 of https://codereview.chromium.org/2043393002/ ) Reason for revert: break deps roll Original issue's description: > Refactoring of GPU NormalMap handling out into its own class. > > The purpose of this change is to refactor the handling of normal maps out of SkLightingShader, laying the groundwork to eventually allow for multiple normal sources. > > What this CL includes: > > - Created a new 'NormalMapFP', out of the existing normal map reading behavior in LightingFP. > > - Encapsulates this new fragment processor on a new class NormalMapSource. > > - Created a NormalSource abstraction that will interface with SkLightingShader. > > - Adapted SkLightingShader to use the normals from its NormalSource field ON THE GPU SIDE. No changes done to the CPU side yet. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2043393002 > > Committed: https://skia.googlesource.com/skia/+/87b0dd00cf9409c5fc990f5d0bb7c0df837f08da > Committed: https://skia.googlesource.com/skia/+/a7d1e2a57aef2aa4913d4380646d60bbab761318 TBR=reed@google.com,dvonbeck@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2068983005