| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a new FBO type kStencil_MSFBOType that is selected whenever
NV_framebuffer_mixed_samples extension is available. In this new
FBO type a non-msaa color buffer is created with a multisampled
stencil buffer attachment.
Replaces numSamples() with separate numColorSamples and numStencilSamples
methods in RenderTarget.
In mixed samples mode non-MSAA codepaths are used to draw simple shapes,
while NVPR-rendered paths and text are rendered with a multisampled
stencil.
BUG=skia:3177
Review URL: https://codereview.chromium.org/1001503002
|
|
|
|
|
|
|
|
| |
This is mainly a mechanical CL. There were some fiddly bits in GrContext.cpp where it no longer had access to the GrDrawTarget (and had to use the new GrDrawContext).
I've converted GrAARectRenderer & GrOvalRenderer into static classes so I could stop allocating them.
Review URL: https://codereview.chromium.org/1151283004
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1135113005
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1155593002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cache lines and oval paths in their own cache domains. Skia has many
hard-to-replace codepaths that create volatile paths out of lines or
ovals.
Results for amd64:
desk_tigersvg.skp_1 3.06ms -> 3.07ms 1x
tabl_cnet.skp_1 2.3ms -> 2.3ms 1x
desk_baidu.skp_1 8.99ms -> 8.98ms 1x
desk_weather.skp_1 4.58ms -> 4.57ms 1x
desk_samoasvg.skp_1 12.3ms -> 12.3ms 1x
tabl_gamedeksiam.skp_1 15.8ms -> 15.7ms 1x
desk_chalkboard.skp_1 14.9ms -> 14.9ms 1x
desk_mapsvg.skp_1 6.57ms -> 6.54ms 1x
desk_wordpress.skp_1 2.2ms -> 2.19ms 1x
tabl_slashdot.skp_1 6.91ms -> 6.84ms 0.99x
desk_linkedin.skp_1 7.7ms -> 7.58ms 0.98x
desk_googlespreadsheet.skp_1 58.7ms -> 57.7ms 0.98x
tabl_ukwsj.skp_1 7.67ms -> 7.53ms 0.98x
tabl_engadget.skp_1 4.71ms -> 4.61ms 0.98x
desk_carsvg.skp_1 116ms -> 114ms 0.98x
tabl_nytimes.skp_1 3.71ms -> 3.61ms 0.97x
desk_googlespreadsheetdashed.skp_1 25.8ms -> 24.9ms 0.97x
tabl_hsfi.skp_1 5.3ms -> 5.1ms 0.96x
tabl_techmeme.skp_1 2.9ms -> 2.8ms 0.96x
tabl_cnn.skp_1 6.88ms -> 6.62ms 0.96x
desk_espn.skp_1 9.12ms -> 8.64ms 0.95x
desk_gws.skp_1 5.15ms -> 4.88ms 0.95x
tabl_gspro.skp_1 4.48ms -> 4.2ms 0.94x
desk_yahooanswers.skp_1 6.84ms -> 6.3ms 0.92x
tabl_pravda.skp_1 11.1ms -> 10.1ms 0.91x
tabl_sahadan.skp_1 11.8ms -> 10.7ms 0.91x
desk_wowwiki.skp_1 8.48ms -> 7.58ms 0.89x
tabl_googleblog.skp_1 6ms -> 5.34ms 0.89x
tabl_worldjournal.skp_1 6.08ms -> 5.35ms 0.88x
desk_booking.skp_1 15.3ms -> 13.4ms 0.88x
tabl_androidpolice.skp_1 15.5ms -> 13.5ms 0.87x
desk_twitter.skp_1 12.2ms -> 10.6ms 0.87x
tabl_nofolo.skp_1 5.49ms -> 4.76ms 0.87x
desk_mobilenews.skp_1 22ms -> 18.9ms 0.86x
desk_forecastio.skp_1 9.47ms -> 8.05ms 0.85x
tabl_culturalsolutions.skp_1 6.21ms -> 5.28ms 0.85x
desk_youtube.skp_1 16.1ms -> 13.5ms 0.84x
tabl_mlb.skp_1 9.75ms -> 8.01ms 0.82x
tabl_digg.skp_1 5.2ms -> 4.22ms 0.81x
desk_blogger.skp_1 10.2ms -> 8.24ms 0.81x
desk_gmailthread.skp_1 26.8ms -> 21.6ms 0.81x
desk_googleplus.skp_1 10.5ms -> 8.39ms 0.8x
tabl_frantzen.skp_1 4.55ms -> 3.58ms 0.79x
desk_pinterest.skp_1 8.85ms -> 6.88ms 0.78x
desk_ebay.skp_1 10.5ms -> 8.15ms 0.77x
tabl_transformice.skp_1 4.93ms -> 3.5ms 0.71x
Results for arm_v7_neon:
desk_samoasvg.skp_1 13.9ms -> 14.6ms 1.05x
desk_mapsvg.skp_1 8.31ms -> 8.75ms 1.05x
tabl_deviantart.skp_1 1.41ms -> 1.45ms 1.02x
desk_weather.skp_1 3.8ms -> 3.88ms 1.02x
desk_sfgate.skp_1 3.06ms -> 3.1ms 1.01x
desk_css3gradients.skp_1 2.78ms -> 2.79ms 1x
desk_espn.skp_1 6.52ms -> 6.43ms 0.99x
desk_gws.skp_1 4.16ms -> 4.09ms 0.98x
tabl_cnn.skp_1 4.66ms -> 4.58ms 0.98x
tabl_hsfi.skp_1 3.49ms -> 3.42ms 0.98x
tabl_cuteoverload.skp_1 2.41ms -> 2.35ms 0.98x
desk_yahooanswers.skp_1 5.28ms -> 5.14ms 0.97x
desk_carsvg.skp_1 90.8ms -> 87.9ms 0.97x
tabl_gspro.skp_1 2.81ms -> 2.71ms 0.96x
desk_wowwiki.skp_1 5.85ms -> 5.63ms 0.96x
tabl_pravda.skp_1 7.8ms -> 7.5ms 0.96x
desk_twitter.skp_1 8.14ms -> 7.8ms 0.96x
tabl_androidpolice.skp_1 10.4ms -> 9.96ms 0.96x
tabl_googleblog.skp_1 4.06ms -> 3.83ms 0.95x
desk_mobilenews.skp_1 15.2ms -> 14ms 0.93x
desk_booking.skp_1 9.89ms -> 9.08ms 0.92x
desk_forecastio.skp_1 6.16ms -> 5.65ms 0.92x
desk_blogger.skp_1 6.17ms -> 5.66ms 0.92x
tabl_digg.skp_1 3.73ms -> 3.41ms 0.91x
tabl_nofolo.skp_1 3.82ms -> 3.47ms 0.91x
tabl_worldjournal.skp_1 4.24ms -> 3.84ms 0.9x
desk_youtube.skp_1 10.5ms -> 9.39ms 0.9x
desk_googleplus.skp_1 7.01ms -> 6.19ms 0.88x
tabl_mlb.skp_1 5.91ms -> 5.22ms 0.88x
tabl_googlecalendar.skp_1 10.7ms -> 9.44ms 0.88x
desk_gmailthread.skp_1 19.2ms -> 16.8ms 0.88x
desk_ebay.skp_1 5.68ms -> 4.93ms 0.87x
desk_pinterest.skp_1 5.99ms -> 5.08ms 0.85x
desk_googlehome.skp_1 3.31ms -> 2.71ms 0.82x
tabl_transformice.skp_1 3.03ms -> 2.44ms 0.81x
desk_amazon.skp_1 6.05ms -> 4.84ms 0.8x
desk_facebook.skp_1 12.6ms -> 9.62ms 0.76x
Review URL: https://codereview.chromium.org/1120023005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improve caching of dashed paths in GrStencilAndCoverPathRenderer.
Look up the (NVPR specific) GrGLPath based on GrStrokeInfo and
the original path.
Use unique keys for all GrPaths.
Dash the path with Skia dash stroker and use that path geometry for
NVPR path.
NVPR internal dashing stroke is not used, because the dashing
implementation of NVPR does not match Skia implementation.
Review URL: https://codereview.chromium.org/1116123003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the code more readable by inheriting GrStrokeInfo from SkStrokeRec.
This should avoid the long .getStrokeRec() and .getStrokeRecPtr(). These
were a bit cumbersome especially in cases where an alias variable was
created for these, and then the reader had to keep track to which
StrokeInfo member the StrokeRec alias was pointing.
Removes SkStrokeRec::SkStrokeRec(const SkStrokeRec&). It was memcpying.
Try to play it safe wrt compiler using the possible padding of
superclass for subclass members. Instead, let the compiler generate
the copy constructor. Assignment operator was already
compiler-generated, so at least in that way this is consistent.
Renames GrStrokeInfo::applyDash to applyDashToPath for consistency
with superclass applyToPath.
Review URL: https://codereview.chromium.org/1128113008
|
|
|
|
|
|
| |
GrTextureProvider interface. The goal is to pass this narrowly focused object in places that currently take a GrContext but don't need and shouldn't use its other methods. It also has an extended private interface for interacting with non-texture resource types.
Review URL: https://codereview.chromium.org/1107973004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1116713002
|
|
|
|
|
|
|
|
|
| |
Move line dashing logic from GrContext::drawPath to
GrDashLinePathRenderer. This makes it possible to let path renderers render arbitrary dashed paths.
End goal is to implement dashing in GrStencilAndCoverPathRenderer.
Review URL: https://codereview.chromium.org/1100073003
|
|
|
|
| |
Review URL: https://codereview.chromium.org/938383004
|
|
|
|
| |
Review URL: https://codereview.chromium.org/940463006
|
|
|
|
| |
Review URL: https://codereview.chromium.org/858123002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/858343002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/815553003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/818233002
|
|
|
|
|
|
|
|
| |
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/c6bc58eded89b0c0a36b8e20e193c200f297a0da
Review URL: https://codereview.chromium.org/791743003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #9 id:160001 of https://codereview.chromium.org/791743003/)
Reason for revert:
breaks mac
Original issue's description:
> Remove GP from drawstate, revision of invariant output for GP
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c6bc58eded89b0c0a36b8e20e193c200f297a0da
TBR=bsalomon@google.com,egdaniel@google.com,joshualitt@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/794843002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/791743003
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/732693002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/687563008
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we have the GrPathRendering class, it doesn't make sense to
have a bunch of shims on on GrGpu. This updates the path rendering
clients to make calls directly on the GrPathRendering object.
BUG=skia:2939
R=bsalomon@google.com
Author: cdalton@nvidia.com
Review URL: https://codereview.chromium.org/578563002
|
|
|
|
|
|
|
|
| |
R=reed@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/544233002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
styles (https://codereview.chromium.org/183683010/)
R=bsalomon@google.com, reed@google.com, yunchao.he@intel.com
TBR=reed@google.com
NOTRY=True
Reason for revert:
broke unittests
Original issue's description:
> fix the error that path is inversed for stroke and strokeAndFill styles.
>
> However, because hairline stroke + fill = fill (see src/core/SkStrokeRec.cpp), strokeAndFill will be thought as fill style when paint.getStrokeWidth() <= 0, this edge case can be inverse-filled.
>
> BUG=skia:2222
>
> Committed: http://code.google.com/p/skia/source/detail?r=14561
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/269903002
git-svn-id: http://skia.googlecode.com/svn/trunk@14562 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
However, because hairline stroke + fill = fill (see src/core/SkStrokeRec.cpp), strokeAndFill will be thought as fill style when paint.getStrokeWidth() <= 0, this edge case can be inverse-filled.
BUG=skia:2222
R=bsalomon@google.com, reed@google.com
Author: yunchao.he@intel.com
Review URL: https://codereview.chromium.org/183683010
git-svn-id: http://skia.googlecode.com/svn/trunk@14561 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/142543007/
git-svn-id: http://skia.googlecode.com/svn/trunk@13409 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/23926019/
git-svn-id: http://skia.googlecode.com/svn/trunk@13384 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Creating paths for nv_path_rendering is costly. Try to reduce this
cost by caching paths based on the SkPath "hash" (i.e. SkPathRef
generation id) and stroke properties.
Adds the paths to GrContext::fTextureCache instance. Later this should
be renamed and the GrContext API should reflect the nature of the cache
better.
R=bsalomon@google.com, mtklein@google.com
Author: kkinnunen@nvidia.com
Review URL: https://codereview.chromium.org/26557003
git-svn-id: http://skia.googlecode.com/svn/trunk@12083 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initialize the path stroke properties in the GrGLPath constructor.
Use StencilStrokePath and CoverStrokePath to stroke the path.
The order of the GL calls is:
1. StencilFill, if needed
2. StencilStroke, if needed
2a. CoverStroke, if stroke was applied
2b. CoverFill, if stroke was not applied
The reason for not pairing StencilFill + CoverFill, StencilStroke +
CoverStroke is that Skia API does not allow separate fill and stroke
color within one call. Covering the stroke bounding box should also
cover the fill bounding box.
Causes different rendering in gm/dashcubics due to different rendering
algorithm. (?) (TODO: this should be resolved somehow.)
R=bsalomon@google.com, markkilgard@gmail.com, cdalton@nvidia.com
Author: kkinnunen@nvidia.com
Review URL: https://codereview.chromium.org/23440049
git-svn-id: http://skia.googlecode.com/svn/trunk@11672 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement filling a path with nv_path_rendering cover functionality.
The nv_path_rendering cover can be used if the fill is non-inverted
and the draw operation does not require use of vertex shaders.
Moves code for the inverted fill from GrStencilAndCoverPathRenderer
down to GrGpuGL.
R=bsalomon@google.com, markkilgard@gmail.com, cdalton@nvidia.com
Author: kkinnunen@nvidia.com
Review URL: https://codereview.chromium.org/22686002
git-svn-id: http://skia.googlecode.com/svn/trunk@11667 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
| |
R=bsalomon@google.com
Review URL: https://codereview.chromium.org/22850006
git-svn-id: http://skia.googlecode.com/svn/trunk@10789 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
|
|
| |
And remove the typedef in GrRect.h. The same with GrIRect.
R=robertphillips@google.com
Author: tfarina@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19449002
git-svn-id: http://skia.googlecode.com/svn/trunk@10130 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
| |
GrDrawState::AutoViewMatrixRestore::setIdentity(). s
R=robertphillips@google.com
Review URL: https://codereview.chromium.org/15780002
git-svn-id: http://skia.googlecode.com/svn/trunk@9331 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
| |
Pass caps to GrEffect::TestCreate() functions so that they can return effects that will work with the capabilities.
Review URL: https://codereview.chromium.org/12965018
git-svn-id: http://skia.googlecode.com/svn/trunk@8369 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
| |
Also rename GrDrawTarget::getCaps() -> GrDrawTarget::caps().
Review URL: https://codereview.chromium.org/12843026
git-svn-id: http://skia.googlecode.com/svn/trunk@8364 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Moved the SkStrokeRec class in its own file
- Replaced SkStroke by SkStrokeRec in Ganesh
- Moved path stroking to the Ganesh level in some cases (everytime it isn't required to do it directly in SkGpuDevice). PathEffect and MaskFilter still require path stroking at the SkGpuDevice for now.
- Renamed static functions in SkPath with proper names
* No functionality shold have changed with this patch. This is a step towards enabling Ganesh Path Renderers to decide whether or not to stroke the path rather than always receiving the stroked path as an input argument.
BUG=chromium:135111
TEST=Try path rendering tests from the gm
Review URL: https://codereview.appspot.com/6946072
git-svn-id: http://skia.googlecode.com/svn/trunk@6861 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
| |
manager.
R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6904069
git-svn-id: http://skia.googlecode.com/svn/trunk@6741 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
| |
deprecating GrPathFill so that SkPath::FillType is used everywhere in order to remove some code duplication between Skia and Ganesh.
BUG=chromium:135111
TEST=Try path rendering tests from the gm
Review URL: https://codereview.appspot.com/6875058
git-svn-id: http://skia.googlecode.com/svn/trunk@6693 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
| |
Review URL: https://codereview.appspot.com/6814067
git-svn-id: http://skia.googlecode.com/svn/trunk@6247 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
| |
Review URL: https://codereview.appspot.com/6812064
git-svn-id: http://skia.googlecode.com/svn/trunk@6243 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
| |
R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6618065
git-svn-id: http://skia.googlecode.com/svn/trunk@5853 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
| |
Review URL: https://codereview.appspot.com/6615062
git-svn-id: http://skia.googlecode.com/svn/trunk@5852 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
| |
Review URL: https://codereview.appspot.com/6499044
git-svn-id: http://skia.googlecode.com/svn/trunk@5328 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
| |
Review URL: http://codereview.appspot.com/6422047/
git-svn-id: http://skia.googlecode.com/svn/trunk@4688 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
|
|
|
|
| |
TODO: unify with the placement new implementation in SkTemplatesPriv.h,
once various issues there are overcome. reed@ should be taking the lead
there.
http://codereview.appspot.com/6384043/
git-svn-id: http://skia.googlecode.com/svn/trunk@4492 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
|
|
|
|
|
|
| |
Review URL: http://codereview.appspot.com/6347050/
git-svn-id: http://skia.googlecode.com/svn/trunk@4403 2bbb7eff-a529-9590-31e7-b0007b416f81
|
|
issues to resolve, set gyp variable skia_nv_path_rendering=1 or build flag GR_GL_USE_NV_PATH_RENDERING to enable.
http://codereview.appspot.com/6349049/
git-svn-id: http://skia.googlecode.com/svn/trunk@4390 2bbb7eff-a529-9590-31e7-b0007b416f81
|