aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
...
* Tessellating GPU path renderer.Gravatar senorblanco2015-02-26
| | | | | | | | | | This path renderer converts paths to linear contours, resolves intersections via Bentley-Ottman, implements a trapezoidal decomposition a la Fournier and Montuno to produce triangles, and renders those with a single draw call. It does not currently do antialiasing, so it must be used in conjunction with multisampling. A fair amount of the code is to handle floating point edge cases in intersections. Rather than perform exact computations (which would require arbitrary precision arithmetic), we reconnect the mesh to reflect the intersection points. For example, intersections can occur above the current vertex, and force edges to be merged into the current vertex, requiring a restart of the intersections. Splitting edges for intersections can also force them to merge with formerly-distinct edges in the same polygon, or to violate the ordering of the active edge list, or the active edge state of split edges. BUG=skia: Review URL: https://codereview.chromium.org/855513004
* adding preabandon flag to DMGravatar joshualitt2015-02-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/929243004
* I'd really like to land this before the branch so speedy reviews are ↵Gravatar joshualitt2015-02-25
| | | | | | | | | | appreciated. BUG=skia: Committed: https://skia.googlesource.com/skia/+/586d5d640b19860dfbbd903a5188da1bbbe87336 Review URL: https://codereview.chromium.org/936943002
* Revert of Pass clip to context (patchset #8 id:180001 of ↵Gravatar joshualitt2015-02-25
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/936943002/) Reason for revert: Strange blur problems on nexus 5 Original issue's description: > I'd really like to land this before the branch so speedy reviews are appreciated. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/586d5d640b19860dfbbd903a5188da1bbbe87336 TBR=jvanverth@google.com,senorblanco@google.com,bsalomon@google.com,senorblanco@chromium.org,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/956083002
* I'd really like to land this before the branch so speedy reviews are ↵Gravatar joshualitt2015-02-25
| | | | | | | | appreciated. BUG=skia: Review URL: https://codereview.chromium.org/936943002
* only notify bitmaps that have been added to the cacheGravatar reed2015-02-25
| | | | | | | | | | | | old code: - calls=2677 hit-rate=3.51139% new code: - calls=94 hit-rate=97.8723% BUG=skia: Review URL: https://codereview.chromium.org/960563002
* BUG=skia:Gravatar herb2015-02-25
| | | | | | | | | | (mtklein from here on) No public API changes. TBR=reed@google.com Committed: https://skia.googlesource.com/skia/+/f8d24e2c0c7b44b7ccf20e40890514db4cde7b15 Review URL: https://codereview.chromium.org/939123002
* Fix to check for inf when generating quadratic pointsGravatar egdaniel2015-02-25
| | | | | | BUG=skia:3453 Review URL: https://codereview.chromium.org/948043003
* fix for msanGravatar joshualitt2015-02-24
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/958433004
* don't draw if maxVertices returns 0 or > than uin16_t maxGravatar joshualitt2015-02-24
| | | | | | | | This doesn't do anything about the issue of having too many indices, but it does move the fuzzer on to another assert. BUG=skia: Review URL: https://codereview.chromium.org/952993004
* k1 fixGravatar joshualitt2015-02-24
| | | | | | | | TBR= NOTREECHECKS=True BUG=skia: Review URL: https://codereview.chromium.org/952973002
* probable fix for asan botGravatar joshualitt2015-02-24
| | | | | | | | NOTREECHECKS=True TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/956583002
* Revert of Make fID and MixedID calculations private (patchset #5 id:80001 of ↵Gravatar scroggo2015-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/939123002/) Reason for revert: This actually *does* change the public API - fID is now private, and it was being used on Android. See https://android-build.storage.googleapis.com/builds/git_master-skia-linux-volantis-userdebug/1751533/5242b865d3e9bebc650c9b326dfa9d68c8bd1f59562bf32b85301fb984dc8b26/logs/build.log?Signature=Q0el9M4kTu1KQ8u02KX9TH1Pa22y9BkDK1IW%2B9OeJJNfrDEVzLXAz0XQ%2BHHQM8xVjft06jZJva1V8InZmgjcOk6PdZQbQW6XwwsHLKsbpbAE48iTWH3AlJAAoTtj9cifzgeHW8g80IcVxwHXmINRER%2BLPz3eHGisgfTTFUoWYCc%3D&GoogleAccessId=701025073339-mqn0q2nvir9iurm6q5d00tdv7blbgvjr%40developer.gserviceaccount.com&Expires=1424786471 : In file included from frameworks/base/libs/hwui/tests/../font/Font.cpp:26:0: external/skia/src/core/SkGlyph.h: In member function 'android::uirenderer::CachedGlyphInfo* android::uirenderer::Font::cacheGlyph(const SkPaint*, glyph_t, bool)': external/skia/src/core/SkGlyph.h:157:17: error: 'uint32_t SkGlyph::fID' is private uint32_t fID; ^ frameworks/base/libs/hwui/tests/../font/Font.cpp:482:39: error: within this context newGlyph->mGlyphIndex = skiaGlyph.fID; We need to update Android in order to hide fID. Original issue's description: > BUG=skia: > > (mtklein from here on) > No public API changes. > TBR=reed@google.com > > Committed: https://skia.googlesource.com/skia/+/f8d24e2c0c7b44b7ccf20e40890514db4cde7b15 TBR=mtklein@google.com,herb@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/951353002
* BUG=skia:Gravatar herb2015-02-24
| | | | | | | | (mtklein from here on) No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/939123002
* Enable rect clipsGravatar joshualitt2015-02-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/951653002
* move static init to cpp file to fix linux builderGravatar joshualitt2015-02-23
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/947933004
* non-aa rects batchGravatar joshualitt2015-02-23
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/ee72dde696b35534465c14f6b4c5bfca44a2f63e Review URL: https://codereview.chromium.org/931293002
* Move clip off of draw targetGravatar joshualitt2015-02-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/947443003
* Use highp for distance field texture coord varyings.Gravatar jvanverth2015-02-23
| | | | | | | | | | | Because the glyph texture atlas is 1024x2048, on certain platforms using mediump UVs is not enough resolution for doing texture lookups and getting good results for distance fields. Bumping these to highp solves this problem. BUG=skia:3445 Review URL: https://codereview.chromium.org/951003002
* Fix release-developer build.Gravatar bsalomon2015-02-23
| | | | | | TBR=humper@google.com Review URL: https://codereview.chromium.org/951613002
* Remove canApplyCoverage from XP and all related functions in gpu code.Gravatar egdaniel2015-02-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/919683002
* Remove EGL header from SkANGLELContext.hGravatar bsalomon2015-02-23
| | | | | | TBR=egdaniel@google.com Review URL: https://codereview.chromium.org/947263002
* Add stencil buffer create tracking to GPU stats.Gravatar bsalomon2015-02-23
| | | | Review URL: https://codereview.chromium.org/949953002
* Don't require AA in order to use shader-based clipsGravatar bsalomon2015-02-23
| | | | Review URL: https://codereview.chromium.org/941423002
* clear stencil buffer using special purpose FBOGravatar bsalomon2015-02-23
| | | | Review URL: https://codereview.chromium.org/941383003
* Dynamically create stencil buffer when needed.Gravatar bsalomon2015-02-23
| | | | Review URL: https://codereview.chromium.org/938383004
* Use D3D11 backend for ANGLE when available.Gravatar bsalomon2015-02-23
| | | | Review URL: https://codereview.chromium.org/954453002
* Default path renderer batchGravatar joshualitt2015-02-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/884013010
* Revert of non-aa rects batch (patchset #6 id:90001 of ↵Gravatar joshualitt2015-02-23
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/931293002/) Reason for revert: breaks angle Original issue's description: > non-aa rects batch > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/ee72dde696b35534465c14f6b4c5bfca44a2f63e TBR=robertphillips@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/944743005
* non-aa rects batchGravatar joshualitt2015-02-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/931293002
* Swap render target instead of creating a new gpu device for surface ↵Gravatar kkinnunen2015-02-22
| | | | | | | | | | | | | | copy-on-write Swap render target of the gpu device instead of creating a new gpu device when making a copy-on-write upon surface modification. This removes the SkCanvas::setRootDevice which contains problematic code when trying to increase the use of SkImages internally in Skia. BUG=skia:3388 Review URL: https://codereview.chromium.org/925343002
* Remove historical assert in AAConvexPathRendererGravatar joshualitt2015-02-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/944873004
* Port GrGLCaps over to use SkTHash.Gravatar mtklein2015-02-20
| | | | | | | | | | | | | I've written some new hashtable interfaces that should be easier to use, and I've been trying to roll them out bit by bit, hopefully replacing SkTDynamicHash, SkTMultiMap, SkTHashCache, etc. This turns the cache in GrGLCaps::readPixelsSupported() into an SkTHashMap, mapping the format key to a bool. Functionally, it's the same. BUG=skia: Review URL: https://codereview.chromium.org/948473002
* Fix layer hoisting bug in SkCanvas::drawPicture pathGravatar robertphillips2015-02-20
| | | | | | Most of this CL is just reordering to better match the MultiPictureDraw variant. The only functional change is that we now use the device space bounds as the queryRect to the layer hoisting code. This is necessary since the layer hoisting does all its work in device space. Review URL: https://codereview.chromium.org/942853002
* Round stencil buffers dims up to next pow2 when allowedGravatar bsalomon2015-02-20
| | | | Review URL: https://codereview.chromium.org/937303002
* Handle the case when the GrResourceCache timestamp wraps.Gravatar bsalomon2015-02-19
| | | | | | NOTREECHECKS=true Review URL: https://codereview.chromium.org/916103006
* gm to test hairlines which fill RenderTargetGravatar joshualitt2015-02-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/934283002
* Recycle stencil buffers across render targets.Gravatar bsalomon2015-02-19
| | | | Review URL: https://codereview.chromium.org/939093002
* Allow resources' unique keys to be changed.Gravatar bsalomon2015-02-19
| | | | Review URL: https://codereview.chromium.org/938943002
* Rename GrContentKey to GrUniqueKeyGravatar bsalomon2015-02-19
| | | | Review URL: https://codereview.chromium.org/940463006
* Do not clear the source device in SkGpuDevice::drawDeviceGravatar kkinnunen2015-02-19
| | | | | | | | | | Do not clear the source device in SkGpuDevice::drawDevice based on the status whether the destination device needs a clear. Source device clear is flushed in SkGpuDevice::accessRenderTarget() and target device clear is flushed in CHECK_SHOULD_DRAW(draw). Review URL: https://codereview.chromium.org/943623002
* Avoid wrong memory access due to double substitution and %%Gravatar kkinnunen2015-02-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the form SkDebugf("%s", arbitraryString) instead of SkDebugf(arbitraryString). Fixes the case where SkString::appendf-ing a string with "%%" and then printing the string with SkDebugf would cause uninitialized read and corrupted debug print. ninja -C out/Debug tools && valgrind --leak-check=full ./out/Debug/render_pictures --config gpu -w q -r ... ... ==7307== Conditional jump or move depends on uninitialised value(s) ==7307== at 0x6908475: __printf_fp (printf_fp.c:1180) ==7307== by 0x6904267: vfprintf (vfprintf.c:1629) ==7307== by 0x6906E53: buffered_vfprintf (vfprintf.c:2313) ==7307== by 0x690188D: vfprintf (vfprintf.c:1316) ==7307== by 0x67E8F5: SkDebugf(char const*, ...) (SkDebug_stdio.cpp:18) ==7307== by 0x7983F1: GrContext::printCacheStats() const (GrTest.cpp:54) ==7307== by 0x408ECF: tool_main(int, char**) (render_pictures_main.cpp:480) ==7307== by 0x40913E: main (render_pictures_main.cpp:511) ==7307== Budget: 2048 items 100663296 bytes Entry Count: current 652 (651 budgeted, 0 wrapped, 297 locked, 638 scratch 32 0.000000ull), high 652 Entry Bytes: current 51087658 (budgeted 49826658, 49 0.000000ull, 1261000 unbudgeted) high 51087658 (observe "ull" instead of "% full") (from mtklein) This CL is not editing public API. TBR=reed@google.com Review URL: https://codereview.chromium.org/943453002
* Pass Rendertarget into context.Gravatar joshualitt2015-02-18
| | | | | | | | Adding Jim for text context stuff, and Steven for image blur stuff. BUG=skia: Review URL: https://codereview.chromium.org/939623005
* Use uint16s for texture coordinates when rendering text.Gravatar jvanverth2015-02-18
| | | | | | | | | Allows us to push more vertices into a given vertex buffer, with a slight performance improvement. Committed: https://skia.googlesource.com/skia/+/059034d252007d0dd86fff5ffdbb53cbcb10d34b Review URL: https://codereview.chromium.org/917373002
* Revert of Use uint16s for texture coordinates when rendering text. (patchset ↵Gravatar reed2015-02-17
| | | | | | | | | | | | | | | | | | | | | | | | #5 id:80001 of https://codereview.chromium.org/917373002/) Reason for revert: speculative revert for DEPS failures https://codereview.chromium.org/932973002/ Original issue's description: > Use uint16s for texture coordinates when rendering text. > > Allows us to push more vertices into a given vertex buffer, with > a slight performance improvement. > > Committed: https://skia.googlesource.com/skia/+/059034d252007d0dd86fff5ffdbb53cbcb10d34b TBR=joshualitt@google.com,robertphillips@google.com,bsalomon@google.com,reed@google.com,djsollen@google.com,jvanverth@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/920333003
* Use an array of nonpurgeable resources in GrResourceCacheGravatar bsalomon2015-02-17
| | | | Review URL: https://codereview.chromium.org/932863004
* Make GrResourceCache use a priority queue of purgeable resources.Gravatar bsalomon2015-02-17
| | | | Review URL: https://codereview.chromium.org/921323002
* Use dst copies in porter duffer XP to correctly render certain blends.Gravatar egdaniel2015-02-17
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/997c6358d94e188b1a7b89a4f86e24cbe0f5a164 Review URL: https://codereview.chromium.org/914003003
* use common impl for drawTextOnPathGravatar reed2015-02-17
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/925343003
* Improve GrInOrderDrawBuffer::Cmd encapsulationGravatar robertphillips2015-02-17
| | | | | | In preparation for moving all the Cmds out of GrInOrderDrawBuffer. Review URL: https://codereview.chromium.org/931673002