aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/GrGLCaps.cpp
Commit message (Collapse)AuthorAge
* Revert of Enable stencil clipping in mixed sampled render targets (patchset ↵Gravatar cdalton2015-11-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | #6 id:100001 of https://codereview.chromium.org/1232103002/ ) Reason for revert: Co-centered sample locations are not needed to do stencil clip with mixed samples Original issue's description: > Implement stencil clipping in mixed sampled render targets > > This change enables multisampled clipping for mixed sampled > render targets. Previously clipping in mixed samples config > behaved the same as in the gpu config. > > In order to retrofit non-MSAA draw methods, programmable sample > locations are used in order to colocate all samples at (0.5, 0.5). > Requires support for NV_sample_locations. > > BUG=skia:4399 > > Committed: > https://skia.googlesource.com/skia/+/3e77ba96d56d15db30ac6d8ccb900e30aafcbb16 BUG=skia: Review URL: https://codereview.chromium.org/1415873011
* Revert of Fix setColocatedSampleLocations on ES and GL < 4.5 (patchset #2 ↵Gravatar cdalton2015-11-11
| | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1415503008/ ) Reason for revert: Co-centered sample locations are not needed to do stencil clip with mixed samples. Original issue's description: > Fix setColocatedSampleLocations on ES and GL < 4.5 > > Updates setColocatedSampleLocations to use glFramebufferParameteri > when > the DSA version glNamedFramebufferParameteri is not present. > > BUG=skia: > > Committed: > https://skia.googlesource.com/skia/+/98cad6219b430eddf5528473311279f21dbd2e10 BUG=skia: Review URL: https://codereview.chromium.org/1420883007
* 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
* Revert of Fix mixed samples stencil clip (patchset #5 id:80001 of ↵Gravatar cdalton2015-11-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1431593006/ ) Reason for revert: Co-centered sample locations are not needed to do stencil clip with mixed samples. Original issue's description: > Fix mixed samples stencil clip > > Fixes rendering bugs and nondeterminism in gm. > > Before, mixed samples stencil clip would try to infer whether the draw > wanted co-centered sample locations from within GrGLGpu, which caused > various errors. This change reworks it so the draw itself can request > the co-centered sample locations when it knows it will need them. > > Also reduces framebuffer binds by moving the code that enables > GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS into flushRenderTarget. > > Committed: https://skia.googlesource.com/skia/+/14184d5567b58085b6d8a6375796d405056f7f73 TBR=bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1407063011
* Fix mixed samples stencil clipGravatar cdalton2015-11-09
| | | | | | | | | | | | | | Fixes rendering bugs and nondeterminism in gm. Before, mixed samples stencil clip would try to infer whether the draw wanted co-centered sample locations from within GrGLGpu, which caused various errors. This change reworks it so the draw itself can request the co-centered sample locations when it knows it will need them. Also reduces framebuffer binds by moving the code that enables GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS into flushRenderTarget. Review URL: https://codereview.chromium.org/1431593006
* Comments Style: s/skbug.com/bug.skia.org/Gravatar halcanary2015-11-07
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1432503003 Review URL: https://codereview.chromium.org/1432503003
* Loosen requirements for mixed samples supportGravatar cdalton2015-11-06
| | | | | | | | | | | | Quits requiring EXT_raster_multisample and NV_sample_mask_override_coverage for mixed samples support. This will allow platforms without those latter extensions (i.e. Chrome) to still use mixed samples for path rendering. Also moves the mixed samples cap out of shader caps, since it no longer denotes shader functionality. BUG=skia: Review URL: https://codereview.chromium.org/1410383011
* Create swizzle table inside of glsl capsGravatar egdaniel2015-11-04
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/4036674952f341dab0695c3b054fefa5bb8cdec1 Review URL: https://codereview.chromium.org/1420033005
* Revert of Create swizzle table inside of glsl caps (patchset #12 id:210001 ↵Gravatar egdaniel2015-11-03
| | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1420033005/ ) Reason for revert: Breaking gm's on nexus7 and s3 Original issue's description: > Create swizzle table inside of glsl caps > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/4036674952f341dab0695c3b054fefa5bb8cdec1 TBR=bsalomon@google.com,robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1426653008
* Fix setColocatedSampleLocations on ES and GL < 4.5Gravatar cdalton2015-11-03
| | | | | | | | | Updates setColocatedSampleLocations to use glFramebufferParameteri when the DSA version glNamedFramebufferParameteri is not present. BUG=skia: Review URL: https://codereview.chromium.org/1415503008
* Create swizzle table inside of glsl capsGravatar egdaniel2015-11-03
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1420033005
* 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 min texture size supportGravatar bsalomon2015-10-28
| | | | | | BUG=skia:4524 Review URL: https://codereview.chromium.org/1430643002
* Disable CHROMIUM_bind_uniform_location due to a spec bugGravatar kkinnunen2015-10-28
| | | | | | | | | | | | | | | | | | | | Bound uniforms that are optimized away causes GL errors when they are used. The bound location becomes unused if its bound uniform is optimized away. Updating the inactive uniform using the bound location causes a GL error from the command buffer. Alternatively, command buffer may bind another free, unbound uniform to the bound location. This causes the uniform update to update the wrong uniform. Disable the extension until the spec can be clarified and the implementation fixed, if possible and needed. BUG=skia:4454 Review URL: https://codereview.chromium.org/1417633008
* Fix GLCaps order for CoreProfileGravatar egdaniel2015-10-26
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1417503005
* Fix gl caps for mixed sample supportGravatar egdaniel2015-10-26
| | | | | | | | | | The dependencies between glsl caps and some gl ones were more complex than I had thought with original change especially in regards to mix samples, advanced blends, and similar features. This changes simply reverts back to the original order of setting the caps so it should fix all perf issues that were seen in the X1 BUG=skia:4505 Review URL: https://codereview.chromium.org/1420423002
* Disable MIP mapping on PowerVR 54x. This GPU spews a lot of errors when ↵Gravatar bsalomon2015-10-26
| | | | | | | | using GenerateMipMaps. BUG=skia:4514 Review URL: https://codereview.chromium.org/1414743008
* Force the s4 to use highp for transforming to NDSGravatar egdaniel2015-10-22
| | | | | | | | | | This seems to fix some rendering issues. Currently this will use highp for all draws on the s4, but if we see perf issues we can refine this later to specific types of draws. BUG=skia: Review URL: https://codereview.chromium.org/1419593003
* Fix force high precision for arm gpusGravatar egdaniel2015-10-22
| | | | | | | | | This fixes a bug introduced by recent changes to GLSL caps. TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1422553004
* Add version string and force highp NDS transfrom to GLSLCapsGravatar egdaniel2015-10-22
| | | | | | | | | | This also include the use of any() in the shaders. BUG=skia: Committed: https://skia.googlesource.com/skia/+/cef4bce8e260b49bf3417eadbac806cf7d39cdc8 Review URL: https://codereview.chromium.org/1417993004
* Revert of Add version string and force highp NDS transfrom to GLSLCaps ↵Gravatar egdaniel2015-10-22
| | | | | | | | | | | | | | | | | | | | | | | | (patchset #3 id:40001 of https://codereview.chromium.org/1417993004/ ) Reason for revert: breaking bots Original issue's description: > Add version string and force highp NDS transfrom to GLSLCaps > > This also include the use of any() in the shaders. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/cef4bce8e260b49bf3417eadbac806cf7d39cdc8 TBR=bsalomon@google.com,jvanverth@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1420033002
* Add version string and force highp NDS transfrom to GLSLCapsGravatar egdaniel2015-10-22
| | | | | | | | This also include the use of any() in the shaders. BUG=skia: Review URL: https://codereview.chromium.org/1417993004
* Move shader precision modifier check onto GLSLCapsGravatar egdaniel2015-10-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1414373002
* Fix for 2056Gravatar joshualitt2015-10-01
| | | | | | BUG=skia:2056 Review URL: https://codereview.chromium.org/1376293003
* Implement stencil clipping in mixed sampled render targetsGravatar vbuzinov2015-09-30
| | | | | | | | | | | | | | This change enables multisampled clipping for mixed sampled render targets. Previously clipping in mixed samples config behaved the same as in the gpu config. In order to retrofit non-MSAA draw methods, programmable sample locations are used in order to colocate all samples at (0.5, 0.5). Requires support for NV_sample_locations. BUG=skia:4399 Review URL: https://codereview.chromium.org/1232103002
* disable kIndex_8 gpu support for now -- seems to always be slowerGravatar reed2015-09-14
| | | | | | BUG=skia:4333 Review URL: https://codereview.chromium.org/1339103002
* Calculate pixel config and stencil fmt pairs once per pixel config.Gravatar egdaniel2015-09-10
| | | | | | | | | | We use a temp FB and stencil buffer to test different stencil formats with a given pixel config. We then keep a map from pixel config to desired stencil format. BUG=skia: Review URL: https://codereview.chromium.org/1317443004
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Style Change: SkNEW->new; SkDELETE->deleteGravatar halcanary2015-08-26
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316123003 Review URL: https://codereview.chromium.org/1316123003
* Add ANGLE workaround to prefer flushes over VRAM usageGravatar robertphillips2015-08-20
| | | | | | | | | | | On the whole, https://codereview.chromium.org/1286203002/ (Defer flushes if kPreferNoIO is specified) improved performance but it did cause a performance regression on ANGLE. This CL disables the deferral of flushes on ANGLE until we can add a separate incremental flushing mechanism. TBR=bsalomon@google.com BUG=skia:4201 BUG=521529 Review URL: https://codereview.chromium.org/1287193008
* Use calloc to allocate data that will be uploaded to vertex/index buffers in ↵Gravatar bsalomon2015-08-19
| | | | | | | | | Chrome BUG=chromium:454267 BUG=chromium:522315 Review URL: https://codereview.chromium.org/1300123002
* Move some work from backend onClear to base class clearGravatar egdaniel2015-08-06
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1275543005
* Make ANGLE perf decisions be runtime rather than compile timeGravatar bsalomon2015-07-31
| | | | | | R=robertphillips@google.com Review URL: https://codereview.chromium.org/1268953002
* Implement support for dual source blending in ESGravatar kkinnunen2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | Use EXT_blend_func_extended to implement dual source blending in OpenGL ES. The extension is the ES version of ARB_blend_func_extended. The extension provides gl_SecondaryFragColorEXT for ES 2.0 contexts. The extension provides glBindFragDataLocationIndexed to bind a custom fragment shader output to the secondary color for ES 3.0 contexts. For ES 3.1 contexts, the extension would also give "layout (location=0, index=1)" output varible layout modifier syntax, but it is not used in this patch. The extension needs #extension GL_EXT_blend_func_extended : require directive for the variables to be available in ES 2.0. For ES 3.0, the directive relaxes the rules for the amount of output variables without layout location qualifiers. OpenGL continues to use GL_ARB_blend_func_extended for dual source blending. Review URL: https://codereview.chromium.org/1266773003
* Make it possible to toggle MSAA for ES (EXT_multisample_compatibility)Gravatar kkinnunen2015-07-30
| | | | | | | | | | | | | | | Make it possible to turn MSAA on and off for OpenGL ES, too. Use EXT_multisample_compatibility. The extension adds token: MULTISAMPLE_EXT 0x809D The token can be supplied to glEnable/glDisable/glGetInteger. This is needed in order to support mixed samples in OpenGL ES. This is important for path rendering Chromium command buffer integration. Review URL: https://codereview.chromium.org/1270533002
* Disable SRGB support on PowerVR Rogue due to SRGBReadWritePixels failureGravatar bsalomon2015-07-30
| | | | | | | TBR=jvanverth@google.com BUG=skia:4148 Review URL: https://codereview.chromium.org/1266933002
* SRGB read and write pixels working and unit testGravatar bsalomon2015-07-30
| | | | Review URL: https://codereview.chromium.org/1264003002
* 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
* Workaround for blacklist KHR_blend_equation_advanced on ARM GPUGravatar joel.liang2015-07-09
| | | | | | | | | | ARM driver will check the fragment shader compatiblity for KHR_blend_equation_advanced even if blending is disabled. Workaround: Set blending equation to any basic equation when we disable blending. https://code.google.com/p/skia/issues/detail?id=3943 BUG=skia:3943 Review URL: https://codereview.chromium.org/1216963004
* 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
* Cleanup legacy NVPR-related definitionsGravatar kkinnunen2015-07-01
| | | | | | | | | | | | | | | | | | | | | | | | Fixed-function NVPR codepaths were removed a while ago. Only NVPR API version 1.3 (PathFragmentInputGen) was left working. Remove backwards-compatibility code that was left behind. Remove some NVPR API function typedefs that were left from initial commits. Remove PathCoords function pointer from GrGLInterface, it has never been called and causes problems in the future, since it will not be implemented in the Chromium pseudo extension. Avoid failing interface creation even if nvprmsaaXX config is requested but the driver is not recent enough. The SAN bots have old driver, but try to run nvprmsaa16 configs. Instead, print out a warning. Committed: https://skia.googlesource.com/skia/+/fb8d6884e0e01d0c2f8596adf5af1efb0d08de7e Committed: https://skia.googlesource.com/skia/+/e35b5d99d8dfcc6b2be844df28cba47436380809 Review URL: https://codereview.chromium.org/1177243004
* Revert of Cleanup legacy NVPR-related definitions (patchset #4 id:60001 of ↵Gravatar jvanverth2015-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1177243004/) Reason for revert: Breaks the Ubuntu *SAN bots. Original issue's description: > Cleanup legacy NVPR-related definitions > > Fixed-function NVPR codepaths were removed a while ago. Only NVPR API > version 1.3 (PathFragmentInputGen) was left working. Remove > backwards-compatibility code that was left behind. > > Remove some NVPR API function typedefs that were left from initial > commits. > > Remove PathCoords function pointer from GrGLInterface, it has > never been called and causes problems in the future, since it will > not be implemented in the Chromium pseudo extension. > > Committed: https://skia.googlesource.com/skia/+/fb8d6884e0e01d0c2f8596adf5af1efb0d08de7e > > Committed: https://skia.googlesource.com/skia/+/e35b5d99d8dfcc6b2be844df28cba47436380809 TBR=joshualitt@google.com,cdalton@nvidia.com,bsalomon@google.com,kkinnunen@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1219663005
* Cleanup legacy NVPR-related definitionsGravatar kkinnunen2015-06-30
| | | | | | | | | | | | | | | | | Fixed-function NVPR codepaths were removed a while ago. Only NVPR API version 1.3 (PathFragmentInputGen) was left working. Remove backwards-compatibility code that was left behind. Remove some NVPR API function typedefs that were left from initial commits. Remove PathCoords function pointer from GrGLInterface, it has never been called and causes problems in the future, since it will not be implemented in the Chromium pseudo extension. Committed: https://skia.googlesource.com/skia/+/fb8d6884e0e01d0c2f8596adf5af1efb0d08de7e Review URL: https://codereview.chromium.org/1177243004
* add drawArraysInstanced to capsGravatar joshualitt2015-06-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1202383006
* Turn off buffer mapping in ChromiumGravatar bsalomon2015-06-26
| | | | | | BUG=chromium:496224 Review URL: https://codereview.chromium.org/1211363006
* Move GLSL-specific routines/classes to separate glsl directoryGravatar jvanverth2015-06-24
| | | | | | | The purpose is to begin separating our GLSL-specific code from our GL-specific code, so it can be used with the GL45 platform Review URL: https://codereview.chromium.org/1202293002
* Refactor GrBufferAllocPools to use resource cacheGravatar robertphillips2015-06-24
| | | | | | Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a Review URL: https://codereview.chromium.org/1139753002
* Revert of Refactor GrBufferAllocPools to use resource cache (patchset #15 ↵Gravatar robertphillips2015-06-23
| | | | | | | | | | | | | | | | | | | id:280001 of https://codereview.chromium.org/1139753002/) Reason for revert: Will reland after Chromium branch Original issue's description: > Refactor GrBufferAllocPools to use resource cache > > Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a TBR=bsalomon@google.com,joshualitt@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1204773003
* Refactor GrBufferAllocPools to use resource cacheGravatar robertphillips2015-06-23
| | | | Review URL: https://codereview.chromium.org/1139753002