aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
* Revert of Revert of Change device creation to see the (optional) layer-paint ↵Gravatar reed2015-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #1 id:1 of https://codereview.chromium.org/1008863002/) Reason for revert: guard in chrome has landed Original issue's description: > Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/) > > Reason for revert: > need to have chrome opt-in for the older API before this can land (in chrome) > > Original issue's description: > > Change device creation to see the (optional) layer-paint > > > > Motivation: > > > > PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice. > > > > This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands. > > > > Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0 > > TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Committed: https://skia.googlesource.com/skia/+/0e040f7da2fdfeb49aa60d24117306e3b1e6ea90 TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1006923002
* Revert of Change device creation to see the (optional) layer-paint (patchset ↵Gravatar reed2015-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | #9 id:160001 of https://codereview.chromium.org/988413003/) Reason for revert: need to have chrome opt-in for the older API before this can land (in chrome) Original issue's description: > Change device creation to see the (optional) layer-paint > > Motivation: > > PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice. > > This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands. > > Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0 TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1008863002
* Change device creation to see the (optional) layer-paintGravatar reed2015-03-13
| | | | | | | | | | Motivation: PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice. This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands. Review URL: https://codereview.chromium.org/988413003
* Add terrible workaround to fix stencil clear crash on S3.Gravatar bsalomon2015-03-11
| | | | | | BUG=skia:3525 Review URL: https://codereview.chromium.org/1001693003
* Glyph positions maintain 32 bit integer part.Gravatar bungeman2015-03-11
| | | | | | | | | | | | | A glyph position when mapped from canvas space to device space may land outside the bounds of the current 16 bit integer part of device space. Device space is already limited to 32 bits for the integer part, but for a short space in drawText and drawPosText it is currently limited to 16 bits (SkFixed). Raise this limit by moving to 48.16. This matches the current similar fix for measureText. BUG=chromium:375322 Review URL: https://codereview.chromium.org/977623002
* Adjust atlas sizes to fix Mali400 precision issuesGravatar jvanverth2015-03-11
| | | | | | | | | | | | | | | | | | | The previous change to atlas sizes introduced an issue where texture coordinates for glyphs stored on the right side of the atlas were being computed in an imprecise manner on Mali400 chips. The only reasonable fix appears to be to use power-of-two texture sizes. This widens the glyph atlas to the next power of 2 (or 2048) for A8 glyphs only, and widens each GrPlot by 2x as well. By doing this, we can fit 3-4 large distance field glyphs into a single GrPlot, which gives us 100-128 total large glyphs at one time. The 565 and 8888 glyph atlases are kept in their original size to preserve space. BUG=skia:3523 Review URL: https://codereview.chromium.org/994303003
* Adjust distance field glyph and font atlas sizes to maximize storage.Gravatar jvanverth2015-03-10
| | | | | | | | | | | | | | | | Because of high DPI devices, we need more room in the glyph atlas for the larger glyphs. These settings will allow 4 of the distance field glyphs to fit in one Plot (increasing the storage from 32 large glyphs to 128), and still permit us to handle glyphs up to a 312 point size. BUG=chromium:458791 Committed: https://skia.googlesource.com/skia/+/d2737ad7dd8f4ea94a74034027014fd3d78923cb Committed: https://skia.googlesource.com/skia/+/07e245ffe1ca7f781590fcff904c2922c2269781 Review URL: https://codereview.chromium.org/986343002
* Revert of Adjust distance field glyph and font atlas sizes to maximize ↵Gravatar jvanverth2015-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | storage. (patchset #8 id:140001 of https://codereview.chromium.org/986343002/) Reason for revert: Still seeing bad text rendering in GMs with Nexus 2 and Nexus 3. Original issue's description: > Adjust distance field glyph and font atlas sizes to maximize storage. > > Because of high DPI devices, we need more room in the glyph > atlas for the larger glyphs. These settings will allow 4 of > the distance field glyphs to fit in one Plot (increasing > the storage from 32 large glyphs to 128), and still permit > us to handle glyphs up to a 312 point size. > > BUG=chromium:458791 > > Committed: https://skia.googlesource.com/skia/+/d2737ad7dd8f4ea94a74034027014fd3d78923cb > > Committed: https://skia.googlesource.com/skia/+/07e245ffe1ca7f781590fcff904c2922c2269781 TBR=joshualitt@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:458791 Review URL: https://codereview.chromium.org/995863002
* Adjust distance field glyph and font atlas sizes to maximize storage.Gravatar jvanverth2015-03-10
| | | | | | | | | | | | | | Because of high DPI devices, we need more room in the glyph atlas for the larger glyphs. These settings will allow 4 of the distance field glyphs to fit in one Plot (increasing the storage from 32 large glyphs to 128), and still permit us to handle glyphs up to a 312 point size. BUG=chromium:458791 Committed: https://skia.googlesource.com/skia/+/d2737ad7dd8f4ea94a74034027014fd3d78923cb Review URL: https://codereview.chromium.org/986343002
* Increase maximum gpu resources from 1024 to 4096Gravatar kkinnunen2015-03-09
| | | | | | | | | | | Pictures with many drawn paths benefit from the increase of the count. As an example, chalkboard testcase has ~2500 paths, tiger has ~300. Bigger objects, like textures, tend to be limited by the cache byte limit, not item count. Review URL: https://codereview.chromium.org/991783003
* Revert of Adjust distance field glyph and font atlas sizes to maximize ↵Gravatar jvanverth2015-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | storage. (patchset #5 id:80001 of https://codereview.chromium.org/986343002/) Reason for revert: There's some weirdness with Tegra2 and Tegra3 GMs (Xoom and Nexus7) that may be related to this. Original issue's description: > Adjust distance field glyph and font atlas sizes to maximize storage. > > Because of high DPI devices, we need more room in the glyph > atlas for the larger glyphs. These settings will allow 4 of > the distance field glyphs to fit in one Plot (increasing > the storage from 32 large glyphs to 128), and still permit > us to handle glyphs up to a 312 point size. > > BUG=chromium:458791 > > Committed: https://skia.googlesource.com/skia/+/d2737ad7dd8f4ea94a74034027014fd3d78923cb TBR=joshualitt@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:458791 Review URL: https://codereview.chromium.org/986333005
* Use global GrMemoryPools protected by mutex for GrProcessor/GrBatchGravatar bsalomon2015-03-09
| | | | | | BUG=chromium:464892 Review URL: https://codereview.chromium.org/991943002
* Adjust distance field glyph and font atlas sizes to maximize storage.Gravatar jvanverth2015-03-09
| | | | | | | | | | | | Because of high DPI devices, we need more room in the glyph atlas for the larger glyphs. These settings will allow 4 of the distance field glyphs to fit in one Plot (increasing the storage from 32 large glyphs to 128), and still permit us to handle glyphs up to a 312 point size. BUG=chromium:458791 Review URL: https://codereview.chromium.org/986343002
* Clip scissor to RT boundsGravatar bsalomon2015-03-06
| | | | | | | | R=joshualitt@google.com NOTREECHECKS=true Review URL: https://codereview.chromium.org/985783002
* Remove rect clip type from grclip.Gravatar bsalomon2015-03-06
| | | | | | | | R=joshualitt@google.com BUG=skia: NOTREECHECKS=true Review URL: https://codereview.chromium.org/989443003
* Fix rect clipsGravatar bsalomon2015-03-06
| | | | | | R=joshualitt@google.com Review URL: https://codereview.chromium.org/987653004
* Adding linear interpolation to rgb->yuv conversionGravatar sugoi2015-03-06
| | | | | | | | | | When the UV planes are smaller than the Y plane, doing the upscaling in nearest mode was creating artefacts, so I changed it to use linear interpolation to fix the issue. BUG=460380 Committed: https://skia.googlesource.com/skia/+/cd9d42c5167a50f1bf20e969343556d61354171b Review URL: https://codereview.chromium.org/973563002
* Revert "Don't require AA in order to use shader-based clips"Gravatar bsalomon2015-03-05
| | | | | | | | This reverts commit 259656779334689ab1624ec4e2e234b35fe4024b. TBR=robertphillips@google.com Review URL: https://codereview.chromium.org/981723009
* handle null vertex or index buffers in batchGravatar joshualitt2015-03-05
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/979343002
* Add flag to force gpu trace markers to be used and printed out for debugging.Gravatar egdaniel2015-03-05
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/976413002
* Update gpu trace marker system for MultiDrawBuffer worldGravatar robertphillips2015-03-05
| | | | | | The main thrust of this CL is to remove the currCmdMarker variable from GrTargetCommands::flush. In a MultiDrawBuffer world the Cmds need not be execute in the order of their issuance. Review URL: https://codereview.chromium.org/978363002
* Fix GPU trace marker bugGravatar robertphillips2015-03-05
| | | | | | Without this patch the GPU trace markers can be potentially unbalanced when batching occurs. Review URL: https://codereview.chromium.org/981973002
* Batchify the tessellated path renderer.Gravatar senorblanco2015-03-05
| | | | Review URL: https://codereview.chromium.org/976103002
* Improve tracking of bound FBOs in GrGLGpu.Gravatar bsalomon2015-03-04
| | | | | | | | | | Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0 Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589 Committed: https://skia.googlesource.com/skia/+/0b70b86a7e9fda52ee7ebc1b9897eeaa09b9abef Review URL: https://codereview.chromium.org/949263002
* skia: Add tracing for skia's budgetGravatar hendrikw2015-03-04
| | | | | | | | We've run into several places where GPU rasterization slows down a lot, and in some cases, it's due to use reaching skia's budget. This shows a graph of skia's used and free budgeted memory. Review URL: https://codereview.chromium.org/977143002
* Revert of Adding linear interpolation to rgb->yuv conversion (patchset #1 ↵Gravatar joshualitt2015-03-04
| | | | | | | | | | | | | | | | | | | | | | | | id:1 of https://codereview.chromium.org/973563002/) Reason for revert: Speculative revert to see if this unblocks the deps roll Original issue's description: > Adding linear interpolation to rgb->yuv conversion > > When the UV planes are smaller than the Y plane, doing the upscaling in nearest mode was creating artefacts, so I changed it to use linear interpolation to fix the issue. > > BUG=460380 > > Committed: https://skia.googlesource.com/skia/+/cd9d42c5167a50f1bf20e969343556d61354171b TBR=bsalomon@google.com,scroggo@google.com,reed@google.com,sugoi@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=460380 Review URL: https://codereview.chromium.org/977133002
* Fix uninitialized variable in GrGpuGravatar hendrikw2015-03-04
| | | | | | Stumbled on this while running a trace. Review URL: https://codereview.chromium.org/975993002
* Adding linear interpolation to rgb->yuv conversionGravatar sugoi2015-03-03
| | | | | | | | When the UV planes are smaller than the Y plane, doing the upscaling in nearest mode was creating artefacts, so I changed it to use linear interpolation to fix the issue. BUG=460380 Review URL: https://codereview.chromium.org/973563002
* Split GrTargetCommands into its own filesGravatar robertphillips2015-03-03
| | | | Review URL: https://codereview.chromium.org/979493002
* Split command holding object (GrTargetCommands) out of GrInOrderDrawBufferGravatar robertphillips2015-03-03
| | | | | | | | This is still a bit odd in that the IoDB and TargetCommands are annoyingly interwoven. This should improve a bit when batching is everywhere. Joshua - I think you're lead on this. Review URL: https://codereview.chromium.org/973853002
* change colorfilter to return an array of frag processorsGravatar reed2015-03-03
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/973593002
* valgrind fixGravatar joshualitt2015-03-02
| | | | | | | TBR= BUG=skia: Review URL: https://codereview.chromium.org/968873006
* small bug fix for batch assertsGravatar joshualitt2015-03-02
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/969043002
* Minor cleanup of GrInOrderDrawBufferGravatar robertphillips2015-03-02
| | | | Review URL: https://codereview.chromium.org/969813003
* Fix for out-of-bounds intersection (found by fuzzer).Gravatar senorblanco2015-03-02
| | | | | | | | | | | | | | | Sometimes, the intersection returned by check_intersection() is out-of-bounds for both edges (above both tops or below both bottoms) due to floating-point inaccuracy. This causes split_edge() to create a tiny negative-length edge on one side (which would then assert). Although we could safely remove this assert and allow the negative length edge to be removed, it's faster/safer to simply avoid its creation in the first place by adjusting one edge to the other edge's endpoint. Added a new unit test to exercise this case. Review URL: https://codereview.chromium.org/968993002
* Increase GrInOrderDrawBuffer's encapsulation of trace markersGravatar robertphillips2015-03-02
| | | | | | | Greg - I think this is mainly you Joshua - I did make a small batching change in onDrawBatch Review URL: https://codereview.chromium.org/963183002
* Revert of Improve tracking of bound FBOs in GrGLGpu. (patchset #10 id:180001 ↵Gravatar robertphillips2015-03-01
| | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/949263002/) Reason for revert: Experimentally reverting to see if this is the cause of the mac_chromium_rel_ng roll-blocking failures. Original issue's description: > Improve tracking of bound FBOs in GrGLGpu. > > Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0 > > Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589 > > Committed: https://skia.googlesource.com/skia/+/0b70b86a7e9fda52ee7ebc1b9897eeaa09b9abef TBR=egdaniel@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/970613003
* Improve tracking of bound FBOs in GrGLGpu.Gravatar bsalomon2015-02-27
| | | | | | | | Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0 Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589 Review URL: https://codereview.chromium.org/949263002
* Revert of Improve tracking of bound FBOs in GrGLGpu. (patchset #8 id:140001 ↵Gravatar bsalomon2015-02-27
| | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/949263002/) Reason for revert: breaking things Original issue's description: > Improve tracking of bound FBOs in GrGLGpu. > > Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0 > > Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589 TBR=egdaniel@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/963973002
* Improve tracking of bound FBOs in GrGLGpu.Gravatar bsalomon2015-02-27
| | | | | | Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0 Review URL: https://codereview.chromium.org/949263002
* nexus 9 fixGravatar joshualitt2015-02-27
| | | | | | | TBR= BUG=skia: Review URL: https://codereview.chromium.org/966773004
* Dash batchGravatar joshualitt2015-02-27
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/925673002
* Context batchesGravatar joshualitt2015-02-27
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/913253003
* Decrease GrInOrderDrawBuffer::Cmd's reliance on GrInOrderDrawBufferGravatar robertphillips2015-02-27
| | | | Review URL: https://codereview.chromium.org/940533003
* Initialize three locals to avoid the risk of uninitialized reads.Gravatar brucedawson2015-02-26
| | | | | | | | | | | | | | | | | | | | /analyze recently reported two new warnings about reading from potentially uninitialized local variables: src\third_party\skia\src\gpu\grclipmaskmanager.cpp(290) : warning C6001: Using uninitialized memory 'requiresAA'. src\third_party\skia\src\gpu\grclipmaskmanager.cpp(336) : warning C6001: Using uninitialized memory 'genID'. It is not clear whether the uninitialized reads can actually happen, but the guarantees seem sufficiently non-obvious that the prudent thing to do to guarantee future stability is to initialized them -- it's cheap. I also initialized initialState because it seemed to fall in the same class, despite there being no warning for it. BUG=427616 Review URL: https://codereview.chromium.org/957133002
* Cleanup in GrPipelineBuilderGravatar bsalomon2015-02-26
| | | | Review URL: https://codereview.chromium.org/956363003
* Revert of Improve tracking of bound FBOs in GrGLGpu. (patchset #6 id:100001 ↵Gravatar bsalomon2015-02-26
| | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/949263002/) Reason for revert: breaking hd2000 windows bots Original issue's description: > Improve tracking of bound FBOs in GrGLGpu. > > Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0 TBR=egdaniel@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/964543002
* Some small code tidyingGravatar joshualitt2015-02-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/961813002
* Improve tracking of bound FBOs in GrGLGpu.Gravatar bsalomon2015-02-26
| | | | Review URL: https://codereview.chromium.org/949263002
* Win64 warning fix for GrTessellatingPathRenderer.Gravatar Stephen White2015-02-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/956293003