aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/builders/GrGLProgramBuilder.h
Commit message (Collapse)AuthorAge
* API to cache shader binaries between runs of Skia.Gravatar Ethan Nicholas2017-11-02
| | | | | | | | | | | | This CL does not include an actual implementation of said cache. Stan is working on the cache implementation on the Android side of things. Bug: skia: Change-Id: Iabe4f19b2dbacaaa1ead8bb3fa68d88c687b9a84 Reviewed-on: https://skia-review.googlesource.com/54780 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Replaced all calls to fragmentPosition() with sk_FragCoordGravatar Ethan Nicholas2017-02-13
| | | | | | | Change-Id: I2ed4558aea74b3ae7ee11dfe4736cdbcb16ae49e Reviewed-on: https://skia-review.googlesource.com/8278 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Revert "Replaced all calls to fragmentPosition() with sk_FragCoord"Gravatar Ethan Nicholas2017-02-02
| | | | | | | | | | | | | This reverts commit de4d301881e7fd084f1f0b359ec6f9b2bf8bd4c5. Reason for revert: several Chrome rendering bugs on Mac BUG=skia: Change-Id: I492082b0b7e7c902ede4b598c5809f604d210ce1 Reviewed-on: https://skia-review.googlesource.com/7887 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Replaced all calls to fragmentPosition() with sk_FragCoordGravatar Ethan Nicholas2017-01-19
| | | | | | | | | BUG=skia: Change-Id: I179576e148ea6caf6e1c40f0a216421898bcb35d Reviewed-on: https://skia-review.googlesource.com/5941 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* re-land of added sk_FragCoord support to skslcGravatar Ethan Nicholas2016-12-13
| | | | | | | | | BUG=skia: Change-Id: Ifac1aa39839058787ad1794200c3dbb93c147a69 Reviewed-on: https://skia-review.googlesource.com/5850 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Revert "added sk_FragCoord support to skslc"Gravatar Greg Daniel2016-12-12
| | | | | | | | | | | This reverts commit ce33f10677630e34187b661a02161378d8304d68. Reason for revert: Breaking many gpu bots Change-Id: I94c813ed6a9311458c872f74bb1b0792f46ff414 Reviewed-on: https://skia-review.googlesource.com/5737 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* added sk_FragCoord support to skslcGravatar Ethan Nicholas2016-12-12
| | | | | | | | | BUG=skia: Change-Id: If78a4d08121699f87659f0d2e35f3edbf1867401 Reviewed-on: https://skia-review.googlesource.com/5408 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Merge GrGLSLCaps into GrShaderCapsGravatar Brian Salomon2016-11-29
| | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5121 Change-Id: If8d13638f80f42161cbc766a2666c5789e5772c8 Reviewed-on: https://skia-review.googlesource.com/5121 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Merge GrGLSLProgramDesc into GrProgramDescGravatar egdaniel2016-09-07
| | | | | | BUG=skia: Review-Url: https://codereview.chromium.org/2318523006
* 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
* Style bikeshed - remove extraneous whitespaceGravatar halcanary2016-03-29
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002 Review URL: https://codereview.chromium.org/1842753002
* Update how we send draws to gpu backend to reduce state setting.Gravatar egdaniel2016-03-17
| | | | | | | | | The main change here is that we pull primitive type off of the vertices, we set the gpu state on gpu once per pipeline/prim proc draw batch, and we create the ProgramDescriptor only for the Cache/ProgramBuilder. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1806983002 Review URL: https://codereview.chromium.org/1806983002
* Add support for vertex and geometry shader texturesGravatar cdalton2016-03-11
| | | | | | | | | | | Adds a visibility bitfield to GrTextureAccess that controls in which shaders the texture should be accessible. Also adds caps and validation to ensure we don't exceed texture limits. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1782583002 Review URL: https://codereview.chromium.org/1782583002
* Move some program building utils from GL to GLSLGravatar egdaniel2016-01-13
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1535603006 Review URL: https://codereview.chromium.org/1535603006
* Swizzle shader output and blend when using GL_RED to implement ↵Gravatar bsalomon2016-01-12
| | | | | | | | kAlpha_8_GrPixelConfig GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1584473002 Review URL: https://codereview.chromium.org/1584473002
* Create GLSLUniformHandler class for gpu backendGravatar egdaniel2015-12-03
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1490283004
* Create a static instances of SrcOver XferProcessorGravatar egdaniel2015-11-30
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1471293003
* Create GrGLSLVaryingHandler class for program buildingGravatar egdaniel2015-11-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1462123003
* 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
* Make all GrFragmentProcessors GL independent.Gravatar egdaniel2015-11-13
| | | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1434313002
* Move all ShaderBuilder files to GLSLGravatar egdaniel2015-11-11
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1438003003
* Make GrGLSLProgramBuilder base class for GrGLProgramBuilder.Gravatar egdaniel2015-11-11
| | | | | | | | | | | | | | This CL still keeps the weird diamond shape we have for all our ProgramBuilders. However, the GrGLSL base class will allow us to pull multiple other parts of our program setup away from GL which will eventually allow us to break up the diamond. As part of this all ShaderBuilder subclass have been made gl independent, however I will move them to GLSL files/class names in a follow on CL. BUG=skia: Review URL: https://codereview.chromium.org/1416423003
* Remove debug print statementGravatar egdaniel2015-11-09
| | | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1410723005
* Add addFragPosUniform to GrGLrogramBuilderGravatar egdaniel2015-11-06
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1434483002
* Move shader compiling to ProgramBuilder and various ShaderBuilder cleanups.Gravatar egdaniel2015-11-02
| | | | | | | | An additional positive of this CL is that GrGLShaderBuilder is now GL independent besides GrGLProgramBuilder BUG=skia: Review URL: https://codereview.chromium.org/1431433003
* Remove GrGLProcessor and create GrGLSLTextureSampler class.Gravatar egdaniel2015-10-29
| | | | | | | | Part ??? of separating glsl and gl BUG=skia: Review URL: https://codereview.chromium.org/1425013003
* Create GLSL base class for ProgramDataManagerGravatar egdaniel2015-10-28
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1428543003
* Move GrGLShaderVar to GrGLSLGravatar egdaniel2015-10-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1417123002
* Move shader precision modifier check onto GLSLCapsGravatar egdaniel2015-10-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1414373002
* fix up GrGLProgrambuilder precision on varyingsGravatar joshualitt2015-09-15
| | | | | | | TBR= BUG=skia:4347 Review URL: https://codereview.chromium.org/1344943002
* remove path specific program building classesGravatar joshualitt2015-09-11
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1336763003
* Start trying to collapse path program stuffGravatar joshualitt2015-09-11
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1333273003
* Remove batchtrackerGravatar joshualitt2015-09-11
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1332923003
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Remove GrStagedProcessor, remove the word Stage as it applies to FPsGravatar bsalomon2015-08-27
| | | | | | Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7 Review URL: https://codereview.chromium.org/1307223004
* Revert of Remove GrStagedProcessor, remove the word Stage as it applies to ↵Gravatar rmistry2015-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | FPs (patchset #6 id:90001 of https://codereview.chromium.org/1307223004/ ) Reason for revert: Causes bot failures: https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/1639 https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/1702 https://uberchromegw.corp.google.com/i/client.skia.android/builders/Test-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Debug/builds/1223 Original issue's description: > Remove GrStagedProcessor, remove the word Stage as it applies to FPs > > Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7 TBR=joshualitt@google.com,egdaniel@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1306803003
* Remove GrStagedProcessor, remove the word Stage as it applies to FPsGravatar bsalomon2015-08-26
| | | | Review URL: https://codereview.chromium.org/1307223004
* fixup precision with configurable atlasGravatar joshualitt2015-08-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1276383003
* Implement support for CHROMIUM_path_rendering pseudo extensionGravatar kkinnunen2015-07-14
| | | | | | | | | | | | | | | | Implement support for path rendering in Chromium through CHROMIUM_path_rendering pseudo extension. The extension defines a new pseudo-gl function, BindFragmentInputLocation. This behaves similarly to the BindUniformLocation pseudo-gl function. The idea is to assign fragment input location to a fragment input before linking the program. BUG=chromium:344330 Committed: https://skia.googlesource.com/skia/+/eeef46d181f9f8db388ecea81df699fc1b3c9280 Review URL: https://codereview.chromium.org/1192663002
* Revert of Another trivial cleanup (patchset #6 id:100001 of ↵Gravatar joshualitt2015-07-13
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1229303003/) Reason for revert: breaking things Original issue's description: > Another trivial cleanup > > TBR=bsalomon@google.com > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/52e7657cd850f95e66eb23c6d138ee45149a1039 TBR=robertphillips@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1233853004
* Another trivial cleanupGravatar joshualitt2015-07-13
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1229303003
* Revert of Implement support for CHROMIUM_path_rendering pseudo extension ↵Gravatar jvanverth2015-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #4 id:60001 of https://codereview.chromium.org/1192663002/) Reason for revert: DEPS roll failing Original issue's description: > Implement support for CHROMIUM_path_rendering pseudo extension > > Implement support for path rendering in Chromium through > CHROMIUM_path_rendering pseudo extension. > > The extension defines a new pseudo-gl function, > BindFragmentInputLocation. This behaves similarly to the > BindUniformLocation pseudo-gl function. The idea is to assign fragment > input location to a fragment input before linking the program. > > BUG=chromium:344330 > > Committed: https://skia.googlesource.com/skia/+/eeef46d181f9f8db388ecea81df699fc1b3c9280 TBR=bsalomon@google.com,joshualitt@google.com,kkinnunen@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:344330 Review URL: https://codereview.chromium.org/1223673002
* Implement support for CHROMIUM_path_rendering pseudo extensionGravatar kkinnunen2015-07-02
| | | | | | | | | | | | | | Implement support for path rendering in Chromium through CHROMIUM_path_rendering pseudo extension. The extension defines a new pseudo-gl function, BindFragmentInputLocation. This behaves similarly to the BindUniformLocation pseudo-gl function. The idea is to assign fragment input location to a fragment input before linking the program. BUG=chromium:344330 Review URL: https://codereview.chromium.org/1192663002
* Refactor separable varying location info to be stored in GrGLProgram subclassGravatar kkinnunen2015-06-29
| | | | | | | | | | | | | | | | | | | | | | | Refactor separable varying location info to be stored in GrGLProgram subclass GrGLProgram instead of storing it in GrGLPathProcessor. Separable varyings are exactly analoguous to uniforms: they are inputs to the shader program. Shader compile-time information about uniforms is gathered to GrGLProgramBuilder. This information is the converted to link-time information, uniform locations, when constructing the program. Separable varyings need to have same lifetime model. This is needed in the future to support path rendering in Chromium. The Chromium pseudo-extension will expose program fragment input binding function similar to uniform binding function. Thus the separable varying locations need to be decided and bound before link, e.g. before GrGLProgram is created. This will be achieved in further patches by overloading GrGLProgramBuilder::bindProgramResourceLocations() in GrGLNvprProgramBuilder. BUG=chromium:344330 Review URL: https://codereview.chromium.org/1186113007
* Don't call bindTexture from GrGLProgramGravatar cdalton2015-06-18
| | | | | | | | | | Updates GrGLProgram to tell the gpu object which textures it wants bound, instead of calling bindTexture directly. This begins to break its dependence on the specific GrGLGpu object. BUG=skia: Review URL: https://codereview.chromium.org/1192463003
* GLProgramsTest 3.0Gravatar joshualitt2015-05-13
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1139743002
* Make XPFragmentBuilder only Builder with access to DstCopy.Gravatar egdaniel2015-04-29
| | | | | | | | Plus a bunch of renaming. BUG=skia: Review URL: https://codereview.chromium.org/1110033004
* C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}Gravatar mtklein2015-03-25
| | | | | | | | | NOPRESUBMIT=true BUG=skia: DOCS_PREVIEW= https://skia.org/?cl=1037793002 Review URL: https://codereview.chromium.org/1037793002
* Multi-string shadersGravatar joshualitt2015-02-13
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/1c3c2d83364ee228e0751df0e1b9c161c0ba8c1e Review URL: https://codereview.chromium.org/929503002