aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
* Remove GrContextFactory::getGLContextGravatar kkinnunen2015-11-22
| | | | | | | | | | | | | | | | | Remove GrContextFactory::getGLContext, it is problematic: It has the bug of not checking for the context type. It also is error-prone, since the GL context is not made current, but it is callers may assume it is current. It is also not used very much. Clients can use GrContextFactory::getContextInfo. BUG=skia: Review URL: https://codereview.chromium.org/1455093003
* Initial version of external_oes texture support and unit testGravatar bsalomon2015-11-22
| | | | | | Committed: https://skia.googlesource.com/skia/+/27a048700778d4cebfc23301d1780649791b0e03 Review URL: https://codereview.chromium.org/1451683002
* Revert of Add stroking support to distance field path renderer (patchset #8 ↵Gravatar fmalita2015-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:160001 of https://codereview.chromium.org/1460873002/ ) Reason for revert: Valgrind failures: http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind/builds/420/steps/dm/logs/stdio ==7062== Use of uninitialised value of size 8 ==7062== at 0x8ECA9A: AADistanceFieldPathBatch::onPrepareDraws(GrVertexBatch::Target*) (SkTDynamicHash.h:94) ==7062== by 0x90DCF5: GrVertexBatch::onPrepare(GrBatchFlushState*) (GrVertexBatch.cpp:16) ==7062== by 0x8B592A: GrDrawTarget::prepareBatches(GrBatchFlushState*) (GrBatch.h:100) ==7062== by 0x8B51EA: GrDrawingManager::flush() (GrDrawingManager.cpp:78) ==7062== by 0x8AE568: GrContext::flush(int) (GrContext.cpp:191) ==7062== by 0x6C118A: GrContext::getTestTarget(GrTestTarget*, GrRenderTarget*) (GrTest.cpp:56) ==7062== by 0x4F4D82: GrDrawingManager::ProgramUnitTest(GrContext*, int) (GLProgramsTest.cpp:360) ==7062== by 0x4F58EC: test_GLPrograms(skiatest::Reporter*, GrContextFactory*) (GLProgramsTest.cpp:450) ==7062== by 0x40925E: run_test(skiatest::Test*) (DM.cpp:1022) ==7062== by 0x40BAC2: run_enclave_and_gpu_tests(SkTArray<Task, false>*) (DM.cpp:1033) ==7062== by 0x7621A9: SkTaskGroup::wait() (SkTaskGroup.cpp:88) ==7062== by 0x40B756: dm_main() (DM.cpp:1124) ==7062== by 0x40BA5F: main (DM.cpp:1211) ==7062== Uninitialised value was created by a stack allocation ==7062== at 0x8DB484: GrTest::TestStrokeRec(SkRandom*) (GrTestUtils.cpp:232) ==7062== { <insert_a_suppression_name_here> Memcheck:Value8 fun:_ZN24AADistanceFieldPathBatch14onPrepareDrawsEPN13GrVertexBatch6TargetE fun:_ZN13GrVertexBatch9onPrepareEP17GrBatchFlushState fun:_ZN12GrDrawTarget14prepareBatchesEP17GrBatchFlushState fun:_ZN16GrDrawingManager5flushEv fun:_ZN9GrContext5flushEi fun:_ZN9GrContext13getTestTargetEP12GrTestTargetP14GrRenderTarget fun:_ZN16GrDrawingManager15ProgramUnitTestEP9GrContexti fun:_ZL15test_GLProgramsPN8skiatest8ReporterEP16GrContextFactory fun:_ZL8run_testPN8skiatest4TestE fun:_ZL25run_enclave_and_gpu_testsP8SkTArrayI4TaskLb0EE fun:_ZN11SkTaskGroup4waitEv fun:_Z7dm_mainv fun:main } Original issue's description: > Add stroking support to distance field path renderer > > Also slightly increases sizes of paths accepted for distance field > caching. > > Committed: https://skia.googlesource.com/skia/+/5ce76efd1c847308c7bcac17bd87d567c42cd786 > > Committed: https://skia.googlesource.com/skia/+/73ee6770260dbeeabc4a78eee4f13533f0031211 TBR=robertphillips@google.com,jvanverth@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1465053002
* Revert of Initial version of external_oes texture support and unit test ↵Gravatar bsalomon2015-11-20
| | | | | | | | | | | | | | | | | | | (patchset #14 id:260001 of https://codereview.chromium.org/1451683002/ ) Reason for revert: Error wrapping external texture in GrTexture on some devices. Original issue's description: > Initial version of external_oes texture support and unit test > > Committed: https://skia.googlesource.com/skia/+/27a048700778d4cebfc23301d1780649791b0e03 TBR=joshualitt@google.com,egdaniel@google.com,robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1459323004
* Initial version of external_oes texture support and unit testGravatar bsalomon2015-11-20
| | | | Review URL: https://codereview.chromium.org/1451683002
* Revert of Make specialized SrcOver XPFactory (patchset #3 id:40001 of ↵Gravatar egdaniel2015-11-20
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1455273006/ ) Reason for revert: breaking some builds Original issue's description: > Make specialized SrcOver XPFactory > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/a7006d45217d128a94fa53cb4b827cca79bc7049 TBR=bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1464933003
* Add stroking support to distance field path rendererGravatar jvanverth2015-11-20
| | | | | | | | | Also slightly increases sizes of paths accepted for distance field caching. Committed: https://skia.googlesource.com/skia/+/5ce76efd1c847308c7bcac17bd87d567c42cd786 Review URL: https://codereview.chromium.org/1460873002
* Create GrGLSLVaryingHandler class for program buildingGravatar egdaniel2015-11-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1462123003
* Make specialized SrcOver XPFactoryGravatar egdaniel2015-11-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1455273006
* Move glyph choosing to the find and place glyph code.Gravatar herb2015-11-20
| | | | | | | | | | This duplicates the functionality of the (private) SkPaint::getDrawCacheProc method into SkFindAndPlaceGlyph::LookupGlyph. Eventually LookupGlyph should replace getDrawCacheProc, at which point it should be removed. The remaining users are gpu and pdf. Review URL: https://codereview.chromium.org/1458193003
* Factor out GrAtlasTextBatch fromt GrAtlasTextContextGravatar joshualitt2015-11-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1458233003
* Generate list of GPU contexts outside SurfaceTest testsGravatar kkinnunen2015-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for feeding the tests with contexts directly to the unit test framework. This fixes the problem where tests are more complex than needed just in order to run the test code with multiple backends. Also makes it possible to change the logic how contexts are created. Instead of direct numbering, the different testable contexts may be generated from filtered cross-product of context options. For example: currently NVPR is a type of context. However, it could be also an on/off feature of any context. In order to test this kind of context, the enumeration can not be just of context type. It's simpler to move the enumeration out of the tests. A test targeting both normal and GPU backends would look like: static void test_obj_behavior(skiatest::Reporter* reporter, SkObj* obj, [other params] ) { ... test with obj and param .. } DEF_TEST(ObjBehavior, reporter) { for (auto& object : generate_object) { for (auto& other_param : generate_other_variant) { test_obj_behavior(reporter, object, other_param); } } } #if SK_SUPPORT_GPU DEF_GPUTEST_FOR_ALL_CONTEXTS(ObjBehavior_Gpu, reporter, context) { for (auto& object : generate_gpu_object) { for (auto& other_param : generate_other_variant) { test_obj_behavior(reporter, object, other_param); } } } #endif Uses the feature in SurfaceTests as an example. Moves SkSurface -related tests from ImageTest to SurfaceTest. BUG=skia:2992 Review URL: https://codereview.chromium.org/1446453003
* Avoid geometric ninepatch if rendertarget has MSAAGravatar joshualitt2015-11-19
| | | | | | BUG=skia:4586 Review URL: https://codereview.chromium.org/1458883009
* Add more batch information printoutsGravatar robertphillips2015-11-19
| | | | Review URL: https://codereview.chromium.org/1457373003
* Revert of Add stroking support to distance field path renderer (patchset #7 ↵Gravatar jvanverth2015-11-19
| | | | | | | | | | | | | | | | | | | | | | id:120001 of https://codereview.chromium.org/1460873002/ ) Reason for revert: Asserting in nanobench and dm. Original issue's description: > Add stroking support to distance field path renderer > > Also slightly increases sizes of paths accepted for distance field > caching. > > Committed: https://skia.googlesource.com/skia/+/5ce76efd1c847308c7bcac17bd87d567c42cd786 TBR=robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1458233002
* Add stroking support to distance field path rendererGravatar jvanverth2015-11-19
| | | | | | | Also slightly increases sizes of paths accepted for distance field caching. Review URL: https://codereview.chromium.org/1460873002
* Fix maybe unintialized warning for GrAutoLocaleSetterGravatar kkinnunen2015-11-19
| | | | | | | | | | | In function void test_GLPrograms(skiatest::Reporter*, GrContextFactory*): ../../../src/gpu/GrAutoLocaleSetter.h:47:35: error: als.GrAutoLocaleSetter::fOldLocale may be used uninitialized in this function [-Werror=maybe-uninitialized] From Build-Ubuntu-GCC-x86_64-Release-Trybot Review URL: https://codereview.chromium.org/1456383002
* Move glsl onto EmitArgs struct for emitCodeGravatar egdaniel2015-11-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1453623003
* Fix leak in drawBitmapNineGravatar egdaniel2015-11-19
| | | | | | | | NOTREECHECKS=true BUG=skia: Review URL: https://codereview.chromium.org/1462893002
* [Reland] Fix NVPR assert for equivalent ovalsGravatar fmalita2015-11-18
| | | | | | | | | | | | | | | | | | | | | | For oval paths, GrPath ignores the point order and only uses the bounds when building its key. This is problematic because 1) point order is important when dashing 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal to the cached SkPath - which is not the case for ovals with different directions/different point order. With this CL we no longer use the reduced oval key when dashing, and instead fall through to the more general path cases. The assert is adjusted to accommodate "equivalent" ovals (when not dashing). Also re-enabled & updated the GpuDrawPath unit test (disabled in https://codereview.chromium.org/1456463003/, presumably due to the use of uninitialized SkRects). R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com Review URL: https://codereview.chromium.org/1457073002
* Make block size a template parameter of SkTLListGravatar bsalomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1457123002
* Revert of Fix NVPR assert for equivalent ovals (patchset #1 id:1 of ↵Gravatar stephana2015-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1457073002/ ) Reason for revert: Causes failures on Android and Win8: ... ( 137/1245MB 9) 73.9ms unit test GpuLayerCachec:\0\build\slave\workdir\build\skia\include\private\skuniqueptr.h:164: failed assertion "get() != pointer()" Caught exception 2147483651 EXCEPTION_BREAKPOINT ... Original issue's description: > Fix NVPR assert for equivalent ovals > > For oval paths, GrPath ignores the point order and only uses the bounds > when building its key. This is problematic because > > 1) point order is important when dashing > 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal > to the cached SkPath - which is not the case for ovals with different > directions/different point order. > > With this CL we no longer use the reduced oval key when dashing, and > instead fall through to the more general path cases. The assert is > adjusted to accommodate "equivalent" ovals (when not dashing). > > Also re-enabled & updated the GpuDrawPath unit test (disabled in > https://codereview.chromium.org/1456463003/, presumably due to the use > of uninitialized SkRects). > > R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com > > Committed: https://skia.googlesource.com/skia/+/f9b1577d763988ebc043ddabf80674f71571ecff TBR=bsalomon@google.com,cdalton@nvidia.com,robertphillips@google.com,fmalita@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1461913002
* simplify insertion methods for SkTLListGravatar bsalomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1459663002
* Fix NVPR assert for equivalent ovalsGravatar fmalita2015-11-18
| | | | | | | | | | | | | | | | | | | | | | For oval paths, GrPath ignores the point order and only uses the bounds when building its key. This is problematic because 1) point order is important when dashing 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal to the cached SkPath - which is not the case for ovals with different directions/different point order. With this CL we no longer use the reduced oval key when dashing, and instead fall through to the more general path cases. The assert is adjusted to accommodate "equivalent" ovals (when not dashing). Also re-enabled & updated the GpuDrawPath unit test (disabled in https://codereview.chromium.org/1456463003/, presumably due to the use of uninitialized SkRects). R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com Review URL: https://codereview.chromium.org/1457073002
* Make has GrBatchAtlas::ID() inlineableGravatar joshualitt2015-11-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1456113002
* Initial implementation of GPU no filter NinePatchGravatar joshualitt2015-11-18
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1454933002
* Fix has_aligned_samples helper for SkGpuDevice::drawTextureProducerGravatar Brian Salomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1454183002 .
* Convert SkGpuDevice::drawTextureAdjuster to SkGpuDevice::drawTextureProducerGravatar bsalomon2015-11-18
| | | | | | | | Move createFragmentProcessor to GrTextureProducer base class. Make non-tiled sw-bitmap draws go through drawTextureProducer. Review URL: https://codereview.chromium.org/1459433002
* Convert drawText to using the find and place code.Gravatar herb2015-11-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1448453002
* Add ShaderBuilders to EmitArgs and remove gettings from ProgBuilder.Gravatar egdaniel2015-11-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1457543003
* Switch uses of SkChecksum::Compute to Murmur3.Gravatar mtklein2015-11-16
| | | | | | | | | | | | | | | SkChecksum::Compute is a very, very poorly distributed hash function. This replaces all remaining uses with Murmur3. The only interesting stuff is in src/gpu. BUG=skia: Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac Committed: https://skia.googlesource.com/skia/+/540e95483d285b555e9b1a73d18c16e7d7c0deba Review URL: https://codereview.chromium.org/1436973003
* Optionally pass rendertarget to getTestTargetGravatar robertphillips2015-11-16
| | | | | | | | This shouldn't really make any difference but allocating and holding on to a GrRenderTarget for each test target generates image differences for Mali GPUs. This CL allows an existing render target to be used for the test target. TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1447113002
* Revert of Switch uses of SkChecksum::Compute to Murmur3. (patchset #2 ↵Gravatar mtklein2015-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1436973003/ ) Reason for revert: gotta put back *compute = 0. Original issue's description: > Switch uses of SkChecksum::Compute to Murmur3. > > SkChecksum::Compute is a very, very poorly distributed hash function. > This replaces all remaining uses with Murmur3. > > The only interesting stuff is in src/gpu. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac > > Committed: https://skia.googlesource.com/skia/+/540e95483d285b555e9b1a73d18c16e7d7c0deba TBR=bsalomon@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1448023005
* Switch uses of SkChecksum::Compute to Murmur3.Gravatar mtklein2015-11-16
| | | | | | | | | | | | | SkChecksum::Compute is a very, very poorly distributed hash function. This replaces all remaining uses with Murmur3. The only interesting stuff is in src/gpu. BUG=skia: Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac Review URL: https://codereview.chromium.org/1436973003
* Increase the amount of debug information printed out by batchesGravatar robertphillips2015-11-16
| | | | | | | | | Untangling MDB bugs requires more information. In particular the render targets. BUG=skia:4094 TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1443763002
* Add support for EGLImage to GrGLInterfaceGravatar bsalomon2015-11-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1434813002
* Update testing frameworks/tests for MDBGravatar robertphillips2015-11-16
| | | | | | | | | | | | | | | This CL: Fixes an ordering problem w.r.t. drawTarget clean up in GrContext::abandonContext (for text test that abandons context) Fixes when the lastDrawTarget field is set on a RenderTarget (now in GrDrawTarget ctor) due to GrTestTarget use case Updates the ProgramUnitTest to use multiple drawTargets Adds renderTarget creation to GrTestTargets (in MDB drawTargets require them) BUG=skia:4094 Committed: https://skia.googlesource.com/skia/+/9c8605144a0f15e3e69a4e1dcd5d3e63f339380e Review URL: https://codereview.chromium.org/1441533003
* Revert of Update testing frameworks/tests for MDB (patchset #4 id:60001 of ↵Gravatar egdaniel2015-11-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1441533003/ ) Reason for revert: Speculative revert for leaks based on ASAN bot (and some local valgrind testing) Original issue's description: > Update testing frameworks/tests for MDB > > This CL: > > Fixes an ordering problem w.r.t. drawTarget clean up in GrContext::abandonContext (for text test that abandons context) > Fixes when the lastDrawTarget field is set on a RenderTarget (now in GrDrawTarget ctor) due to GrTestTarget use case > Updates the ProgramUnitTest to use multiple drawTargets > Adds renderTarget creation to GrTestTargets (in MDB drawTargets require them) > > BUG=skia:4094 > > Committed: https://skia.googlesource.com/skia/+/9c8605144a0f15e3e69a4e1dcd5d3e63f339380e TBR=joshualitt@chromium.org,joshualitt@google.com,robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4094 Review URL: https://codereview.chromium.org/1450513002
* Rename some processor functions from GL to GLSLGravatar egdaniel2015-11-13
| | | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1443743002
* Move GrGLPrimitive/GeometryProc to GLSLGravatar egdaniel2015-11-13
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1441683008
* Move XferProcessors to glslGravatar egdaniel2015-11-13
| | | | | | | | | | This is basically a move and rename TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1440073002
* Revert of Switch uses of SkChecksum::Compute to Murmur3. (patchset #2 ↵Gravatar mtklein2015-11-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1436973003/ ) Reason for revert: I would not have expected this to change any images. Looks like it's changed both MSAA and non-MSAA GMs: https://gold.skia.org/search2?blame=1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac&unt=true&head=true&query=source_type%3Dgm Original issue's description: > Switch uses of SkChecksum::Compute to Murmur3. > > SkChecksum::Compute is a very, very poorly distributed hash function. > This replaces all remaining uses with Murmur3. > > The only interesting stuff is in src/gpu. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac TBR=bsalomon@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1445523003
* Make all GrFragmentProcessors GL independent.Gravatar egdaniel2015-11-13
| | | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1434313002
* Update testing frameworks/tests for MDBGravatar robertphillips2015-11-13
| | | | | | | | | | | | | This CL: Fixes an ordering problem w.r.t. drawTarget clean up in GrContext::abandonContext (for text test that abandons context) Fixes when the lastDrawTarget field is set on a RenderTarget (now in GrDrawTarget ctor) due to GrTestTarget use case Updates the ProgramUnitTest to use multiple drawTargets Adds renderTarget creation to GrTestTargets (in MDB drawTargets require them) BUG=skia:4094 Review URL: https://codereview.chromium.org/1441533003
* Switch uses of SkChecksum::Compute to Murmur3.Gravatar mtklein2015-11-12
| | | | | | | | | | | SkChecksum::Compute is a very, very poorly distributed hash function. This replaces all remaining uses with Murmur3. The only interesting stuff is in src/gpu. BUG=skia: Review URL: https://codereview.chromium.org/1436973003
* Fix GrCoverageSetOpXP unit test on mixed samplesGravatar cdalton2015-11-12
| | | | | | | | | | | Updates GrCoverageSetOpXPFactory::TestCreate to not invert coverage with mixed samples, which is an unsupported configuration. TBR=bsalomon@google.com BUG=skia:4556 Review URL: https://codereview.chromium.org/1442763002
* Replace SkFunction with std::functionGravatar mtklein2015-11-12
| | | | | | | TBR=reed@google.com No public API changes. Review URL: https://codereview.chromium.org/1441753002
* API changes to GrTextureAdjuster.Gravatar bsalomon2015-11-12
| | | | | | | | | | | | | | | | These changes are to facilitate converting SkGpuDevice::drawTextureAdjuster to SkGpuDevice::drawTextureProducer. Make constraint rect relative to content area Store dimensions in GrTextureProducer Make originalTexture() protected. Remove getContentArea() Provide pre-normalized texture matrix to GrTextureAdjuster::createFragmentProcessor. Define it to be be relative to content area. Review URL: https://codereview.chromium.org/1438663004
* Fix mixed sampled inverse path fillsGravatar cdalton2015-11-12
| | | | | | | | | Fixes a double blend that was occurring down the diagonals of inverse path fills when using mixed samples. BUG=skia: Review URL: https://codereview.chromium.org/1442513002
* In SkGpuDevice;drawTextureAdjuster perform texture w\h divide in texture matrixGravatar bsalomon2015-11-11
| | | | Review URL: https://codereview.chromium.org/1440763002