aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl
Commit message (Collapse)AuthorAge
* Add GrResourceCache2.Gravatar bsalomon2014-08-21
| | | | | | | | | | | | Currently it just replaces GrGpu as the owner of the linked list of resources. Committed: https://skia.googlesource.com/skia/+/94ce9ac8624dbb45656b8f5c992fad9c9ff3ee5f R=mtklein@google.com, robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/481443002
* Simplify GrGLPathRendering interfaceGravatar kkinnunen2014-08-20
| | | | | | | | | | | | | | | | | | | | | | | Simplify GrGLPathRendering interface by removing polymorphism and functions that simply wrap GL functions unnecessarily. Replace the polymorphism by if -condition. Call the unconditional GL functions directly. GrGLPath, GrGLPathRange and GrGLPathRendering are part of the same logical subsystem. This means that the subsystem implementation details are taken into account within these classes. Example: if support for using conics would be added, the feature flag would go to GrGLPathRendering::Caps, the emulation would go to GrGLPath instead of GrGLPathRendering::pathCommands. Wrapping glPathCommandsNV is not useful. Try to expose the interface fully in same logical level; rename fragment input function to reflect this. R=bsalomon@google.com, cdalton@nvidia.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/450283002
* Separate GL path rendering state from GrGpuGL to GrGLPathRenderingGravatar kkinnunen2014-08-20
| | | | | | | | | | | | | | | | | | | Separate GL path rendering state from GrGpuGL to GrGLPathRendering. This makes GrGpuGL code simpler. The intention is that while GrGpuGL represents the global environment for GL, the GrGLPathRendering represents the global environment for path rendering extension. Add GrPathRendering, a base class for path rendering, and inherit GrGLPathRendering from that. Move the path rendering virtual functions from GrGpu to GrPathRendering. R=bsalomon@google.com, cdalton@nvidia.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/452823002
* Revert of Add GrResourceCache2. (patchset #4 of ↵Gravatar bsalomon2014-08-19
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/481443002/) Reason for revert: Likely caused a leak detected in Chromium after last Skia roll. Original issue's description: > Add GrResourceCache2. > > Currently it just replaces GrGpu as the owner of the linked list of resources. > > Committed: https://skia.googlesource.com/skia/+/94ce9ac8624dbb45656b8f5c992fad9c9ff3ee5f R=mtklein@google.com, robertphillips@google.com TBR=mtklein@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: bsalomon@google.com Review URL: https://codereview.chromium.org/477323006
* Add GrResourceCache2.Gravatar bsalomon2014-08-19
| | | | | | | | | | Currently it just replaces GrGpu as the owner of the linked list of resources. R=robertphillips@google.com, mtklein@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/481443002
* Make null gpu context threadsafe(r) and make sure buffer objects are destroyed.Gravatar bsalomon2014-08-14
| | | | | | | | | NOTREECHECKS=true R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/470993002
* Add a parameter GR_ALWAYS_ALLOCATE_ON_HEAP to allow for only ever creating ↵Gravatar george2014-08-12
| | | | | | | | | | | | | temporary buffers on the heap instead of allowing stack allocation Unfortunately this can't be a GR_GL_* config like we'd discussed because there are SkAutoSMalloc buffers that are built outside of gl/ R=bsalomon@google.com, bsalomon BUG=skia: Author: george@mozilla.com Review URL: https://codereview.chromium.org/459263003
* Consider index8 a compressed config.Gravatar bsalomon2014-08-11
| | | | | | | | R=krajcevski@google.com, robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/457333004
* Wrap NV_path_rendering API with GrGLPathRenderingGravatar cdalton2014-08-11
| | | | | | | | | | | | | | Adds a GrGLPathRendering class that wraps the NV_path_rendering extension and manages its various API versions. It also provides backup implementations when certain NVpr methods from later API versions are not present on the current system. BUG=skia: R=bungeman@google.com, bsalomon@google.com, kkinnunen@nvidia.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/444223002
* Pretty print of shadersGravatar joshualitt2014-08-08
| | | | | | | | | BUG=skia: R=bsalomon@chromium.org, senorblanco@chromium.org, bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/437593004
* Cleanup of context initializationGravatar joshualitt2014-08-07
| | | | | | | | | | | Cleanup context initialization on linux BUG=skia: R=bsalomon@chromium.org, bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/422323003
* Revert "Adds a GrGLPathRendering class that wraps the NV_path_rendering"Gravatar bungeman2014-08-06
| | | | | | | | | | | | | | | | | | This reverts commit 5672da0fa54f31c9727568e9dd5fe82c6e1585bc. This appears to be blocking the Skia roll by causing failures in the blink layout tests on the canvas-lost-gpu-context.html test. The bisect for this can be seen at: https://codereview.chromium.org/449473002/ Original issue's description: > Adds a GrGLPathRendering class that wraps the NV_path_rendering > extension and manages its various API versions. It also provides > backup implementations when certain NVpr methods from later API > versions are not present on the current system. > > Committed: https://skia.googlesource.com/skia/+/5672da0fa54f31c9727568e9dd5fe82c6e1585bc
* Revert "Calculate rough approximations for nvpr path sizes"Gravatar bungeman2014-08-06
| | | | | | | This reverts commit 61bff7097251755bf9fa9a4ec60cc057c766b4a4. This is built on 5672da0fa54f31c9727568e9dd5fe82c6e1585bc which is causing blink test failures on canvas-lost-gpu-context.html.
* Calculate rough approximations for nvpr path sizesGravatar cdalton2014-08-05
| | | | | | | | | | | | | Calculates a rough approximation of the actual value for gpuMemorySize in GrGLPath and GrGLPathRange, instead of assuming every path is the same fixed size. BUG=skia: R=bsalomon@google.com, markkilgard@gmail.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/442603002
* Adds a GrGLPathRendering class that wraps the NV_path_renderingGravatar cdalton2014-08-04
| | | | | | | | | | | | extension and manages its various API versions. It also provides backup implementations when certain NVpr methods from later API versions are not present on the current system. R=bsalomon@google.com, kkinnunen@nvidia.com, markkilgard@gmail.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/437473002
* Don't compare coord change matrices to determine effect compatibility when ↵Gravatar bsalomon2014-08-04
| | | | | | | | | | using explicit local coords. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/438053002
* Remove unused matrix param from GrContext/GrDrawTarget rect drawing functions.Gravatar bsalomon2014-08-04
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/441623005
* Make GrGLProgram be available to GrGLProgramDataManagerGravatar kkinnunen2014-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GL APIs such as glProgramPathFragmentInputGenNV need the explicit program id in order to set the program resources. For GrGLProgramDataManager to call the APIs, the program id needs to be available to the GrGLProgramDataManager. One GrGLProgramDataManager is used to explicitly manage the resources of one GrGLProgram. Refactor the classes to reflect this: make GrGLProgram create and own GrGLProgramDataManager. This way the program id can be made available through GrGLProgram backpointer. In order to do this, remove the population of the program link results information for uniforms in GrGLProgramDataManager during shader generation. Instead, accumulate the info to the uniform list of GrGLShaderBuilder. After the generation, compilation and link is successful, this info can be used to construct both GrGLProgram and GrGLProgramDataManager. Changes names of functions to create UniformHandles and convert them to list indices. This tries to highlight that they're different lists, even though at the moment they match index-wise. E.g the contract is that handles can be created based on the shader builder state, and the object can later be set with the handle and the manager that was created with the builder. This is needed to support NV_path_rendering for GLES. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/426553011
* FBFetch refactor + arm supportGravatar joshualitt2014-08-01
| | | | | | | | | BUG=skia: R=krajcevski@google.com, bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/433603002
* Start the process of choosing the correct compression formatGravatar krajcevski2014-07-30
| | | | | | | | R=robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/427093004
* Test removal of mesa specific version parseGravatar joshualitt2014-07-30
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/430833002
* Add query for whether or not we have compressedTexSubImageGravatar krajcevski2014-07-30
| | | | | | | | R=robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/430773004
* Rename GrGLUniformManager to GrGLProgramDataManagerGravatar kkinnunen2014-07-30
| | | | | | | | | | | | | Rename GrGLUniformManager to GrGLProgramDataManager in anticipation that the class would be used to manage shader resources that are not uniforms. This is needed in order to implement NVPR on GLES. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/365853002
* Incorporate glStencilThenCover* nvpr methodsGravatar cdalton2014-07-29
| | | | | | | | | | | | | | | | | | Adds the glStencilThenCover* nvpr methods to GrGLInterface and starts using them. When drawing multible paths, this will make it so we only have to send the index/transform data once. It will also allow the driver to save time internally. The glStencilThenCover* methods are a newer addition, so they aren't available on every driver. In the event that they are not present, we emulate them using the existing glStencil*/glCover* methods. BUG=skia: R=markkilgard@gmail.com, bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/423173004
* Remove support in the gpu to use hardware AA lines. Current code paths could ↵Gravatar egdaniel2014-07-29
| | | | | | | | | | | | | not reach this code and thus was never used. The blend opt flag kDisableBlend should now be able to be removed, however it is left in this CL and will removed in its own. BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/427823002
* Revert of Remove gpu support for willUseHWAALines. ↵Gravatar egdaniel2014-07-29
| | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/423943003/) Reason for revert: Breaking windows 7 compare gm's Original issue's description: > Remove gpu support for willUseHWAALines. > > By removing willUseHWAALines, we also no long reference the blend opt flag kDisableBlend so it has been removed > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/e6dfba868c19b00562f8c733b9bf37dd4ec9e68c R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: egdaniel@google.com Review URL: https://codereview.chromium.org/430493003
* Some fixes around GrContext::abandonContext:Gravatar bsalomon2014-07-29
| | | | | | | | | | | | | | Fix debug crash when GrResourceCache is destroyed after GrContext is abandoned while GrTextures are in the exlusive list. Notify debug GL context that GL resources are expected to remain undeleted when context is destroyed after being abandoned. Stop leaking program cache entries when context is abandoned. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/422323002
* Remove gpu support for willUseHWAALines.Gravatar egdaniel2014-07-29
| | | | | | | | | | | By removing willUseHWAALines, we also no long reference the blend opt flag kDisableBlend so it has been removed BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/423943003
* Finish removing GrTHashTableGravatar robertphillips2014-07-29
| | | | | | | | | | This class is no longer used in Ganesh (in favor of SkTDynamicHash) R=jvanverth@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/421253003
* Rename GrGpuObject to GrGpuResourceGravatar bsalomon2014-07-25
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/418143004
* Revert "Revert of Use the GrCacheable ID to eliminate the need for ↵Gravatar bsalomon2014-07-22
| | | | | | | | | | | | | | notifications to GrGpuGL when textures and RTs are… (https://codereview.chromium.org/376703009/)" This reverts commit 249171e7d29b5559f3eefe9dbd437030bfad3fda. Uses 32 bit id instead of 64. Renamed instanceID to uniqueID to match existing code. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/414493002
* Add a GrPathRange classGravatar cdalton2014-07-21
| | | | | | | | | | | | | | | Adds a GrPathRange object that represents a range of paths on the gpu. Updates GrDrawTarget::drawPaths and supporting code to use GrPathRange instead of an array of GrPath objects. Change-Id: I67845f3893cd4d955db947d699aa3733cbb081e0 BUG=skia: R=bsalomon@google.com, jvanverth@google.com, kkinnunen@nvidia.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/400713003
* Remove gpu shader optimatization for solid white or trans black colorsGravatar egdaniel2014-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | Running test on the added bench which draws a grid of all white paths, all blue paths, or alternating checkered white/blue paths. With optimization in (ms): White Blue Checkered Linux ~80 ~80 ~160 N7 ~800 ~1100 ~1500 Moto-e ~830 ~1100 ~2500 Without optimization in (ms): White Blue Checkered Linux ~80 ~80 ~80 N7 ~1100 ~1100 ~1100 Moto-e ~1100 ~1100 ~1500 BUG=skia: Committed: https://skia.googlesource.com/skia/+/5f78d2251a440443c9eaa321dad058d7a32bfef7 R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/375823005
* Allow GrGLEffects to produce variable length keys.Gravatar bsalomon2014-07-21
| | | | | | | | R=robertphillips@google.com, jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/385713005
* Replace GrTHash with SkTDynamicHashGravatar robertphillips2014-07-20
| | | | | | | | | | | | | Mike: SkTDynamicHash changes Brian: Ganesh changes This removes three instances of GrTHash leaving the ones in GrTextStrike.h R=mtklein@google.com, bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/402693003
* Revert of Use the GrCacheable ID to eliminate the need for notifications to ↵Gravatar robertphillips2014-07-20
| | | | | | | | | | | | | | | | | | | | | | | GrGpuGL when textures and RTs are… (https://codereview.chromium.org/376703009/) Reason for revert: Trying to unblock roll wedged on 64 bit intrinsic call on XP Original issue's description: > Use the GrCacheable ID to eliminate the need for notifications to GrGpuGL when textures and RTs are deleted. > > Also, rename GrCacheable::getGenerationID() to getInstanceID() since it doesn't behave like other "generation" IDs. > > Committed: https://skia.googlesource.com/skia/+/91bdbcdbbdf5cdf0fdb4518a0d30206c964cfdf6 R=jvanverth@google.com, bsalomon@google.com TBR=bsalomon@google.com, jvanverth@google.com NOTREECHECKS=true NOTRY=true Author: robertphillips@google.com Review URL: https://codereview.chromium.org/405023003
* Fix alpha textures in NV ES3 contexts on Windows.Gravatar bsalomon2014-07-17
| | | | | | | | | | | | Make unit tests iterate over all the rendering GL context types rather than using kNative. Fix the extension printing when gStartupSpew is set. R=jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/398183002
* Add IsPath to GrGLInterfaceGravatar cdalton2014-07-17
| | | | | | | | | | | This will be used by path ranges. BUG=skia: R=bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/403563002
* Use the GrCacheable ID to eliminate the need for notifications to GrGpuGL ↵Gravatar bsalomon2014-07-17
| | | | | | | | | | | | when textures and RTs are deleted. Also, rename GrCacheable::getGenerationID() to getInstanceID() since it doesn't behave like other "generation" IDs. R=jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/376703009
* Makes GrGLProgramDesc's key store the lengths as well as offsets of the ↵Gravatar bsalomon2014-07-17
| | | | | | | | | | | | | | | | effect keys. Makes it possible to use GrBackendEffectFactories other than GrTBEF by moving meta-key generation out of GrTBEF. Cleans up docs around GrBackendEffectFactory. Committed: https://skia.googlesource.com/skia/+/c0ea398aff8254e31152cbb94c9ab6150428e252 R=robertphillips@google.com, jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/379113004
* Add new ASTC pixel configGravatar krajcevski2014-07-16
| | | | | | | | R=bsalomon@google.com, robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/399623004
* 32 bpp floating point texturesGravatar joshualitt2014-07-16
| | | | | | | | | | | This is VERY preliminary, but it was sufficient for me to get 32 bit floating point textures in a sample app BUG=skia: R=bsalomon@chromium.org, bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/359803003
* Revert of Reopened: Caching the result of readPixelsSupported ↵Gravatar bungeman2014-07-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/364193004/) Reason for revert: This appears to be causing failures on Android when running tests. Original issue's description: > Caching the result of readPixelsSupported > > The call was calling GR_GL_GetIntegerv 2 times for each readPixels > and thus was causing a loss of performance > > (resubmit of issue 344793008) > > Benchmark url: http://packages.gkny.fr/tst/index.html > > BUG=skia:2681 > > Committed: https://skia.googlesource.com/skia/+/753a2964afe5661ce9b2a8ca77ca9d0aabd3173c > > Committed: https://skia.googlesource.com/skia/+/8339371f1ec3c57a0741932fd96bff32c53d4e54 R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, mtklein@google.com, bsalomon@google.com, piotaixr@chromium.org TBR=bsalomon@chromium.org, bsalomon@google.com, junov@chromium.org, mtklein@google.com, piotaixr@chromium.org, reed@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia:2681 Author: bungeman@google.com Review URL: https://codereview.chromium.org/395203002
* Revert of Makes GrGLProgramDesc's key store the lengths as well as offsets ↵Gravatar mtklein2014-07-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of the effect keys. (https://codereview.chromium.org/379113004/) Reason for revert: Most likely candidate for Valgrind failures: [21:10:08.755668] ==3036== Use of uninitialised value of size 8 [21:10:08.755753] ==3036== at 0x734AB2: GrGpuGL::ProgramCache::getProgram(GrGLProgramDesc const&, GrEffectStage const**, GrEffectStage const**) (GrGpuGL_program.cpp:107) [21:10:08.755788] ==3036== by 0x734ED2: GrGpuGL::flushGraphicsState(GrGpu::DrawType, GrDeviceCoordTexture const*) (GrGpuGL_program.cpp:253) [21:10:08.755811] ==3036== by 0x6E81C2: GrGpu::setupClipAndFlushState(GrGpu::DrawType, GrDeviceCoordTexture const*, GrDrawState::AutoRestoreEffects*, SkRect const*) (GrGpu.cpp:350) [21:10:08.755837] ==3036== by 0x6E9BE8: GrGpu::onDraw(GrDrawTarget::DrawInfo const&) (GrGpu.cpp:390) [21:10:08.755858] ==3036== by 0x6EEECE: GrInOrderDrawBuffer::flush() (GrDrawTarget.h:506) [21:10:08.755879] ==3036== by 0x6D0EB4: GrContext::flush(int) (GrContext.cpp:1327) [21:10:08.755900] ==3036== by 0x6D3F8F: GrContext::writeTexturePixels(GrTexture*, int, int, int, int, GrPixelConfig, void const*, unsigned long, unsigned int) (GrContext.cpp:1349) [21:10:08.755922] ==3036== by 0x6D39D7: GrContext::writeRenderTargetPixels(GrRenderTarget*, int, int, int, int, GrPixelConfig, void const*, unsigned long, unsigned int) (GrContext.cpp:1632) [21:10:08.755949] ==3036== by 0x6FFDF3: GrRenderTarget::writePixels(int, int, int, int, GrPixelConfig, void const*, unsigned long, unsigned int) (GrRenderTarget.cpp:45) [21:10:08.755978] ==3036== by 0x735563: SkGpuDevice::onWritePixels(SkImageInfo const&, void const*, unsigned long, int, int) (SkGpuDevice.cpp:280) [21:10:08.756003] ==3036== by 0x57A048: SkBaseDevice::writePixels(SkImageInfo const&, void const*, unsigned long, int, int) (SkDevice.cpp:106) [21:10:08.756025] ==3036== by 0x56D0AE: SkCanvas::writePixels(SkImageInfo const&, void const*, unsigned long, int, int) (SkCanvas.cpp:700) [21:10:08.756050] ==3036== by 0x56D156: SkCanvas::writePixels(SkBitmap const&, int, int) (SkCanvas.cpp:652) [21:10:08.756077] ==3036== by 0x5109B6: test_WritePixels(skiatest::Reporter*, GrContextFactory*) (WritePixelsTest.cpp:464) [21:10:08.756099] ==3036== by 0x51114C: skiatest::WritePixelsClass::onRun(skiatest::Reporter*) (WritePixelsTest.cpp:361) [21:10:08.756122] ==3036== by 0x406BE8: skiatest::Test::run() (Test.cpp:107) [21:10:08.756145] ==3036== by 0x4064C2: SkTestRunnable::run() (skia_test.cpp:109) [21:10:08.756167] ==3036== by 0x405D1A: tool_main(int, char**) (skia_test.cpp:221) [21:10:08.756189] ==3036== by 0x405F75: main (skia_test.cpp:239) [21:10:08.756211] ==3036== Uninitialised value was created by a stack allocation [21:10:08.756233] ==3036== at 0x734CC8: GrGpuGL::flushGraphicsState(GrGpu::DrawType, GrDeviceCoordTexture const*) (GrGpuGL_program.cpp:213) Original issue's description: > Makes GrGLProgramDesc's key store the lengths as well as offsets of the effect keys. > > Makes it possible to use GrBackendEffectFactories other than GrTBEF by moving meta-key generation out of GrTBEF. > > Cleans up docs around GrBackendEffectFactory. > > Committed: https://skia.googlesource.com/skia/+/c0ea398aff8254e31152cbb94c9ab6150428e252 R=robertphillips@google.com, jvanverth@google.com, bsalomon@google.com TBR=bsalomon@google.com, jvanverth@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: mtklein@google.com Review URL: https://codereview.chromium.org/394213002
* Makes GrGLProgramDesc's key store the lengths as well as offsets of the ↵Gravatar bsalomon2014-07-15
| | | | | | | | | | | | | | effect keys. Makes it possible to use GrBackendEffectFactories other than GrTBEF by moving meta-key generation out of GrTBEF. Cleans up docs around GrBackendEffectFactory. R=robertphillips@google.com, jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/379113004
* Caching the result of readPixelsSupportedGravatar piotaixr2014-07-15
| | | | | | | | | | | | | | | | | | | The call was calling GR_GL_GetIntegerv 2 times for each readPixels and thus was causing a loss of performance (resubmit of issue 344793008) Benchmark url: http://packages.gkny.fr/tst/index.html BUG=skia:2681 Committed: https://skia.googlesource.com/skia/+/753a2964afe5661ce9b2a8ca77ca9d0aabd3173c R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, mtklein@google.com, bsalomon@google.com Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/364193004
* This moves us towards variable length effect keys. The overall program key ↵Gravatar bsalomon2014-07-11
| | | | | | | | | | now allows for it. After the header it stores an array of offsets to effect keys. This allows us to grab the effect keys to pass to effects when they generate code. It also ensures that we can't get a collision by sets of keys that are different lengths but are the same when appended together. R=robertphillips@google.com, jvanverth@google.com, egdaniel@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/356513003
* Revert of Remove gpu shader optimatization for solid white or trans black ↵Gravatar egdaniel2014-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | colors (https://codereview.chromium.org/375823005/) Reason for revert: possible test and gm failures Original issue's description: > Remove gpu shader optimatization for solid white or trans black colors > > Running test on the added bench which draws a grid of all white paths, all blue paths, or alternating checkered white/blue paths. > > With optimization in (ms): > White Blue Checkered > Linux ~80 ~80 ~160 > N7 ~800 ~1100 ~1500 > Moto-e ~830 ~1100 ~2500 > > Without optimization in (ms): > White Blue Checkered > Linux ~80 ~80 ~80 > N7 ~1100 ~1100 ~1100 > Moto-e ~1100 ~1100 ~1500 > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/5f78d2251a440443c9eaa321dad058d7a32bfef7 R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: egdaniel@google.com Review URL: https://codereview.chromium.org/385163004
* Remove gpu shader optimatization for solid white or trans black colorsGravatar egdaniel2014-07-11
| | | | | | | | | | | | | | | | | | | | | | | Running test on the added bench which draws a grid of all white paths, all blue paths, or alternating checkered white/blue paths. With optimization in (ms): White Blue Checkered Linux ~80 ~80 ~160 N7 ~800 ~1100 ~1500 Moto-e ~830 ~1100 ~2500 Without optimization in (ms): White Blue Checkered Linux ~80 ~80 ~80 N7 ~1100 ~1100 ~1100 Moto-e ~1100 ~1100 ~1500 BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/375823005
* Improve gpu tracing when applying markers directly to gpu targetGravatar egdaniel2014-07-09
| | | | | | | | | | | | | | | | - Change the debug marker strings sent by the GrGpuGL target to only grab the last object added to the set of active markers. This improves the readability when we end up with a large stack of trace markers. Any trace markers the come from the IODB will continue to be squashed into a single debug marker - Added some more useful, high level markers BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/378933002