| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously some static variables were initialized by checking the value
after the variable was declared, without any guarding mutex. This could
result in multiple threads performing the initialization simultaneously.
In some cases the initialization was idempotent and innocuous, but the
pattern should be avoided, when side effects are introduced there will
be difficult-to-reproduce data races.
Pick-to: 6.10 6.9
Change-Id: I536738dca102cfd1a2a59dd8156084e07ad1922b
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
eglCreateDRMImageMESA was removed in mesa 25.2.
Keep using it where we can since this fixes support for
panthor/panfrost, otherwise fall back to the old use of EGL API.
Includes a revert of the following commits:
Revert "Create EGLImage with eglCreateDRMImageMESA() for exporting dma_buf"
This reverts commit 2ed5f9632292c6e531f353dae800cb12274af91a.
Revert "Remove leftover QOffscreenSurface from EGLHelper"
This reverts commit bcee2dbf412cc655c1b467091b581c696d234e3f.
Pick-to: 6.9 6.10 6.10.0
Task-number: QTBUG-136257
Task-number: QTBUG-139424
Change-Id: Ie115bd6373ce0a80651781aa568405477010ee25
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|
| |
|
|
|
|
|
|
| |
QUIP: 23
Fixes: QTBUG-138723
Pick-to: 6.10 6.9 6.8
Change-Id: Iac39c4d70e3887e910fe32f70e42d914a854e62d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Amends
2ed5f9632 Create EGLImage with eglCreateDRMImageMESA() for exporting dma_buf
Pick-to: 6.10 6.9
Task-number: QTBUG-136257
Change-Id: Ice4f4d58edaa7de6a55b2a621e930393803eb869
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set EGL_PLATFORM=wayland to force ANGLE to obtain EGL display connection
for wayland platform. Otherwise, the display connection for
EGL_DEFAULT_DISPLAY may belong to a platform which Nvidia's EGL driver
doesn't support. In case of unsupported platform, EGL may fallback to
Mesa software renderer (LLVMPipe) disabling hardware acceleration in
Chromium.
Pick-to: 6.10
Fixes: QTBUG-138425
Change-Id: I14250fd21e2215652d4533ca19784e2ac29cb5bb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
| |
Pick-to: 6.10
Change-Id: I9615f0a095843fdf295e454a93476cf349f7fc76
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
|
| |
Amends 18210c251 Make possible to use system EGL instead of ANGLE on Linux
Pick-to: 6.10
Change-Id: I67e83f46072d5984ceb140ac4d9cf786b057ee20
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is not the same direct EGL rendering solution what we used to have
before QtWebEngine 6.9. With this configuration, the texture is accessed
via NativePixmap instead of using shared GL context. Thus this
implementation doesn't need adaptations in Chromium.
This configuration is meant to be used for identifying ANGLE specific
issues.
Enable it with:
--webEngineArgs --use-gl=egl
Pick-to: 6.10
Change-Id: Ib8db5573b2001157eaee799c6b333f722ab87604
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This configuration disables ANGLE but it still renders with Vulkan.
Enable it with:
--webEngineArgs --enable-features=Vulkan --use-vulkan=native
--use-gl=stub
WebGL is not expected to work with this configuration since it requires
real GL API.
Pick-to: 6.10
Change-Id: I7bc292e0c131c2cebe345f70bd3163dd3e6b2972
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
NativePixmapEGLX11Binding requires the BGRA_8888 color type, use it for
the check too. The GL graphics context doesn't necessarily mean that we
need BGRA.
Pick-to: 6.10
Change-Id: I41a4f1f6da94c10f8e6843e6edfed913bb98fabd
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This simplifies the code because it is not needed to create OpenGL
texture to allocate buffer. This way we can get rid of creating a
temporary OpenGL context and swapping EGLSurface.
Moreover, eglCreateImage() does not guarantee that the buffer is
shareable thus certain GPU drivers may fail to export.
Pick-to: 6.9
Fixes: QTBUG-136257
Done-with: Jan Palus
Change-Id: Ie72d052a2a8b1a41bebf0eab8a4928d38c8fc864
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Jan Palus <jpalus@fastmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
List it on demand instead of in constructor. It is not used if
dma-buf/GBM/NativePixmap is disabled.
This fixes fatal error when glXChooseFBConfig() fails to return
configuration in XWayland with Nvidia driver.
Fixes: QTBUG-135647
Pick-to: 6.9
Change-Id: Iab10f6f0cdff54732a2dee8d201f1e3b14146b0e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The EGL_EXT_image_dma_buf_import display extension is not available for
non EGL display thus importing NativePixmap with EGL is not possible.
Make possible to import NativePixmap as X11 pixmap.
This makes
--webEngineArgs --use-gl=angle
--webEngineArgs --use-gl=angle --use-angle=default
--webEngineArgs --use-gl=angle --use-angle=gl
configurations work on Linux.
Pick-to: 6.8 6.9
Task-number: QTBUG-129769
Task-number: QTBUG-133570
Change-Id: Ic6a40de373c5fd27c62abc3effb2f3ddee9210a8
Reviewed-by: Moss Heim <moss.heim@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
| |
Pick-to: 6.8 6.9
Fixes: QTBUG-135047
Change-Id: I42b6387407551079241350661adadedf7d71a303
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Also use qUtf16Printable() where appropriate.
As a drive-by, replace ::GetLastError() with
QSystemError::windowsComString() to get meaningful error messages
instead of error codes on Windows.
Pick-to: 6.8 6.9
Change-Id: I23e8a9b6b419f692dfd719f38c9a8a39086dffd2
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Guard new GLXHelper usage after
a3604e0a4 Disable dma-buf and GBM for nvidia with GLX
As a drive-by, add more QT_CONFIG(xcb_glx_plugin) guard where
OzoneUtilQt::usingGLX() is called to check if Qt GLX integration is
available.
Pick-to: 6.9
Change-Id: I45df5e235f7f98910eedd77e2480d41561105807
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes rendering with newer Nvidia drivers on Linux.
- Make memory object dedicated to match Vulkan allocation
- Set tiling of the GL texture to match VkImage tiling
- Make the TexStorage command non-DSA to uniform GL calls
Amends 8ce04357b4ce39b8c4c2243991eae70f78f9b61b
Pick-to: 6.8 6.9
Change-Id: I43e953412acf6d39b67dcd8af02aac4003fc5c8e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It is already disabled with EGL.
Checking the existence of a GBM device is just not enough. It is
possible to create GBM device and buffer with nvidia driver but it
will not work.
Pick-to: 6.8 6.9
Change-Id: I3806594371d3e266d499bdc396c8f2a4ca17580d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Factor GBM support detection out to avoid repetitive Nvidia checks.
Also add QTWEBENGINE_FORCE_USE_GBM environment variable to be able to
force disable/enable GBM and dma-buf code paths for debugging
purposes. Setting the variable to 0 force disables GBM, setting any
other integer value force enables it.
Pick-to: 6.8 6.9
Change-Id: I39fc0161467a6a8d86dd9f380be3bfb2018aa4e6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per qtbase/src/opengl/qopengldebug.cpp:
If you try to clear the error stack, make sure not just keep going until
GL_NO_ERROR is returned but also break on GL_CONTEXT_LOST as that error
value will keep repeating.
Do this, and don't report CONTEXT_LOST as it will trigger the assert
later anyway. Also remove the superfluous _KHR suffix from some error
codes and names.
Pick-to: 6.9
Task-Id: QTBUG-132608
Change-Id: I5fec080769b60470cadcbcfa72ffcd7764646da8
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The assert at the end of texture() is intended to catch programming
errors which are our responsibility, but also aborts on a minor invalid
operation in qtbase. Log and clear openGL error flags at the start of
the function to limit the assert to guarding only our code.
This also introduces getGLErrorString to log the flag names.
Fixes: QTBUG-132608
Pick-to: 6.9
Change-Id: I6e7cb9e61757d0290c9cf1bfa5b98a4ffb3e1d52
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We still not support it but we switched to ANGLE rendering by default
and it does not request multiplanar Native Pixmaps yet.
Direct Vulkan rendering still requests it for video playback but
multiplanar format is now disabled for GLX and EGL backends in
SurfaceFactoryQt::CanCreateNativePixmapsForFormat().
Change-Id: Ice24f052d92e304432b1aa6ce44bc97c7203c9d3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
From now on, the only supported GL backend for Chromium on Linux is
ANGLE.
Also disables V8 context snapshot for Debug builds.
Task-number: QTBUG-112281
Change-Id: I858151db01af355c15a76cb16e8680db75f75b89
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
| |
Pick-to: 6.8
Change-Id: I4c48a6d14df6eeb5b7dba0b82c9812fbc5ff4f39
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Get rid of Chromium's xcb and GL bindings to reduce Chromium dependency.
This change also adds system xcb-dri3 dependency for the
webengine-ozone-x11 build.
Change-Id: Id84ac7c6bb3504e510447a081121b83ca91d61f3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
| |
GLHelper class is just for consistency. This change factors out the
OpenGL extension function bindings.
Change-Id: I546b7f7813c62c00ff42c430e9b9669223eb477e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
| |
Also clean up EGL guards.
Change-Id: Ic9cab5d5bf1b15e3be25e482042d155025d54bdd
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
REUSE.toml files are read by reuse to complement or override the
copyright and licensing information found in file.
The use of REUSE.toml files was introduced in REUSE version 3.1.0a1.
This reuse version is compatible with reuse specification
version 3.2 [1].
With this commit's files,
* The SPDX document generated by reuse spdx conforms to SPDX 2.3,
* The reuse lint command reports that the Qt project is reuse compliant.
In order to be reuse compliant all the licenses referenced in file
or within a REUSE.toml file must be present in the LICENSES
directory at the base of the module.
The missing licenses are added.
[1]: https://reuse.software/spec-3.2/
Task-number: QTBUG-124453
Task-number: QTBUG-125211
Pick-to: 6.8
Change-Id: Ic8c34b884bae1151f5d912f375bf87378e6e9a3d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
This is a preliminary step to remove dependency on obsoleted GLX
implementation of Chromium.
Also replace remaining USE_OZONE guards with IS_OZONE.
Task-number: QTBUG-112281
Change-Id: I611214d019f88dc7f8b5dc0e388ed0a20ba7f0fe
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This change gets rid of the old WGL code path for
QSG_RHI_BACKEND=opengl. From now on, the only supported backend on
Windows for Chromium is ANGLE.
Change-Id: I7bb73ee18772bcc41d3be8e41fba5b8bccbb05eb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
| |
Change-Id: If920f024c9f8fe18a9f22fa97b8fb5564dfa3b61
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I85322cc014b9d360d844df700a9fa6fe32a756d3
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Add missing egl guards, keep linker happy.
Change-Id: I02eb162103645b917688e29c43aa29d20b44e251
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
(cherry picked from commit 65843741c9ff777c1e43f43466ec6b3c6bd55469)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Otherwise it crashes on gl::GLContextEGL::Initialize() with
nullptr access. It is not yet clear under what conditions we
cannot create a compatible surface, but it may somehow happen
on some older AMD GPUs.
Task-number: QTBUG-128308
Pick-to: 6.8 6.7
Change-Id: I24845c4a6785872f1b3ff56adacaa2a6cef0e5f7
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Deals with:
"error: operands to '?:' have different types 'intptr_t' {aka 'long
int'} and 'EGLNativeDisplayType' {aka 'wl_display*'}"
Pick-to: 6.8
Task-number: QTBUG-126655
Change-Id: I62b2369b2dff2b7a2929a91d59cde4d24b8c2398
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
| |
Keep some of them for WGL on Windows.
Pick-to: 6.8
Change-Id: Ib10c0fac2fca4f548efc12e573b79838749f62fa
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
| |
Pick-to: 6.8
Change-Id: I12e88207e1c0c0ece99cf7afd00c555af96bd31f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Native EGL/GLES2 is no longer an allowed GL implementation on Windows
since https://crrev.com/c/1686700
Pick-to: 6.8
Change-Id: Ic4e74c7f929341ddc42c1db19ea3834caecbe4ca
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Enable it with: --webEngineArgs --use-gl=angle --use-angle=gl-egl
Pick-to: 6.8
Task-number: QTBUG-112281
Change-Id: I224bbcb486489450635010400053318f3ec04c97
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
In case of ANGLE, the gl::GLContext::MakeCurrent() makes the ANGLE
context current and not the underlying native context. Use native
eglMakeCurrent() instead.
Pick-to: 6.8
Change-Id: I84a0cb77478e906ad8926db8813b0c3386521bf3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Their usage was removed by
caf5f383a Fix building on Windows and macOS with chromium EGL
Pick-to: 6.8
Change-Id: I1e707a6976a1acd28081964cea6571dde6ea7979
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes vaapi for EGL backend. b_EGL_MESA_image_dma_buf_export
setting has to be initialized because vaapi uses the
EGL_MESA_image_dma_buf_export extension.
Also override the extension settings with our own capability check
results.
If EGL_EXT_create_context_robustness extension is not overridden it may
cause EGL_BAD_MATCH error when creating EGL context.
Pick-to: 6.8
Change-Id: I29d4b2203f14131ffd1781f8b24c1e4e5752ffe7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Includes following patches:
* 340b36c Bind SpellCheckHost to a RenderFrameHost
* f154285 Fix chrome://ukm webui after 122 update
* 3e67d86 Adapt datalist test to new Chromium behavior after 122 adaptations
* 76b532e Fix test failures in tst_accessibility
* 8a9ecf5 Adapt IME test to new Chromium behavior after 122 adaptations
* d65cd90 Fix to resolve the DCHECK failure during download operation
* e956d1d Ensure DelegatedFrameHost's frame sink ID is registered
Done-With: Anu Aliyas, Kaloyan Chehlarski, Martin Negyokru, Peter Varga
Pick-to: 6.8
Change-Id: Ic5e8c0457c1633af18a8e11785041ab423e9362e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
| |
Pick-to: 6.8
Change-Id: I487d2c6cf56fdda5fb95e6b2715e7dbc42527c2d
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Size variable was shadowed
Pick-to: 6.7
Change-Id: I74afaa32942a149b56c8fe6e0813e4a1794e1d1a
Reviewed-by: Anu Aliyas <anu.aliyas@qt.io>
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The VideoRenderer tries to create VideoFrames backed by native
textures if possible. This leads to a crash or assert if GBM and
NativePixmaps are not supported. Replace the corresponding asserts with
early returns. The renderer is able to handle the case when
NativePixmaps couldn't been created.
Also disable native texture backed VideoFrames for Nvidia by default to
avoid this code path.
Pick-to: 6.7
Change-Id: I5f271af99875dfbc28350c6d76d3bf7a1a697b9f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
| |
Pick-to: 6.7
Change-Id: I755ba82d43b3c67f7218ff2c3e5c8a5f819b2d64
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Also store if dma-buf creation was successful to avoid to switch
OpenGL contexts unnecessarily.
Pick-to: 6.7
Fixes: QTBUG-124790
Fixes: QTBUG-124635
Change-Id: I14607a3d6317568c43dee9671da78192516b23d5
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit 363cf5a13fdfa51d345ca2538daeb37941b5a528)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
| |
Pick-to: 6.7
Change-Id: Ibb6cb75a25f9b6d69ec03bc2c6734a869ab21899
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Replace GBM API usage with using dma_buf import/export EGL extensions.
Pick-to: 6.7
Change-Id: I0b332f084d1ada8b7ed58472f546b91628b9d771
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|