aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrDefaultGeoProcFactory.h
Commit message (Collapse)AuthorAge
* Include sRGB -> Linear in the cached "from sRGB" xformGravatar Brian Osman2018-06-15
| | | | | | | | | | | | | | | This simplifies the handling of paint color conversion, as well as GrDrawVerticesOp and the default geometry processor. We don't need to track "linearize" separate from the color space xform. We only supply an xform if needed. The linearize is now done automatically by the xform, though we aren't converting to destination gamma. https://skia-review.googlesource.com/c/skia/+/132090 will fix that. Change-Id: I0af3f29c123c3dadb818f87c5d295bc78e2ff079 Reviewed-on: https://skia-review.googlesource.com/135141 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* GR_TEST_UTILS fixesGravatar Brian Salomon2017-07-06
| | | | | | | | | | | | | | Fixes build of Skia lib when GR_TEST_UTILS=0 Makes GR_TEST_UTILS=0 for official builds Makes "Mini" builder bot exercise building GPU with is_official_build=true Bug: skia:6786 Change-Id: I6186683a3a216d2e779645bd9e8276a66bcff4d5 Reviewed-on: https://skia-review.googlesource.com/21524 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Do color correction of vertex colors in GPU drawVerticesGravatar Brian Osman2017-05-31
| | | | | | | | | | | SkColor vertex colors need to be linearized (from sRGB), and possibly converted from sRGB gamut to destination gamut. Bug: skia:6659 Change-Id: I2b1b1dd0fa5938519693f56a728fed5957f13fd5 Reviewed-on: https://skia-review.googlesource.com/17534 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Make SkGpuDevice::drawVertices perform color byte order swap and premul step ↵Gravatar Brian Salomon2017-01-30
| | | | | | | | | using vertex shader. Change-Id: I8153ba8c6bb48d8b15d524fbfafbe3c6d83f39c5 Reviewed-on: https://skia-review.googlesource.com/7727 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Removing tracking of whether GP/FP coverage calculations are used by XP.Gravatar Brian Salomon2017-01-04
| | | | | | | | | | | | | | | Remove readsCoverage from GrPipelineOptimizations Remove kNone from GrDefaultGeoProc::Coverage Remove kIgnoreCoverage from GrXferProcessor::OptFlags Remove GrPipeline::fIgnoresCoverage Change-Id: I8f0c9337ee98b9c77af1e9a8a184519ce63822d4 Reviewed-on: https://skia-review.googlesource.com/6552 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Misc batch->op cleanup Part 1 of 2Gravatar Brian Salomon2016-12-21
| | | | | | | Change-Id: I80f951976558a284e55386e0a368f08bd835d8ca Reviewed-on: https://skia-review.googlesource.com/6359 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Screenspace AA tessellated GPU path rendering.Gravatar senorblanco2016-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an approach to antialiased concave path rendering on the GPU without using MSAA. It uses GrTessellator to extract boundary contours from the given path, then inflates by half a pixel in screen space each direction, then renders the result with zero alpha on the outer contour and one alpha on in the inner contour. This requires two passes through the tessellation code: one to extract the boundaries, then one to tessellate the result. This gives approximately a 3X improvement on the IE chalkboard demo in non-MSAA mode, a 30-40% improvement on MotionMark's "Fill Paths", and a ~3X improvement on MotionMark's "canvas arcTo segments". It works best for large, simple paths, so there's currently a limit of 10 verbs in the onCanDrawPath() check. This dovetails nicely with the distance field path renderer's support for small, detailed (and cached) paths. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1152733009 NOTRY=true Review-Url: https://codereview.chromium.org/1152733009
* Revert of Screenspace AA tessellated path rendering. (patchset #37 id:730001 ↵Gravatar senorblanco2016-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1152733009/ ) Reason for revert: Causing asserts in GLPrograms test on Mac. Original issue's description: > Screenspace AA tessellated GPU path rendering. > > This is an approach to antialiased concave path rendering > on the GPU without using MSAA. It uses GrTessellator to > extract boundary contours from the given path, then > inflates by half a pixel in screen space each direction, > then renders the result with zero alpha on the outer > contour and one alpha on in the inner contour. This > requires two passes through the tessellation code: one > to extract the boundaries, then one to tessellate the > result. > > This gives approximately a 3X improvement on the IE > chalkboard demo in non-MSAA mode, a 30-40% improvement > on MotionMark's "Fill Paths", and a ~3X improvement on > MotionMark's "canvas arcTo segments". > > It works best for large, simple paths, so there's currently > a limit of 10 verbs in the onCanDrawPath() check. This > dovetails nicely with the distance field path renderer's > support for small, detailed (and cached) paths. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1152733009 > > Committed: https://skia.googlesource.com/skia/+/9992bdef8ae97b3e5b109d278ccfab84c66bcbf0 TBR=bsalomon@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/2299683002
* Screenspace AA tessellated GPU path rendering.Gravatar senorblanco2016-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is an approach to antialiased concave path rendering on the GPU without using MSAA. It uses GrTessellator to extract boundary contours from the given path, then inflates by half a pixel in screen space each direction, then renders the result with zero alpha on the outer contour and one alpha on in the inner contour. This requires two passes through the tessellation code: one to extract the boundaries, then one to tessellate the result. This gives approximately a 3X improvement on the IE chalkboard demo in non-MSAA mode, a 30-40% improvement on MotionMark's "Fill Paths", and a ~3X improvement on MotionMark's "canvas arcTo segments". It works best for large, simple paths, so there's currently a limit of 10 verbs in the onCanDrawPath() check. This dovetails nicely with the distance field path renderer's support for small, detailed (and cached) paths. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1152733009 Review-Url: https://codereview.chromium.org/1152733009
* sk_sp for Ganesh.Gravatar bungeman2016-06-09
| | | | | | | | | | Convert use of GrFragmentProcessor, GrGeometryProcessor, and GrXPFactory to sk_sp. This clarifies ownership and should reduce reference count churn by moving ownership. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2041113004 Review-Url: https://codereview.chromium.org/2041113004
* Simplify GrDrawBatch uploads and token uage.Gravatar bsalomon2016-04-01
| | | | | | | | | | | GrVertexBatch subclasses no longer need "initDraw". Simplifies GrTestBatch BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835283002 Review URL: https://codereview.chromium.org/1835283002
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* This CL wires up the backend portion necessary for sending transformed ↵Gravatar joshualitt2015-08-05
| | | | | | | | coords via vertex attributes. BUG=skia: Review URL: https://codereview.chromium.org/1243583002
* Use new API everywhere for GrDefaultGeoProcFactoryGravatar joshualitt2015-08-03
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/801823b3d825d96baadeb9077c5ed1a8ada05cf2 Review URL: https://codereview.chromium.org/1261083003
* Revert of Use new API everywhere for GrDefaultGeoProcFactory (patchset #5 ↵Gravatar joshualitt2015-08-03
| | | | | | | | | | | | | | | | | | | | | | id:80001 of https://codereview.chromium.org/1261083003/) Reason for revert: breaking things Original issue's description: > Use new API everywhere for GrDefaultGeoProcFactory > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/801823b3d825d96baadeb9077c5ed1a8ada05cf2 TBR=robertphillips@google.com,bsalomon@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1264283004
* Use new API everywhere for GrDefaultGeoProcFactoryGravatar joshualitt2015-08-03
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1261083003
* Change GrDefaultGeoProcFactory to a namespaceGravatar joshualitt2015-07-28
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1257333002
* Cleanup GrDefaultGeoProcFactory localCoordsGravatar joshualitt2015-07-28
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1257193002
* Cleanup Default Geo Proc APIGravatar joshualitt2015-07-27
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1253393002
* Makes GrPipelineInfo a class with query functions used by GrBatch subclasses.Gravatar bsalomon2015-07-08
| | | | | | Committed: https://skia.googlesource.com/skia/+/f5179a4c490bc787190321bd8ffdb0e6a4efa9ac Review URL: https://codereview.chromium.org/1213383005
* Revert of Rework GrPipelineInfo (patchset #7 id:120001 of ↵Gravatar bsalomon2015-07-08
| | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1213383005/) Reason for revert: breaking stuff! Original issue's description: > Makes GrPipelineInfo a class with query functions used by GrBatch subclasses. > > Committed: https://skia.googlesource.com/skia/+/f5179a4c490bc787190321bd8ffdb0e6a4efa9ac TBR=joshualitt@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1213013003
* Makes GrPipelineInfo a class with query functions used by GrBatch subclasses.Gravatar bsalomon2015-07-08
| | | | Review URL: https://codereview.chromium.org/1213383005
* Preliminary attempt to remove batch trackerGravatar joshualitt2015-05-19
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/cbfe91d82500f4ae8c3ff7bd74b3021a4b89fd84 Review URL: https://codereview.chromium.org/1139723004
* Revert of Preliminary attempt to remove batch tracker (patchset #3 id:40001 ↵Gravatar joshualitt2015-05-19
| | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1139723004/) Reason for revert: breaking bots Original issue's description: > Preliminary attempt to remove batch tracker > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/cbfe91d82500f4ae8c3ff7bd74b3021a4b89fd84 TBR=robertphillips@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1132323003
* Preliminary attempt to remove batch trackerGravatar joshualitt2015-05-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1139723004
* removing equality / compute invariant loops from GrGeometryProcessorsGravatar joshualitt2015-05-13
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/ef292a0901205b9785a30daae2c036aa34a970ca Review URL: https://codereview.chromium.org/1111603004
* Revert of removing equality / compute invariant loops from ↵Gravatar joshualitt2015-04-28
| | | | | | | | | | | | | | | | | | | | | | GrGeometryProcessors (patchset #2 id:20001 of https://codereview.chromium.org/1111603004/) Reason for revert: breaks gl programs Original issue's description: > removing equality / compute invariant loops from GrGeometryProcessors > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/ef292a0901205b9785a30daae2c036aa34a970ca TBR=bsalomon@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1110993002
* removing equality / compute invariant loops from GrGeometryProcessorsGravatar joshualitt2015-04-28
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1111603004
* Move ViewMatrix off of drawstateGravatar joshualitt2014-12-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/815553003
* This CL cleans up the last remaining users of localCoordChange on paintGravatar joshualitt2014-12-22
| | | | | | | NOTREECHECKS=True BUG=skia: Review URL: https://codereview.chromium.org/817853002
* Remove GP from drawstate, revision of invariant output for GPGravatar joshualitt2014-12-11
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/c6bc58eded89b0c0a36b8e20e193c200f297a0da Review URL: https://codereview.chromium.org/791743003
* This cl moves color and coverage off of drawstate. In an effort to keep ↵Gravatar joshualitt2014-12-09
| | | | | | | | | | this CL manageable, I have left the compute invariant input / output in a bit of a strange state(fixing this will be complicated). In addition, NVPR makes this very complicated, and I haven't quite figured out a good way to handle it, so for now color and coverage DO live on optstate, but I will figure out some way to refactor that in future CLs. BUG=skia: Review URL: https://codereview.chromium.org/783763002
* First step to moving vertex attributes to the geometryProcessorGravatar joshualitt2014-12-03
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/761563002
* Push creation of default GP to the callerGravatar joshualitt2014-11-14
| | | | | | | TBR= BUG=skia: Review URL: https://codereview.chromium.org/715903002
* Default geometry processorGravatar joshualitt2014-11-08
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/ff343074b2a3fdaa5f120600e28717e366bceadd Review URL: https://codereview.chromium.org/678953002
* Revert of Default geometry processor (patchset #9 id:160001 of ↵Gravatar joshualitt2014-11-07
| | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/678953002/) Reason for revert: breaks nexus 5 Original issue's description: > Default geometry processor > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/ff343074b2a3fdaa5f120600e28717e366bceadd TBR=bsalomon@google.com,joshualitt@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/691313003
* Default geometry processorGravatar joshualitt2014-11-07
BUG=skia: Review URL: https://codereview.chromium.org/678953002