aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
* Split distance vector into direction and magnitude componentsGravatar dvonbeck2016-08-08
| | | | | | | | | The vector was split because the vector's users need it split, and we were creating it from the split components in the first place, so it made sense to skip that step. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2223053002 Review-Url: https://codereview.chromium.org/2223053002
* Encapsulate GrReducedClip result in class membersGravatar csmartdalton2016-08-08
| | | | | | | | | | | Updates GrReducedClip to store its result in class members instead of various pointer arguments. This helps clean up calling code and will make it easier to reduce the clip higher in the stack. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222873002 Review-Url: https://codereview.chromium.org/2222873002
* Use sse4.2 CRC32 instructions to hash when available.Gravatar mtklein2016-08-08
| | | | | | | | | | | | About 9x faster than Murmur3 for long inputs. Most of this is a mechanical change from SkChecksum::Murmur3(...) to SkOpts::hash(...). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208903002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot Review-Url: https://codereview.chromium.org/2208903002
* Merge GrClipMaskManager into GrClipStackClipGravatar csmartdalton2016-08-05
| | | | | | | | TBR=bsalomon@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2196393007 Review-Url: https://codereview.chromium.org/2196393007
* Rename GrDrawingManager::drawContext to makeDrawContextGravatar robertphillips2016-08-05
| | | | | | | | This was violating our naming convention GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2216643002 Review-Url: https://codereview.chromium.org/2216643002
* Minor clean up related to blur mask filtersGravatar robertphillips2016-08-05
| | | | | | | | This is the non-substantive portion of: https://codereview.chromium.org/2201133002/ (Implement GPU occluded blur mask filter) GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214163003 Review-Url: https://codereview.chromium.org/2214163003
* Fix vulkan resolveGravatar egdaniel2016-08-05
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215353003 Review-Url: https://codereview.chromium.org/2215353003
* Remove color-dodge/burn from NVIDIA blacklist on 355.00+Gravatar csmartdalton2016-08-04
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212593002 Review-Url: https://codereview.chromium.org/2212593002
* Implement Vulkan Resolve.Gravatar egdaniel2016-08-04
| | | | | | | | | First step to getting msaa running on vulkan BUG=skia:5127 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2210383002 Review-Url: https://codereview.chromium.org/2210383002
* SkRTConf: eliminateGravatar halcanary2016-08-04
| | | | | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002 DOCS_PREVIEW= https://skia.org/?cl=2212473002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot [mtklein] TBR=reed@google.com Only removing unused public API. Review-Url: https://codereview.chromium.org/2212473002
* Remove SkSurface::MakeRenderTargetDirectGravatar robertphillips2016-08-04
| | | | | | | | | | | | | | | | | split into: https://codereview.chromium.org/2182543003/ (Move prepareForExternalIO from GrRenderTarget to GrDrawContext) https://codereview.chromium.org/2187573002/ (Reduce usage of MakeRenderTargetDirect) https://codereview.chromium.org/2186073002/ (Rename GrContext's newDrawContext & drawContext to makeDrawContext) https://codereview.chromium.org/2178353005/ (Remove use of MakeRenderTargetDirect from view system) https://codereview.chromium.org/2198433003/ (Remove some ancillary users of SkSurface::MakeRenderTargetDirect) https://codereview.chromium.org/2208483004/ (Remove GrRenderTarget member variable from SkGpuDevice) https://codereview.chromium.org/2211473002/ (Move GrContext::makeDrawContext to new GrContextPriv object) TBR=bsalomon@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2176333002 Review-Url: https://codereview.chromium.org/2176333002
* Remove GrRenderTarget member variable from SkGpuDeviceGravatar robertphillips2016-08-04
| | | | | | | | Split out of: https://codereview.chromium.org/2176333002/ (Remove SkSurface::MakeRenderTargetDirect) GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208483004 Review-Url: https://codereview.chromium.org/2208483004
* Revert of SkRTConf: reduce functionality to what we use, increase simplicity ↵Gravatar mtklein2016-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #8 id:150001 of https://codereview.chromium.org/2212473002/ ) Reason for revert: missed GrVkPipelineStateCache Original issue's description: > SkRTConf: reduce functionality to what we use, increase simplicity > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002 > DOCS_PREVIEW= https://skia.org/?cl=2212473002 > CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot > > [mtklein] > TBR=reed@google.com > Only removing unused public API. > > Committed: https://skia.googlesource.com/skia/+/ef59974708dade6fa72fb0218d4f8a9590175c47 TBR=halcanary@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2215433003
* SkRTConf: reduce functionality to what we use, increase simplicityGravatar halcanary2016-08-03
| | | | | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002 DOCS_PREVIEW= https://skia.org/?cl=2212473002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot [mtklein] TBR=reed@google.com Only removing unused public API. Review-Url: https://codereview.chromium.org/2212473002
* Move GrContext::makeDrawContext to new GrContextPriv objectGravatar robertphillips2016-08-03
| | | | | | | | | | | | | | We don't want external clients to be able to call the wrapping makeDrawContext. The "creating" makeDrawContext needs to be public for external image filters. The 3 specialized drawContext creators on GrContextPriv (to wrap backend objects) are also to be kept from public use and will be used to remove SkSurface::MakeRenderTargetDirect. Split out of: https://codereview.chromium.org/2176333002/ (Remove SkSurface::MakeRenderTargetDirect) TBR=bsalomon@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211473002 Review-Url: https://codereview.chromium.org/2211473002
* Convert SkAutoTUnref<SkData> to sk_sp<SkData>.Gravatar bungeman2016-08-03
| | | | | | | | | With the move from SkData::NewXXX to SkData::MakeXXX most SkAutoTUnref<SkData> were changed to sk_sp<SkData>. However, there are still a few SkAutoTUnref<SkData> around, so clean them up. Review-Url: https://codereview.chromium.org/2212493002
* Move off SK_SUPPORT_LEGACY_DATA_FACTORIES.Gravatar bungeman2016-08-02
| | | | | | | This moves Skia code off of SK_SUPPORT_LEGACY_DATA_FACTORIES. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206633004 Review-Url: https://codereview.chromium.org/2206633004
* Add drawImageLattice() and drawBitmapLattice() APIsGravatar msarett2016-08-02
| | | | | | | | | | | | The specified image/bitmap is divided into rects, which can be draw stretched, shrunk, or at a fixed size. Will be used by Android to draw 9patch (which are acutally N-patch) images. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1992283002 Review-Url: https://codereview.chromium.org/1992283002
* Added distance vector support for CircleGeometryProcessorGravatar dvonbeck2016-08-01
| | | | | | | | | | This CL's base is the CL that sets up the distance vector field req. exposure: https://codereview.chromium.org/2114993002/ BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2190023002 Committed: https://skia.googlesource.com/skia/+/779e1924eaf7c5652dee93e0e8e975bbf5723b37 Review-Url: https://codereview.chromium.org/2190023002
* GrFP can express distance vector field req., program builder declares ↵Gravatar dvonbeck2016-08-01
| | | | | | | | | | | | | | | | | | | | | variable for it This update allows fragment processors to require a field of vectors to the nearest edge. This requirement propagates: - from child FPs to their parent - from parent FPs to the GrPaint - from GrPaint through the PipelineBuilder into GrPipeline - acessed from GrPipeline by GrGLSLProgramBuilder GrGLSL generates a variable for the distance vector and passes it down to the GeometryProcessor->emitCode() method. This CL's base is the CL for adding the BevelNormalSource API: https://codereview.chromium.org/2080993002 BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2114993002 Committed: https://skia.googlesource.com/skia/+/4ef6dfa7089c092c67b0d5ec34e89c1e319af196 Review-Url: https://codereview.chromium.org/2114993002
* Revert of GrFP can express distance vector field req., program builder ↵Gravatar mtklein2016-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | declares variable for it (patchset #20 id:370001 of https://codereview.chromium.org/2114993002/ ) Reason for revert: UBSAN says we're reading a bad bool here: bool usesDistanceVectorField() const { return fUsesDistanceVectorField; } ../../../include/gpu/GrPaint.h:83:51: runtime error: load of value 239, which is not a valid value for type 'bool' SUMMARY: AddressSanitizer: undefined-behavior ../../../include/gpu/GrPaint.h:83:51 in Seems likely also the root of Valgrind failure: https://luci-milo.appspot.com/swarming/task/30522e4f2241cb10 Original issue's description: > GrFP can express distance vector field req., program builder declares variable for it > > This update allows fragment processors to require a field of vectors to the nearest edge. This requirement propagates: > > - from child FPs to their parent > - from parent FPs to the GrPaint > - from GrPaint through the PipelineBuilder into GrPipeline > - acessed from GrPipeline by GrGLSLProgramBuilder > > GrGLSL generates a variable for the distance vector and passes it down to the GeometryProcessor->emitCode() method. > > This CL's base is the CL for adding the BevelNormalSource API: https://codereview.chromium.org/2080993002 > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2114993002 > > Committed: https://skia.googlesource.com/skia/+/4ef6dfa7089c092c67b0d5ec34e89c1e319af196 TBR=egdaniel@google.com,robertphillips@google.com,bsalomon@google.com,dvonbeck@google.com # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=skia: Review-Url: https://codereview.chromium.org/2201613002
* Revert of Added distance vector support for CircleGeometryProcessor ↵Gravatar mtklein2016-07-30
| | | | | | | | | | | | | | | | | | | | | | | (patchset #4 id:60001 of https://codereview.chromium.org/2190023002/ ) Reason for revert: Reverting so I can revert https://codereview.chromium.org/2114993002/ Original issue's description: > Added distance vector support for CircleGeometryProcessor > > This CL's base is the CL that sets up the distance vector field req. exposure: https://codereview.chromium.org/2114993002/ > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2190023002 > > Committed: https://skia.googlesource.com/skia/+/779e1924eaf7c5652dee93e0e8e975bbf5723b37 TBR=egdaniel@google.com,robertphillips@google.com,dvonbeck@google.com # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=skia: Review-Url: https://codereview.chromium.org/2196053002
* If scissor would be empty in GrClipMaskManager::SetupClipping indicate draw ↵Gravatar bsalomon2016-07-29
| | | | | | | | | can be skipped. BUG=chromium:632185 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2196803002 Review-Url: https://codereview.chromium.org/2196803002
* Add ES 3.0 fallback for instanced renderingGravatar csmartdalton2016-07-29
| | | | | | | | | | | | | | | Adds the ability for GLInstancedRendering to use glDrawElementsInstanced when glDrawElementsIndirect is not supported. The only remaining 3.1 dependency now is EXT_texture_buffer. Also moves the cap for glDraw*Instanced out of GrCaps and into GrGLCaps. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2193303002 Review-Url: https://codereview.chromium.org/2193303002
* Fix vulkan buildGravatar egdaniel2016-07-29
| | | | | | | | TBR=bsalomon@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2193883002 Review-Url: https://codereview.chromium.org/2193883002
* Added distance vector support for CircleGeometryProcessorGravatar dvonbeck2016-07-29
| | | | | | | | | This CL's base is the CL that sets up the distance vector field req. exposure: https://codereview.chromium.org/2114993002/ BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2190023002 Review-Url: https://codereview.chromium.org/2190023002
* Properly recycle uniform buffers in vulkanGravatar egdaniel2016-07-29
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2195713002 Review-Url: https://codereview.chromium.org/2195713002
* GrFP can express distance vector field req., program builder declares ↵Gravatar dvonbeck2016-07-29
| | | | | | | | | | | | | | | | | | | | variable for it This update allows fragment processors to require a field of vectors to the nearest edge. This requirement propagates: - from child FPs to their parent - from parent FPs to the GrPaint - from GrPaint through the PipelineBuilder into GrPipeline - acessed from GrPipeline by GrGLSLProgramBuilder GrGLSL generates a variable for the distance vector and passes it down to the GeometryProcessor->emitCode() method. This CL's base is the CL for adding the BevelNormalSource API: https://codereview.chromium.org/2080993002 BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2114993002 Review-Url: https://codereview.chromium.org/2114993002
* Use HashSet instead of Dynamic hash for tracking vulkan resourcesGravatar egdaniel2016-07-29
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2194823003 Review-Url: https://codereview.chromium.org/2194823003
* Remove GrContext::applyGammaGravatar robertphillips2016-07-29
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2191323002 Review-Url: https://codereview.chromium.org/2191323002
* Add test configs for instanced renderingGravatar csmartdalton2016-07-29
| | | | | | | | | | | | | | | Adds the following configs and enables them on select bots: glinst, glinst4, glinstdit4, glinst16, glinstdit16, esinst, esinst4, esinstdit4 Makes general changes to GrContextOptions, GrCaps, etc. to facilitate this. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2182783004 Review-Url: https://codereview.chromium.org/2182783004
* Merge ProgramDesc's for GL and VulkanGravatar egdaniel2016-07-29
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2184413002 Review-Url: https://codereview.chromium.org/2184413002
* Don't call finish on GrDrawTarget if we drew no batchesGravatar egdaniel2016-07-28
| | | | | | | | | | | This might give us some minor perf gains in vulkan since we won't be submitting command buffers that we've added to batch draws to. Running nanobench this does seem to happen pretty often. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2179903008 Review-Url: https://codereview.chromium.org/2179903008
* Fix GrDrawContextPriv::stencilRectGravatar csmartdalton2016-07-27
| | | | | | | | | | | | | Updates stencilRect to call drawNonAAFilledRect instead of drawFilledRect. drawFilledRect can use coverage AA, which isn't appropriate for stencil draws. Also modifies drawNonAAFilledRect to take a "useHWAA" argument instead of trying to deduce whether it should be used. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187583002 Review-Url: https://codereview.chromium.org/2187583002
* Rename GrContext's newDrawContext & drawContext to makeDrawContextGravatar robertphillips2016-07-27
| | | | | | | | These both return sk_sp. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2186073002 Review-Url: https://codereview.chromium.org/2186073002
* require semi at the end of SkASSERT and friendsGravatar caryclark2016-07-27
| | | | | | | | R=bungeman@google.com TBR=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185063002 Review-Url: https://codereview.chromium.org/2185063002
* Add gyp define to enable vulkan debug layersGravatar egdaniel2016-07-27
| | | | | | | | | | | | | | | | | | On Debug vulkan bots, running with the debug layers on seems to be adding more than an hour to the total running time. Since we suppress any output on the bots anyways the debug layers are serving no purpose. Thus I am adding a gyp define to disable the layers on the bot. With this change, by default when running vulkan in Debug, the debug_layers will be enabled. The bots should disable the layers. Android framework should also have them disabled by default. TBR=djsollen@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185953003 Review-Url: https://codereview.chromium.org/2185953003
* Simplify color space xform storage and usage (float[] vs. SkMatrix44)Gravatar brianosman2016-07-27
| | | | | | | | | | Public API is really just internal. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185533005 TBR=bsalomon@google.com Review-Url: https://codereview.chromium.org/2185533005
* Implement coverage AA for skewed rects with local coordsGravatar csmartdalton2016-07-26
| | | | | | | | | | | Adds a path fallback for rects with local coords that can't be drawn with an analytic shader. This is accomplished by modifying the view matrix and then drawing the local rect/quad. BUG=skia:5500, 7508 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2183223002 Review-Url: https://codereview.chromium.org/2183223002
* Use Windowing system-specific WindowContext factories.Gravatar bsalomon2016-07-26
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2169543002 Review-Url: https://codereview.chromium.org/2169543002
* Reduce usage of MakeRenderTargetDirectGravatar robertphillips2016-07-26
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187573002 Review-Url: https://codereview.chromium.org/2187573002
* Remove SkSurfaceProps gamma-correctness flag entirely.Gravatar brianosman2016-07-26
| | | | | | | | | | | | | This is no longer required - gamma-correctness is now just based on the presence or absence of a color space. Public API change is just removal of (unused) flag. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188463002 TBR=bsalomon@google.com Review-Url: https://codereview.chromium.org/2188463002
* Always supply a color space (sRGB for now) with F16Gravatar brianosman2016-07-26
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177193004 Review-Url: https://codereview.chromium.org/2177193004
* Move prepareForExternalIO from GrRenderTarget to GrDrawContextGravatar robertphillips2016-07-26
| | | | | | | | This is part of the push to remove GrRenderTarget from SkGpuDevice GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2182543003 Review-Url: https://codereview.chromium.org/2182543003
* Reuse sampler descriptor set allocations in VulkanGravatar egdaniel2016-07-26
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2172873003 Review-Url: https://codereview.chromium.org/2172873003
* Just pass the draw context to paint conversionGravatar brianosman2016-07-25
| | | | | | | | | | Concentrate on using draw context functionality to answer gamma and color related queries in more places. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2182603003 Review-Url: https://codereview.chromium.org/2182603003
* SkSL performance improvements (plus a couple of minor warning fixes)Gravatar ethannicholas2016-07-25
| | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2131223002 Committed: https://skia.googlesource.com/skia/+/9fd67a1f53809f5eff1210dd107241b450c48acc Review-Url: https://codereview.chromium.org/2131223002
* remove/deprecate SkBitmap::getTexture, as it now always returns falseGravatar reed2016-07-25
| | | | | | | | | oh happy day BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175873002 Review-Url: https://codereview.chromium.org/2175873002
* remove fClipStack and attach/deattach-from-canvasGravatar reed2016-07-25
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180793002 Review-Url: https://codereview.chromium.org/2180793002
* Add destination color space to AsFPArgs. Eliminates last XFORMTODO.Gravatar brianosman2016-07-25
| | | | | | | | | | | | This is going to be needed in many more places as I finish connecting the dots. Even better - I'd like to switch to a world where SkColorSpace != nullptr is the only signal we use for gamma-correct rendering, so I can eliminate SkSourceGammaTreatment and SkSurfaceProps::isGammaCorrect. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180503002 Review-Url: https://codereview.chromium.org/2180503002