summaryrefslogtreecommitdiffstats
path: root/src/core/ozone
Commit message (Collapse)AuthorAgeFilesLines
* Fix build errors with -no-opengl configuration5.15Michael Brüning2024-04-121-1/+3
| | | | | | | | | Add the proper compile time guards around the usages of OpenGL specific methods that were missing them. Fixes: QTBUG-123058 Change-Id: If9545b7565b69c7a4c5d183754b3750a3c6c1298 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix read-after-free on EGL extensionsAllan Sandfeld Jensen2022-05-244-13/+13
| | | | | | | | | Cache the read extensions as an std::string, since the returned C string may be not be permanent. Change-Id: I856b2b784ab4027da25996b2bf741b30cda10e05 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit fd2fc0d2a86f39d563720563555ca6319f8ab223)
* Fix leak of properties after XkbRF_GetNamesPropKirill Burtsev2021-10-141-1/+11
| | | | | | | | | | | | | Struct _XkbRF_VarDefs for XkbRF_GetNamesProp needs special cleanup logic, but it's currently missing from API: https://gitlab.freedesktop.org/xorg/lib/libxkbfile/-/issues/6 Workaround it with manual deinitialization. Change-Id: I3ebe20f58199277521b31b2cd8034c92fd1f2b7f Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit acf9d9de2bb3ac195adc257f4a307e447e171614) Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add support for Keyboard.getLayoutMap()Peter Varga2021-05-122-0/+76
| | | | | | | | | | | Pulls in the following changes: Submodule src/3rdparty 6c7b4ffb..1d3b13e9 > 1d3b13e9634 Make clang to inline load/store atomic calls for YieldSortKey struct > f6730fe81a0 Enable XkbKeyboardLayoutEngine::SetCurrentLayoutByName for Qt Fixes: QTBUG-92971 Change-Id: I0c0cddfe4d3e25fd6d3f7e0764b302c300303172 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Adaptations for Chromium 87Allan Sandfeld Jensen2021-01-134-12/+23
| | | | | Change-Id: Ic4ffd98e02f986dbaf986405360e727c813e696e Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 86Allan Sandfeld Jensen2021-01-131-0/+5
| | | | | Change-Id: I7e0ebecdbb68cfff0b574c966f3fa80d28680e1c Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 85Allan Sandfeld Jensen2021-01-131-5/+5
| | | | | Change-Id: I33c1af7c431055d95e0fb540246765cce684de15 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 84Allan Sandfeld Jensen2021-01-131-0/+5
| | | | | Change-Id: I359805d0bea84147fca6de2e2c7b17b4dcb17bc7 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix opengl headers inclusion issuesv5.15.2Michal Klocek2020-11-091-12/+2
| | | | | | | | | | | Chromium gl bindings headers get mixed with qt opengl headers. This results in GLDEBUGPROC missing definition errors. Fixes compilation for apalis-imx6 on zeus. Task-number: QTBUG-88219 Change-Id: I0a18ceff3336ab457c2d9f35ef17c28c01bbe035 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove duplicate includesAllan Sandfeld Jensen2020-09-121-10/+5
| | | | | | | Most of the includes were included twice Change-Id: Ie2967e9d8ef4799c28a856ade7318d24bac391c6 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Adaptations for Chromium 83Allan Sandfeld Jensen2020-09-096-25/+30
| | | | | Change-Id: I63ed851426b18623d549ceaf87f1b6eeec527966 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Chromium 81-based adaptationsAllan Sandfeld Jensen2020-09-095-13/+7
| | | | | Change-Id: Ie422b327025da084bc8038c7a0aadee2db801f29 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Initialize the extension bindings in g_driver_eglRomain Pokrzywka2020-06-251-0/+7
| | | | | | | | | | | This step is done in GLSurfaceEGL but missing in GLSurfaceEGLQt. The extension bindings in g_driver_egl are checked, among other things, when initializing DXVAVideoDecodeAccelerator, so we need them to enable hardware-accelerated video decoding on Windows with ANGLE. Change-Id: I6a650a0aafe3d4f870101d33d2117427c22304e7 Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Switch away from QT_NO_OPENGLAllan Sandfeld Jensen2020-05-112-6/+6
| | | | | Change-Id: I310265dacc9b1c8d391e82b6adf52b70c037d9b9 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Adaptations for Chromium 80Allan Sandfeld Jensen2020-04-075-13/+11
| | | | | Change-Id: Icaf68648cbc2c13a61fc3b208ff1e64ca36c90b6 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Fix rare crash on exit in isCreateContextRobustnessSupportedMichal Klocek2020-03-272-8/+12
| | | | | | | | | | | | | During shutdown we might need to flush the gpu buffer if root frame sink is being deleted, which needs current context, which calls isCreateContextRobustnessSupported and ends up in calling platformName() from gpu thread, which might be already destructed on ui thread. Keep context helper till gpu thread is gone. Task-number: QTBUG-79864 Change-Id: Idadc064694fe0584fb894a9405a0af80d9848626 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Replace NULL in gl_surface_qt.cppPeter Varga2020-03-261-5/+5
| | | | | | | | Fixes build error with MSVC: error C2440: 'return': cannot convert from 'int' to 'scoped_refptr<gl::GLSurface>' Change-Id: Ie24528cc98951de6863c12e1d25e3722bd20b046 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Adaptations for Chromium 79Allan Sandfeld Jensen2020-02-283-6/+15
| | | | | | | | Fixes: QTBUG-80737 Fixes: QTBUG-81556 Fixes: QTBUG-81614 Change-Id: Ie6a69cdbf46d0508bff226f1b8fed28a618e1949 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Adaptations for Chromium 78Allan Sandfeld Jensen2020-02-281-2/+2
| | | | | | | | | | Including removal of renderer service. [ChangeLog][QWebEngineSetting] XSS Auditing has been removed, and XSSAuditingEnabled no longer has any effect. Change-Id: I0835e2a76551057f3eea30a343e0373b642192f0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Request Chromium ANGLE implementation on WindowsAllan Sandfeld Jensen2019-10-251-1/+2
| | | | | | | Chromium now separates normal EGL and ANGLE OpenGL targets. Change-Id: I59555c856a6d9862dabe531dcdb53f50311b37c2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Adaptations for Chromium 77Allan Sandfeld Jensen2019-10-114-5/+32
| | | | | | Fixes: QTBUG-77267 Change-Id: I181e24cf80ebee6991b95dde6c636f0d169b40a4 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 75Allan Sandfeld Jensen2019-07-103-3/+11
| | | | | Change-Id: Idad08244e0c749a9f70f5eb9f8cd236039b941b3 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 74Allan Sandfeld Jensen2019-07-102-2/+2
| | | | | Change-Id: Icdefa05eec39c632328dfc40862e5b734170bf3f Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Remove usages of deprecated QLatin1LiteralSona Kurazyan2019-06-251-1/+1
| | | | | | Task-number: QTBUG-76491 Change-Id: I19762b1d04fd7225963ac4e0e90cac6ca01256f7 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix offscreen with glx backendPeter Varga2019-06-201-0/+3
| | | | | | | The offscreen qpa plugin doesn't set robustness for the shared context. Change-Id: I43715a2ae1b6b25876473dea4139ab76273329e7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Pass robustness support on to Chromium when supportedAllan Sandfeld Jensen2019-04-164-2/+12
| | | | | Change-Id: Ie34d36601efc743432202c2ad1f40e9837530b5e Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 73Allan Sandfeld Jensen2019-03-234-6/+50
| | | | | Change-Id: I565d1e327852110a5abebed3388d7cd6986bef06 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Merge remote-tracking branch 'origin/5.12' into 5.13Allan Sandfeld Jensen2019-03-201-1/+1
|\ | | | | | | Change-Id: If0a4c869d801fe94df23201391c30c1efc5000e0
| * Fix warning: implicit conversion of NULL constant to 'const int'Kirill Burtsev2019-03-151-1/+1
| | | | | | | | | | | | Task-number: QTBUG-74311 Change-Id: If912564ecd29e4f11a613905f2b9169326207ec2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Allan Sandfeld Jensen2019-02-151-1/+1
|\| | | | | | | Change-Id: I0822fb8a10945a252cfd1aacaf0b6d9902cc8831
| * Fix incorrect GLX pbuffer attributes terminatorKirill Burtsev2019-01-091-1/+1
| | | | | | | | | | | | | | Reland fix 04337275e4 after adaptations d5bffb5125 Change-Id: Ieca40fd2ac3d245f760c9b24e2d42d21855b836a Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Support offscreen plugin with glx backendMichal Klocek2019-02-151-3/+4
| | | | | | | | | | | | Task-number: QTBUG-63346 Change-Id: Id475c6c88f79af8cf82610a40d07eaa3f6588d7d Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Adaptations for Chromium 71Allan Sandfeld Jensen2019-01-283-11/+15
| | | | | | | | | | | | | | Change-Id: Ib650113b05dfd4771240804f94e33c07aa317bf2 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Adaptations for Chromium 70Allan Sandfeld Jensen2019-01-282-0/+4
| | | | | | | | | | | | | | Change-Id: I8bb77784dbc8a0b9debd96a4c49421bd34e6a0df Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devMichael Brüning2018-12-181-2/+3
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/core/compositor/delegated_frame_node.cpp src/core/profile_adapter.cpp src/core/profile_io_data_qt.cpp src/webengine/api/qquickwebengineprofile.cpp src/webenginewidgets/api/qwebengineprofile.cpp Change-Id: I35ec8480e758bbcb6c5942a5401cb1b6dbdcc428
| * Reinstate GetQtXDisplayAllan Sandfeld Jensen2018-11-291-2/+3
| | | | | | | | | | | | | | | | Is needed by the X11-services with no working Ozone equivalent for runtime detection of X11. Change-Id: Iac79b5e29b9a8ef92af35209f3df40eb91c738f7 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Merge branch '5.12' into devAllan Sandfeld Jensen2018-11-161-14/+4
|\| | | | | | | | | | | | | | | Conflicts: src/core/compositor/compositor.cpp src/core/compositor/compositor.h Change-Id: I8a4d73d728d93d95e499849f8778cc88dda2105e
| * Add missing refactoring for glxGetProcAddressMichal Klocek2018-11-131-14/+4
| | | | | | | | | | | | | | | | | | | | Commit 9ad3c7aa fixed regression, however refactoring which took place 9397251b is missing. Task-number: QTBUG-70696 Task-number: QTBUG-71742 Change-Id: I4ff3f5fbbd14996478299f51a3d766d2fa1a7017 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Fix GPU compositing (and WebGL) to work with ANGLE on WindowsAlexandru Croitor2018-11-121-0/+6
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given the changes that implement GPU compositing on the UI thread (and thus only a single thread accesses all OpenGL contexts) it is now possible to enable GPU compositing to work together with ANGLE, which did not work before due to ANGLE being thread-unsafe. This requires a couple of things: - Enable GPU compositing via kInProcessGPU switch when using ANGLE - A small fix in GLContextHelper::getEGLDisplay() to return a correct "egldisplay "handle - Improved logic when to pass the kDisableES3GLContext switch depending on which OpenGL ES version is requested (2 or 3) - Adjustments in RenderWidgetHostViewQtDelegateWidget() to set up a correct surface format which matches the shared context OpenGL ES major version - A recent enough version of ANGLE (due to bugs calling glTexImage2D with an unsupported internal texture format for GL_DEPTH_COMPONENT, from inside gpu::gles2::IsWebGLDrawBuffersSupported) By default if no special QSurfaceFormat is set as the default surface format, using ANGLE will create an OpenGL ES 2 context, and will thus provide support only for WebGL 1. To enable OpenGL ES 3 / WebGL 2 support, make sure to set a default QSurfaceFormat with major version set to 3, and enable ANGLE either via QT_OPENGL=angle or QGuiApplication::setAttribute(Qt::AA_UseOpenGLES). The default surface format must be set before the Q*App instance is created. Manual test "webgl" added. Task-number: QTBUG-53908 Task-number: QTBUG-55604 Task-number: QTBUG-69236 Change-Id: Ic31dfdff1ca22d4689db5cf64126d7d12790aa76 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add missing fallback for glxGetProcAddressMichal Klocek2018-11-021-1/+18
| | | | | | | | | This fallback was added in 5.11, however fell out somehow during ozone change. Fixes: QTBUG-70696 Change-Id: I68d12842e2283a25db64035e57d5a19323b4e6c0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Rename GLContextHelper::getXConfig() to getGlXConfig()Allan Sandfeld Jensen2018-10-114-5/+5
| | | | | | | It returns a GLX specific configuration, not an X-specific. Change-Id: Iecbb52b8d33c6f6f6471aec41082ecb49eaed416 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix Ozone platform detectionAllan Sandfeld Jensen2018-10-111-5/+7
| | | | | | | | | Only use GLX if GLX is used as OpenGL backend. This fixes using QtWebEngine on Linux with QT_XCB_GL_INTEGRATION=xcb_egl set, or when it automatically falls back to EGL. Change-Id: Ida95e4148e72af0d64fe16285b5007e3105ad898 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix leak which arises on querying GLOzone instance in SurfaceFactoryQtKirill Burtsev2018-10-082-16/+12
| | | | | | | | | Ownership of GLOzone instance assumed to be hold by factory, no new instance should be created on each GetGLOzone call. Task-number: QTBUG-69088 Change-Id: I7eb8575f1f35bd30292a8b4fc5ab1334ccb8e2bb Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* General adaptations for Chromium 69Allan Sandfeld Jensen2018-09-222-7/+10
| | | | | Change-Id: Ifeaf0ee13213dc5a24d2f2b4655cf7f405cddef7 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Adaptations for Chromium 68Allan Sandfeld Jensen2018-09-221-0/+1
| | | | | | Together-with: Tamas Zakor<ztamas@inf.u-szeged.hu> Change-Id: I805246b6f01cb151fff48588744408c676d87c14 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* GLOzoneEGLQt: Fix build with -no-openglJüri Valdmann2018-08-031-0/+2
| | | | | Change-Id: Ic9b10175b48f993deda77a77bbfcf22f41e31598 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Move last surface and context classes to ozoneMichal Klocek2018-08-024-0/+578
| | | | | | | | Moves last two remaining classes to ozone. Now all the context and surface handling is in ozone subdir. Change-Id: I87d4570f866b905e8f79a73d70f04bd8b21f6e1b Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Use ozone for x11Michal Klocek2018-08-028-24/+316
| | | | | | | | | | | | | | | | | | | | | Switch to use ozone also for x11/glx. This way we have a more elegant approach to hook in our gl surface classes and we use ozone for all linux qpa backends. Moreover, we have now also more fine grain control to reimplement gl surface handling logic. This also aims to fix currently broken wayland backend, but instead of patching the broken x11 calls, we simply reuse ozone which does not use x11 for ozone egl. Add webengine-x11 check to handle ozone glx plugin compilation. For ozone egl backend reimplement missing functions. Task-number: QTBUG-65682 Task-number: QTBUG-51631 Change-Id: I8b45c6f4d09a1c703efb12b6452d78ab385371ab Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Adaptations for Chromium 67Allan Sandfeld Jensen2018-06-262-1/+5
| | | | | Change-Id: I13cedba56012f74651a044d6fa8f0957487bf3eb Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Do no log pbuffer creation failure as errorMichal Klocek2018-04-171-1/+1
| | | | | | | | | The pbuffer creation with egl can fail, however this is expexted if surfaceless egl is used. Task-number: QTBUG-65682 Change-Id: I0aefda0bec3d3b4943df20697b495dba83e012a7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>