aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
...
* Revert "Drop the ref on the GrOpList's target in makeClosed"Gravatar Robert Phillips2017-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit dcd499caed823f23bc70c07df7804a6dc1306606. Reason for revert: memory issue Original change's description: > Drop the ref on the GrOpList's target in makeClosed > > Bug: 729233 > Change-Id: Ifb66b745e604d7f7c22c2907bcffa91d2086236d > Reviewed-on: https://skia-review.googlesource.com/19495 > Commit-Queue: Robert Phillips <robertphillips@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: I4269c696c57a93cdd056e7c3a887c35b8765ac6d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 729233 Reviewed-on: https://skia-review.googlesource.com/19793 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Force AAType to MSAA if the render target has MSAA and the API doesn't ↵Gravatar Brian Salomon2017-06-14
| | | | | | | | | support disabling it. Change-Id: I88c29b8117fa82c6f41166b9333537a06bb841cc Reviewed-on: https://skia-review.googlesource.com/19818 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Drop the ref on the GrOpList's target in makeClosedGravatar Robert Phillips2017-06-14
| | | | | | | | Bug: 729233 Change-Id: Ifb66b745e604d7f7c22c2907bcffa91d2086236d Reviewed-on: https://skia-review.googlesource.com/19495 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Go back to using dual source blending for lcd src-over even with ↵Gravatar Greg Daniel2017-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | non-opaque color" This reverts commit b54bdef86eb5cf63b94588afaa9197f49374a5f5. Reason for revert: breaking some bots Original change's description: > Go back to using dual source blending for lcd src-over even with non-opaque color > > This is change is currently still safe since earlier in Skia we are still requiring > the dst to be opaque. The change is a workaround to spots where trying to read the > dst to do in shader blending is failing for some reason. This also should give back > a little performance since doing dual source blending should be better than shader > blends. > > Bug: chromium:732341 > Change-Id: I795f8a520f87f3fbf5d63a9509fbd9f394ea2b29 > Reviewed-on: https://skia-review.googlesource.com/19703 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,bsalomon@google.com Change-Id: Ibb9bc1ef4ec5967dabcd62c81f62c0989c14fbb8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:732341 Reviewed-on: https://skia-review.googlesource.com/19815 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Go back to using dual source blending for lcd src-over even with non-opaque ↵Gravatar Greg Daniel2017-06-14
| | | | | | | | | | | | | | | | color This is change is currently still safe since earlier in Skia we are still requiring the dst to be opaque. The change is a workaround to spots where trying to read the dst to do in shader blending is failing for some reason. This also should give back a little performance since doing dual source blending should be better than shader blends. Bug: chromium:732341 Change-Id: I795f8a520f87f3fbf5d63a9509fbd9f394ea2b29 Reviewed-on: https://skia-review.googlesource.com/19703 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* use #ifdef instead of #if for SK_VULKANGravatar Mike Reed2017-06-14
| | | | | | | | | | Try to fix android roll Bug: skia: Change-Id: Iae32027b299d8a975d3caf70f0f8910541ca972d Reviewed-on: https://skia-review.googlesource.com/19800 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "Update skia to use ifdefs for Vulkan code instead of dummy ↵Gravatar Robert Phillips2017-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | header"" This reverts commit fad9e3f54112ea8c8bb6bb72384f47b9759578f5. Reason for revert: Can't find the error message anymore (?!?) Let's try again shall we Original change's description: > Revert "Update skia to use ifdefs for Vulkan code instead of dummy header" > > This reverts commit c0f8e426c59eec6c720b8e1329dcb966cf1b6800. > > Reason for revert: Experiment to see if this will unblock the Android roll > > Original change's description: > > Update skia to use ifdefs for Vulkan code instead of dummy header > > > > Bug: skia:6721 > > Change-Id: I80a4c9f2acc09c174497f625c50ed12a8bb76505 > > Reviewed-on: https://skia-review.googlesource.com/19547 > > Reviewed-by: Mike Klein <mtklein@google.com> > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > TBR=egdaniel@google.com,mtklein@google.com,bsalomon@google.com > > Change-Id: Ib51c1672570f2071a17b6fbde692a5174b0358ce > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia:6721 > Reviewed-on: https://skia-review.googlesource.com/19724 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=egdaniel@google.com,mtklein@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: Iecef7ddcfe31d82938336120a4193525ac6693be No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6721 Reviewed-on: https://skia-review.googlesource.com/19782 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add GrTexture.h include to GrAHardwareBufferImageGenerator.cppGravatar Robert Phillips2017-06-13
| | | | | | | TBR=bsalomon@google.com Change-Id: I0cee1dc3f6cdfeaf86d1fbe2eb033c78ff8fe686 Reviewed-on: https://skia-review.googlesource.com/19725 Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Update skia to use ifdefs for Vulkan code instead of dummy header"Gravatar Robert Phillips2017-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c0f8e426c59eec6c720b8e1329dcb966cf1b6800. Reason for revert: Experiment to see if this will unblock the Android roll Original change's description: > Update skia to use ifdefs for Vulkan code instead of dummy header > > Bug: skia:6721 > Change-Id: I80a4c9f2acc09c174497f625c50ed12a8bb76505 > Reviewed-on: https://skia-review.googlesource.com/19547 > Reviewed-by: Mike Klein <mtklein@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,mtklein@google.com,bsalomon@google.com Change-Id: Ib51c1672570f2071a17b6fbde692a5174b0358ce No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6721 Reviewed-on: https://skia-review.googlesource.com/19724 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* use statically linked glGetShaderPrecisionFormat on AndroidGravatar Brian Salomon2017-06-13
| | | | | | | | Bug: skia:6731 Change-Id: I896d77d8c850f6a36d294fb5d44b5aae1b192629 Reviewed-on: https://skia-review.googlesource.com/19525 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Update skia to use ifdefs for Vulkan code instead of dummy headerGravatar Greg Daniel2017-06-13
| | | | | | | | Bug: skia:6721 Change-Id: I80a4c9f2acc09c174497f625c50ed12a8bb76505 Reviewed-on: https://skia-review.googlesource.com/19547 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Add GrPrimitiveType::kLinesAdjacencyGravatar Chris Dalton2017-06-13
| | | | | | | | | | Converts GrPrimitiveType to an enum class and adds kLinesAdjacency. Bug: skia: Change-Id: I3b5e68acfb20476f6c6923968f5a4ac4f73ae12d Reviewed-on: https://skia-review.googlesource.com/19680 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Retract GrTexture*.h & GrRenderTarget*.h from other headersGravatar Robert Phillips2017-06-13
| | | | | | | | | This does push some additional work (& includes) into the .cpp files. Change-Id: I27c847e371802270d13594dcc22aae44039990bb Reviewed-on: https://skia-review.googlesource.com/19660 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Add GrPrimitiveType::kLinesAdjacency"Gravatar Ravi Mistry2017-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f7eb015083aba8942031145736251dd32094115d. Reason for revert: Looks like this is causing build failures: * https://chromium-swarm.appspot.com/task?id=36baaf4d376bbf10&refresh=10 * https://chromium-swarm.appspot.com/task?id=36baad1f17e93510&refresh=10 Original change's description: > Add GrPrimitiveType::kLinesAdjacency > > Converts GrPrimitiveType to an enum class and adds kLinesAdjacency. > > Bug: skia: > Change-Id: If57d26277182aac1375e8181211ddaf7ea6d1e0a > Reviewed-on: https://skia-review.googlesource.com/19581 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Chris Dalton <csmartdalton@google.com> TBR=bsalomon@google.com,csmartdalton@google.com Change-Id: I37a1c575123b357abd8b9af9eea8871fe199f44b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/19661 Reviewed-by: Ravi Mistry <rmistry@google.com> Commit-Queue: Ravi Mistry <rmistry@google.com>
* Add GrPrimitiveType::kLinesAdjacencyGravatar Chris Dalton2017-06-13
| | | | | | | | | | Converts GrPrimitiveType to an enum class and adds kLinesAdjacency. Bug: skia: Change-Id: If57d26277182aac1375e8181211ddaf7ea6d1e0a Reviewed-on: https://skia-review.googlesource.com/19581 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Move Flags from GrRenderTarget to GrTypesPriv.h & renameGravatar Robert Phillips2017-06-13
| | | | | | | | | The motivation for this is to prevent GrRenderTarget.h appearing in GrRenderTargetProxy.h Change-Id: I4ef126972c0780cbacb35fa2aa6290777c66eddf Reviewed-on: https://skia-review.googlesource.com/19521 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Revert "Expand partial render target write pixels workaround.""Gravatar Brian Salomon2017-06-12
| | | | | | | | | | | New version limits the workaround to unorm configs. This reverts commit fdd117025fb846771e9e47cbf825d9071745fa98. Change-Id: I47a08a0ea4cf1acd88ca3c1bf9922cf0a8d215cc Reviewed-on: https://skia-review.googlesource.com/19490 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Convert SkClassifyCubic to double precisionGravatar Chris Dalton2017-06-12
| | | | | | | | | | | | | Even though it's in homogeneous coordinates, we still get unfortunate artifacts if this math is not done in double precision. Prioritizing correctness for now; we can revisit in the future as the need for performance dictates. Bug: skia: Change-Id: If416ef6b70291f1454fcb9f7630d1108644ac2a5 Reviewed-on: https://skia-review.googlesource.com/19501 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* GrTessellator: fix two NaN issues.Gravatar Stephen White2017-06-12
| | | | | | | | | | | | | | | If a point in the path rounds to +inf/-inf, the intersection code can produce NaN, which is unsortable. Fix: ignore non-finite intersections. Quadratic interpolation can sometimes produce NaN, which will never satisfy the flatness criterion. Abort if any of the interpolated points are non-finite. Bug:732023 Change-Id: If5881796e589c75b8f74459f42d00918619713a2 Reviewed-on: https://skia-review.googlesource.com/19467 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Re-enable deferred proxies in ChromeGravatar Robert Phillips2017-06-12
| | | | | | | Change-Id: I6dad0c1d3ff9f81e13625988b00c3f844128d7e7 Reviewed-on: https://skia-review.googlesource.com/19446 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Remove GrTGpuResourceRef specializationsGravatar Robert Phillips2017-06-12
| | | | | | | | | This template is only used for GrBuffers now. Change-Id: Ia9e95576b01124657e64007231fbc0a83276e13f Reviewed-on: https://skia-review.googlesource.com/19484 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Modify Adreno 3xx workaround to toggle face culling rather than call glFlush.Gravatar Brian Salomon2017-06-12
| | | | | | | | | | | | This fixes some correctness issues introduced by the previous workaround in MSAA gm images. It hopefully improves performance regressions introduced in MSAA benchmarks from calling glFlush. A comment on the workaround is updated to indicate that the original line-drop-out bug was seen on the N5 running driver 127.0. It simply showed up in different GMs that on the N7 running 127.0 Bug: skia:6755 Change-Id: Ief066fd9b223c043a80e7fe07ff13aac07a48970 Reviewed-on: https://skia-review.googlesource.com/19481 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Init fDevKLMMatrix in GrGLCubicEffect (possible valgrind fix)Gravatar Robert Phillips2017-06-12
| | | | | | | | | TBR=bsalomon@google.com Change-Id: I97357291d6d4098caecc9ac37348c9b9436ce11b Reviewed-on: https://skia-review.googlesource.com/19442 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Fix GrGradientEffect::isValid()Gravatar Brian Salomon2017-06-09
| | | | | | | | | | This was relying on TextureSampler::proxy() which crashes if the proxy is not valid. Bug: skia: Change-Id: I8452f5cea3a71b5ced15259aede52a44ab152cf2 Reviewed-on: https://skia-review.googlesource.com/19403 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* replace 4f procs with pipeline (only called in 2 places by ganesh)Gravatar Mike Reed2017-06-09
| | | | | | | | | | | enables lots of code to delete CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Bug: skia: Change-Id: I13631ead68a9232bd8c13c5ef54727f44def26ca Reviewed-on: https://skia-review.googlesource.com/19278 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Fix loopIndex in chopCubicAtLoopIntersectionGravatar Chris Dalton2017-06-09
| | | | | | | | | | | A recent change broke the case where the entire bezier is inside the loop segment. Bug: skia:4410 Change-Id: Ib534d459eaa4461d6760e894a8826e3019584ee8 Reviewed-on: https://skia-review.googlesource.com/19333 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Retract GrTexture.h a bitGravatar Robert Phillips2017-06-09
| | | | | | | | | This began as cleaning up SkSpecialImage.h & spiraled out of control from there. Change-Id: I9a570ecd2a7af9ee724ebfebe4e9185748f38bbc Reviewed-on: https://skia-review.googlesource.com/19290 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* GrTessellator: fix logging; fix test comment.Gravatar Stephen White2017-06-09
| | | | | | | Change-Id: Iaded9025a1518d8c69dbe366deb1035e0bd4295b Reviewed-on: https://skia-review.googlesource.com/19289 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Add tonal color support for shadows.Gravatar Jim Van Verth2017-06-09
| | | | | | | | Bug: skia: Change-Id: Ib9bd9083da1d8a9fa90ae7c710386e6903541fd5 Reviewed-on: https://skia-review.googlesource.com/18148 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Improve cubic KLM accuracyGravatar Chris Dalton2017-06-09
| | | | | | | | | | | | | | | | | | | | | | Moves cubic root finding logic out of GrPathUtils and PathOpsCubicIntersectionTest, and unifies it in SkGeometry. "Normalizes" the homogeneous parameter values of the roots, rather than the cubic inflection function. Does this normalization by twiddling the exponents instead of division (which causes a loss of precision). Abandons the built-in derivatives in GrCubicEffect. These don't have high enough precision on many mobile gpus. Instead we pass the KLM matrix to the vertex shader via uniform, where we can use it to set up new linear functionals from which the fragment shader can calculate the gradient of the implicit function. Bug: skia:4410 Change-Id: Ibd64e999520adc8cdef7803a492d3699995aef5a Reviewed-on: https://skia-review.googlesource.com/19017 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Revert "Handle too many (or too large) paths in GrDefaultPathRenderer"Gravatar Brian Osman2017-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit eb86b7094755a5fc1e49d22b4c5323f372344d61. Reason for revert: May be responsible for Command Buffer failure? Original change's description: > Handle too many (or too large) paths in GrDefaultPathRenderer > > PathGeoBuilder constructs the geometry with the same basic > technique as before, but allows interrupting the process > to emit multiple draws. > > Original test case was 2000 non-AA stroked circles, which > created ~66000 vertices. That now renders, as do various > tests with a single large path (as well as filled paths). > > TODO: I think that this could be extracted and re-used for > MSAA path renderer without too much work? I need to read > that code more carefully to make sure it lines up. > > Re-land of: https://skia-review.googlesource.com/18360 > > Bug: skia:6695 > Change-Id: Ibdedeb0ea2570a8847ba42328588bd7203411573 > Reviewed-on: https://skia-review.googlesource.com/18983 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Osman <brianosman@google.com> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6695 Change-Id: I2cb010db502c315b3e2f7212818aea5503ecb28c Reviewed-on: https://skia-review.googlesource.com/19270 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Handle too many (or too large) paths in GrDefaultPathRendererGravatar Brian Osman2017-06-09
| | | | | | | | | | | | | | | | | | | | | | PathGeoBuilder constructs the geometry with the same basic technique as before, but allows interrupting the process to emit multiple draws. Original test case was 2000 non-AA stroked circles, which created ~66000 vertices. That now renders, as do various tests with a single large path (as well as filled paths). TODO: I think that this could be extracted and re-used for MSAA path renderer without too much work? I need to read that code more carefully to make sure it lines up. Re-land of: https://skia-review.googlesource.com/18360 Bug: skia:6695 Change-Id: Ibdedeb0ea2570a8847ba42328588bd7203411573 Reviewed-on: https://skia-review.googlesource.com/18983 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add flush before drawing lines workaround for Adreno 3xxGravatar Brian Salomon2017-06-08
| | | | | | | | Bug: skia:6309 Change-Id: I354c678ca4e833c523a89b3196804fbe1adcf9d1 Reviewed-on: https://skia-review.googlesource.com/19087 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Use nextafter rather than std::nextafter, it's more widely availableGravatar Mostyn Bramley-Moore2017-06-08
| | | | | | | | Bug: skia: Change-Id: Idffe99cde348af83ae4290614c44767fffe36609 Reviewed-on: https://skia-review.googlesource.com/19120 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Don't reuse failed buffers as scratchGravatar Robert Phillips2017-06-08
| | | | | | | | | This is/was occurring for ANGLE D3D configs Change-Id: I45d4c40143ce4ac4989612c7bfe7aefd178842da Reviewed-on: https://skia-review.googlesource.com/19076 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add support for SkImageGenerator creating external texturesGravatar Stan Iliev2017-06-08
| | | | | | | | | | | Copy the SkImageGenerator texture if tiling is needed and original texture target is GR_GL_TEXTURE_EXTERNAL. Bug: skia: Change-Id: I98f5acc3883e2060b1a35f80633b02b08a706107 Reviewed-on: https://skia-review.googlesource.com/18268 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stan Iliev <stani@google.com>
* GrTessellator: fix intersection above the first vertex.Gravatar Stephen White2017-06-08
| | | | | | | | | | | | | | | | | | | | Handle the case where the an intersection falls not only above both edge endpoints, but above the first vertex in the mesh. This requires passing the mesh into check_for_intersection(), in order to modify the head. We also need to rewind the mesh after insertion, since we need to rewind to the newly-inserted vertex. This also cleans up vertex ID computation a little (for logging), so that vertices before the first vertex or after the last have a reasonable ID. It also cleans up the intersection-on-endpoint special cases by refactoring the calls to split_edge(). BUG=730687 Change-Id: Idea736eca7b7c3c5d8a470b1373a16ad8e649e80 Reviewed-on: https://skia-review.googlesource.com/19069 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Fix LCD distance field text color filteringGravatar Jim Van Verth2017-06-08
| | | | | | | | | | | Distance field text was applying the color filter to determine any gamma adjustments, but not any effects of the shader as well. Bug: skia:6669 Change-Id: I73384f68141fb523ea2058e00d0a9fbb2fbc622b Reviewed-on: https://skia-review.googlesource.com/19049 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Disable buffer mapping on Galaxy J5Gravatar Brian Salomon2017-06-08
| | | | | | | | Bug: skia:6309 Change-Id: Ieaf5bbc36c7fa7dee0cc07b480046bb0f190b138 Reviewed-on: https://skia-review.googlesource.com/19053 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* eliminate GPU line snappingGravatar Ethan Nicholas2017-06-08
| | | | | | | | Bug: skia:4474 Change-Id: I8dd1d9bc49365c554b27a4c50bafa3d518391d9f Reviewed-on: https://skia-review.googlesource.com/19047 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* remove unused xfermode methodsGravatar Mike Reed2017-06-08
| | | | | | | Bug: skia: Change-Id: Ib0dfa7bbf3d4e73aab355df4d5f5e2a53f653809 Reviewed-on: https://skia-review.googlesource.com/19035 Reviewed-by: Mike Reed <reed@google.com>
* Introduce dynamic pipeline stateGravatar Chris Dalton2017-06-07
| | | | | | | | | | | | | | Adds a DynamicState struct to GrPipeline that has a field for the scissor rect. Eventually this should become the only way to specify a scissor rectangle and may grow to contain more fields. Adds an array of DynamicStates to GrGpuCommandBuffer::draw and implements support in GL and Vulkan. Bug: skia: Change-Id: If5aebbf9da5d192acf7e68e7def4674ffc7ec310 Reviewed-on: https://skia-review.googlesource.com/18510 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Suppress rendererability of kAlpha8 GL_CHROMIUM_framebuffer_multisample for ↵Gravatar Robert Phillips2017-06-07
| | | | | | | | | | | | | ANGLE D3D9 For ANGLE D3D9 ES2 we're seeing GL_CHROMIUM_framebuffer_multisample but not GL_ANGLE_framebuffer_multisample. The same occurs for ANGLE D3D11 ES2 but kAlpha8 is renderable in that case. Bug: 730082 Change-Id: I7eda844b0ad48150d19406517d1dfbe453e9e478 Reviewed-on: https://skia-review.googlesource.com/18980 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Handle too many (or too large) paths in GrDefaultPathRenderer"Gravatar Brian Osman2017-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6383b298489504d7f8f822d7da575b04b14a9737. Reason for revert: Test failures Original change's description: > Handle too many (or too large) paths in GrDefaultPathRenderer > > PathGeoBuilder constructs the geometry with the same basic > technique as before, but allows interrupting the process > to emit multiple draws. > > Original test case was 2000 non-AA stroked circles, which > created ~66000 vertices. That now renders, as do various > tests with a single large path (as well as filled paths). > > TODO: I think that this could be extracted and re-used for > MSAA path renderer without too much work? I need to read > that code more carefully to make sure it lines up. > > Bug: skia:6695 > Change-Id: I18983ba3d4f475ae0651946958b4911008aa623f > Reviewed-on: https://skia-review.googlesource.com/18360 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Osman <brianosman@google.com> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6695 Change-Id: I78ce9879a2e45e19f53027ca506cc2e8fae664b3 Reviewed-on: https://skia-review.googlesource.com/18981 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Handle too many (or too large) paths in GrDefaultPathRendererGravatar Brian Osman2017-06-07
| | | | | | | | | | | | | | | | | | | | PathGeoBuilder constructs the geometry with the same basic technique as before, but allows interrupting the process to emit multiple draws. Original test case was 2000 non-AA stroked circles, which created ~66000 vertices. That now renders, as do various tests with a single large path (as well as filled paths). TODO: I think that this could be extracted and re-used for MSAA path renderer without too much work? I need to read that code more carefully to make sure it lines up. Bug: skia:6695 Change-Id: I18983ba3d4f475ae0651946958b4911008aa623f Reviewed-on: https://skia-review.googlesource.com/18360 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Limit Adreno 4xx stencil clear workaround to older driversGravatar Brian Salomon2017-06-07
| | | | | | | | Bug: skia:5587 Change-Id: I00f377c06228deb9053b1cf7d9f413e0bf2fb490 Reviewed-on: https://skia-review.googlesource.com/18936 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* GrTessellator: implement out-of-range splitting and AEL rewinding.Gravatar Stephen White2017-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to floating point inaccuracy, when intersecting edges, the intersection point may fall above one of the edges' top vertices or below one of the bottom vertices. In these cases, we were simply splitting one edge on the relevant endpoint of the other edge. This is incorrect if the intersection is far from the endpoint (e.g., the test case in the linked bug, where one of the intersected edges is near-horizontal but the intersection falls below both of its endpoints, in the middle of the edge.) The correct solution is to split both edges as normal, and take care to produce edges with the correct ordering where the intersection is above or below an edge. However, since the new vertex may be above the current vertex, simply restarting intersection checks at the current vertex won't work. We need to process the intersection vertex before the current one. This introduces another problem: unlike all other splitting modes (which always shorten edges), splitting an edge above the top or below the bottom can lengthen it, causing it to violate the AEL with an adjacent edge which then shortens it back to the original point (in cleanup_active_edges()). Since the splitting and merging code can't agree, we loop forever. Instead of simply fusing neighboring edges in cleanup_active_edges(), the proper fix to this problem is to detect the AEL violation and rewind all processing to the vertex above it. For performance, we only rewind when we detect that a split edge is no longer ordered within the mesh (merge_enclosing_edges()) or within the the AEL (rewind_if_necessary()). We also store the enclosing edges of each vertex, which allows us to rewind quickly, since we know exactly which edges need to be added/removed from the AEL. cleanup_active_edges(), fix_active_state() and Vertex::fProcessed have been removed. In their place are rewind_active_edges() and rewind_if_necessary(), which uses the same logic as cleanup_active_edges() but uses it to know when to rewind. Bug: skia:5026 Change-Id: I3638a429f5428498d6df6bb7b98c67374dc291aa Reviewed-on: https://skia-review.googlesource.com/18900 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Revert "Revert "Workaround Adreno driver issue with stencil clears.""Gravatar Mike Klein2017-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8b06ed7c9f76760563ed3c46716e8e8f27ec2311. Reason for revert: try again. Original change's description: > Revert "Workaround Adreno driver issue with stencil clears." > > This reverts commit 4e8c581f2aa911bf49f97a246cc26134da292a8c. > > Reason for revert: breaks Google3 roll > > Original change's description: > > Workaround Adreno driver issue with stencil clears. > > > > This also removes the "debug wire rect" which was not used and not implemented for Vulkan. > > > > Also some declared but not implemented methods are removed from GrGLGpu. > > > > Bug: skia:5587 > > > > Change-Id: I750051e90e6cfbfad6a6fe20792226182f698bcf > > Reviewed-on: https://skia-review.googlesource.com/18639 > > Reviewed-by: Chris Dalton <csmartdalton@google.com> > > Commit-Queue: Brian Salomon <bsalomon@google.com> > > TBR=bsalomon@google.com,csmartdalton@google.com > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia:5587 > > Change-Id: I65aa16b3f8c70cdef56ff16e16304ba09604c475 > Reviewed-on: https://skia-review.googlesource.com/18924 > Reviewed-by: Mike Klein <mtklein@google.com> > Commit-Queue: Mike Klein <mtklein@google.com> TBR=mtklein@google.com,bsalomon@google.com,reviews@skia.org,csmartdalton@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:5587 Change-Id: Ice49027bda1c1ff7e0362d0680341ac862159850 Reviewed-on: https://skia-review.googlesource.com/18928 Reviewed-by: Mike Klein <mtklein@google.com>
* Revert "Workaround Adreno driver issue with stencil clears."Gravatar Mike Klein2017-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 4e8c581f2aa911bf49f97a246cc26134da292a8c. Reason for revert: breaks Google3 roll Original change's description: > Workaround Adreno driver issue with stencil clears. > > This also removes the "debug wire rect" which was not used and not implemented for Vulkan. > > Also some declared but not implemented methods are removed from GrGLGpu. > > Bug: skia:5587 > > Change-Id: I750051e90e6cfbfad6a6fe20792226182f698bcf > Reviewed-on: https://skia-review.googlesource.com/18639 > Reviewed-by: Chris Dalton <csmartdalton@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,csmartdalton@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:5587 Change-Id: I65aa16b3f8c70cdef56ff16e16304ba09604c475 Reviewed-on: https://skia-review.googlesource.com/18924 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Fix invalid assert in GrMesh::setIndexedGravatar Chris Dalton2017-06-06
| | | | | | | | | | | When drawing a single point it's valid for the first and last indices to be equal. Bug: skia:6728 Change-Id: Ice8cd89b306ed9564cdd9a77c557628662e18abb Reviewed-on: https://skia-review.googlesource.com/18904 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>