summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libANGLE/renderer/d3d
Commit message (Collapse)AuthorAgeFilesLines
* Remove ANGLELaszlo Agocs2020-05-26182-70447/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This marks the end of EGL and OpenGL ES support on Windows. The concepts of -opengl dynamic, -opengl desktop, QT_OPENGL=software, etc. remain unchanged, with the exception of the disapperance of everything ANGLE related. CMake builds now work identically to qmake on Windows: they default to 'dynamic' OpenGL on Windows, unless -DINPUT_opengl=desktop is specified. On Windows, Qt 6 is expected to default to the "dynamic" OpenGL model by default, just like Qt 5.15. This can be changed by switching to "desktop" OpenGL, which will link to opengl32 (publicly, so other libs and applications will do so as well) and disallows using another OpenGL DLL. The "dynamic" mode is essential still because the fallback to a software rasterizer, such as the opengl32sw.dll we ship with the Qt packages, has to to work exactly like in Qt 5, the removal of ANGLE does not change this concept in any way (except of course that the middle option of using ANGLE is now gone) When it comes to the windows plugin's OpenGL blacklist feature, it works like before and accepts the ANGLE/D3D related keywords. They will then be ignored. Similarly, requesting QT_OPENGL=angle is ignored (but will show a warning). The D3D11 and DXGI configure time tests are removed: Qt 5.14 already depends on D3D 11.1 and DXGI 1.3 headers being available unconditionally on Win32 (in QRhi's D3D11 backend). No need to test for these. [ChangeLog][Windows] ANGLE is no longer included with Qt. Dynamic OpenGL builds work like before but ANGLE is no longer an option. OpenGL proper or an alternative opengl32 implementation are the two remaining options now. Attempting to set QT_OPENGL=angle or Qt::AA_UseOpenGLES will have no effect on Windows. Fixes: QTBUG-79103 Change-Id: Ia404e0d07f3fe191b27434d863c81180112ecb3b Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* ANGLE: d3d11: Do not register windows message hooks for d3d11 windowsOliver Wolff2020-04-021-2/+2
| | | | | | | | | | | | | | | | These message hooks are used to handle ALT+ENTER to enter/exit fullscreen mode and PRINTSCREEN to take screenshots. Qt is implementing these functionalities itself so we do not have to register these hooks. If too many of these hooks are registered, callbacks are no longer called and Qt's message queue is no longer handling messages. By saving these hooks we can make sure that more Qt windows at the same time are possible without getting unresponsive due to too many hooks being registered. Change-Id: I5354f91f08cbfeda5e8dc3ad7f824fbd5b3b2932 Reviewed-by: Dominik Holland <dominik.holland@qt.io> Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* ANGLE: Fix resizing of windows (Take 2)Oliver Wolff2020-03-241-1/+1
| | | | | | | Task-number: QTBUG-62475 Change-Id: I0ea17e7875906508941ae64bb396a4236928b0f9 Reviewed-by: Miguel Costa <miguel.costa@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* ANGLE: Fix severe performance regressionOliver Wolff2020-03-121-1/+1
| | | | | | | | | | The changed buffer usage priority that was introduced in our ANGLE update caused severe performance regressions for Qt applications. Fixes: QTBUG-73835 Change-Id: I49839bb272cdeec0027264f2751b88bc149665ad Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Miguel Costa <miguel.costa@qt.io>
* ANGLE: Invalidate client window area when resizing swap chainVal Doroshchuk2019-06-211-0/+4
| | | | | | | | | | | | | | | | | | | | Inspired by: https://codereview.appspot.com/6812076/ Resizing a window larger results in the newly exposed region being invalidated but the old region is treated as valid. This can result in the old region no longer updating. Was added to D3D9. Improving a fix from Filippo Cucchetto: https://codereview.qt-project.org/c/qt/qtbase/+/195336 and pushing to D3D11. ifndef protects against compilation error for WinRT. Invalidate() should be used only for desktop apps. Task-number: QTBUG-46074 Change-Id: Ie24b8dffe130b970f2362337ac4f9bee666f82b2 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Revert "Fix compilation with icc, converting between egl's and gl's Error types"Oliver Wolff2019-03-201-2/+1
| | | | | | | | | | | | | The patch causes an Assert on close and thus cannot be used as is. I do not have ICC available to try to come up with an alternative solution so the patch is reverted for the time being. This reverts commit 93a78799c3df7c8859b2d9addad45bb4a535dc97. Fixes: QTBUG-74467 Change-Id: Ic572dfa667a479686675eb3f9066d133657b4499 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Yuhang Zhao <2546789017@qq.com>
* Fix compilation with icc, converting between egl's and gl's Error typesYuhang Zhao2019-02-181-1/+2
| | | | | | | | | | | | | | Each has two constructors from the other, one copying the other moving; and this leads to an ambiguous overload when converting Texture::onDestroy()'s gl::error to the egl::Error that gl::Context::onDestroy() returns. Passing the value through a temporary prevents the move-constructor from being attempted and saves the day. Thanks to Ville Voutilainen for suggesting the fix. Fixes: QTBUG-73698 Change-Id: I628173399a73cee2e253201bc3e8d3e6477a2fbf Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* ANGLE: Dynamically load D3D compiler from a listOliver Wolff2018-12-111-0/+25
| | | | | | | | | | | | If the default compiler cannot be found, load it from a list of DLL names, including a non-versioned proxy DLL provided by Qt. On Desktop Windows, the default compiler can also be specified by an environment variable, QT_D3DCOMPILER_DLL. Change-Id: I590bb11e58339451d187860c449b0209c1ca0578 Reviewed-by: Dmitry Kazakov <dimula73@gmail.com> Reviewed-by: Andre de la Rocha <andre.rocha@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Update ANGLE to chromium/3280Miguel Costa2018-10-13204-30997/+35474
| | | | | Change-Id: I0802c0d7486f772d361f87a544d6c5af937f4ca1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* ANGLE: Fix resizing of windowsOliver Wolff2017-12-131-10/+10
| | | | | | | | | | | | Use the correct height/width values when calculating the vector for resizing the window content and the new size as viewport size. Task-number: QTBUG-62475 Change-Id: I33a8dc1379a908e991b04bc31dfc6254a6d005c9 Reviewed-by: Andre de la Rocha <andre.rocha@qt.io> Reviewed-by: Miguel Costa <miguel.costa@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* ANGLE: D3D11: Fix shared handle support detection for WARP when MinGW is usedOliver Wolff2017-11-301-1/+1
| | | | | | | | | | | | The MinGW version we support supports IsWindows8OrGreater so that we can check the windows version properly. As the OpenGL detection falls back to WARP in case of RDP it was possible, that shared handles were wrongly stated as supported, which caused crashes in users' code. Task-number: QTBUG-64657 Change-Id: Iaca2bd169f2764cf6ec68a1d36112a735246b29a Reviewed-by: Andre de la Rocha <andre.rocha@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* ANGLE: Fix build for newer MinGW versionsOliver Wolff2017-08-021-1/+1
| | | | | | | | | | | Availability of D3D11_QUERY_DATA_TIMESTAMP_DISJOINT depends on the used MinGW version so that the check for MINGW is not sufficient. The newly added configure test can be used for every toolset. Task-number: QTBUG-57916 Change-Id: Ia9cb48f3e673841101a93cbc8ea23aff9547f639 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* ANGLE: Fix flickering on resize when D3D9 is usedOliver Wolff2017-07-032-0/+91
| | | | | | | | | | | By reverting ANGLE change d3b84ab51db09de238459b0dff2e8420c09aabf3 we get rid of the flickering that happens on resize when D3D9 is used. The issue that was fixed there is not relevant in Qt's context so it is safe to revert the change. Task-number: QTBUG-59893 Change-Id: I9306314b892612fbd1f7a058a2e606aedc0367bb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* ANGLE: Fix initialization of zero-sized windowMaurice Kalinowski2016-08-171-2/+2
| | | | | | | | | | | The clientRect might be empty when creating a window of zero size. The side effect of a division by zero is that matrix transformation fails and hence the swapchain gets into an invalid state. Change-Id: Idbaed72deadb7b87052ac27e194a40d1810e6f7a Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* ANGLE: fixed usage of shared handles for WinRT/WinPhone applicationsOliver Wolff2016-05-201-0/+3
| | | | | | | | Both checks are not relevant in Qt's context and were skipped before but they sneaked back in with the latest ANGLE update. Change-Id: Ic44de5468a3254afd76ef4804d97d245676daeb1 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Fix MinGW 5.3.0 build of ANGLEOliver Wolff2016-05-021-1/+3
| | | | | | | | | | | | | | D3D11_QUERY_DATA_SO_STATISTICS is no part of d3d11sdklayers.h and thus not covered by the ANGLE_MINGW32_COMPAT define. The struct is defined in d3d11.h and will be available in an upcoming version of MinGW (see https://sourceforge.net/p/mingw-w64/mingw-w64/ci/a0cd5afeb60be3be0860e9a203314c10485bb9b8/ ). As soon as the MinGW version that includes the change is known, the __MINGW32__ check should be replaced by a proper version check. Change-Id: I774f24432b375fdf9c559449f266cc04a4905275 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Update ANGLE to chromium/2651Oliver Wolff2016-04-25156-9388/+28333
| | | | | Change-Id: I1cd32b780b1a0b913fab870e155ae1f4f9ac40d7 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-11-271-1/+7
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/network/socket/qnativesocketengine_p.h src/network/ssl/qsslsocket_mac.cpp src/network/ssl/qsslsocket_mac_p.h src/widgets/kernel/qwidget.cpp Change-Id: I39592cb37d710dfaf8640769ba3c1b637927d7f4
| * ANGLE/D3D11: Suppress keyboard handling of DXGI.Friedemann Kleint2015-11-231-1/+7
| | | | | | | | | | | | | | | | | | Set the DXGI_MWA_NO_ALT_ENTER to suppress the Alt-Enter shortcut causing the window to become full screen. Task-number: QTBUG-44904 Change-Id: Ia4156ddee37a8a3da6e9e3130022c63a674f4429 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-10-131-1/+14
|\| | | | | | | | | | | | | | | | | Conflicts: src/network/socket/qabstractsocket.cpp src/plugins/platforms/winrt/qwinrtscreen.cpp src/sql/drivers/mysql/qsql_mysql.cpp Change-Id: Ifb73623d09f53340ee5e10283f1f86b580998902
| * ANGLE: Fix D3D feature level detection.Samuel Nevala2015-10-021-14/+12
| | | | | | | | | | | | | | | | | | | | | | | | Commit 7943d4f tried to fix this with a switch/case, but the feature levels need to be in descending order so this failed. So, follow the same style used for feature levels 10/11. Change-Id: Ia1c22981bf8b99eb53df13833aba452482398295 Task-number: QTBUG-38481 Task-number: QTBUG-48571 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
| * ANGLE: Fix Windows Store D3D Trim and Level 9 requirementsAndrew Knight2015-09-291-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | Due to additional validation not covered in previous patches, the Windows Store certification compatibility had regressed. These changes ensure that the required D3D behaviors are met. Change-Id: I0a74f0d2fecaa87d4a9409da3a7a194254609759 Task-number: QTBUG-38481 Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com> Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* | Purge extraneous execute permissions.Edward Welbourne2015-09-301-0/+0
| | | | | | | | | | | | | | | | | | Source files should not be executable. Change-Id: If9b9eaa6c8c7348ca6f48fa9253f3540e95aca37 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* | ANGLE: Use pixel sizes in the XAML swap chainAndrew Knight2015-08-137-90/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary for Qt applications, as they render to GL in physical pixels. This is consistent with the CoreWindow swap chain behavior. This includes a partial revert of "ANGLE: Improve Windows Phone Support" as the modifications to SwapChain11 are incompatible with the XAML swap chain. This change only affects Windows Runtime targets. Change-Id: I401ae81028a9dfdb9da37f51c60844467c476f76 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | ANGLE: check for out of date swap chain even when size is emptyAndrew Knight2015-08-131-0/+1
|/ | | | | | | | | | This allows the XAML swap chain to work properly, as otherwise it never got a resize after it was passed into ANGLE with an empty size. This is fixed by upstream commit 3799c3014a9e4ba4a3853c014a7127254ec19d50, so no patch is necessary for Qt's local copy. Change-Id: I43b030fa74f6b30c2aa42a36db2031a84eedf60b Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* ANGLE: Fix compilation without d3d11Kai Koehne2015-05-282-1/+5
| | | | | | Change-Id: I0b772698cf521083e5ecf35a395af57100a50131 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* ANGLE: Allow Windows Phone to communicate swap regionAndrew Knight2015-05-083-13/+22
| | | | | | | | | | | | | | | | eglPostSubBufferNV is used to communicate the size of the window, as otherwise there is no way for the renderer to know if the last frame was rendered in landscape or portrait, causing rendering glitches when the orientation changes. The rotation flags are utilized in a few additional places now to fix some corner cases where the rotation was not applied. This patch should be squashed into "ANGLE-Improve-Windows-Phone-Support" during the next ANGLE rebase. Task-number: QTBUG-44333 Task-number: QTBUG-43502 Change-Id: Iec37f7531854184819c30c87eab82d96d56ff133 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* Upgrade ANGLE to 2.1~99f075dade7cAndrew Knight2015-04-09152-0/+46908
This aligns with Chromium branch 2356. This version brings more complete OpenGL ES 3 support as well as various bug fixes and performance improvements. The following changes were made to earlier patches: -0000-General-fixes-for-ANGLE-2.1 Removed. All changes are now handled elsewhere. +0001-ANGLE-Improve-Windows-Phone-support Consolidated remaining parts from 0009/0010. +0002-ANGLE-Fix-compilation-with-MinGW Remaining issues from patch 0016. +0003-ANGLE-Fix-compilation-with-MSVC2010 Remaining issues from patch 0015. +0004-ANGLE-Dynamically-load-D3D-compiler-from-list Renamed from patch 0008. +0005-ANGLE-Add-support-for-querying-platform-device Renamed from patch 0013. -0004-Make-it-possible-to-link-ANGLE-statically-for-single Removed. Fixed by adding defines to project files. -0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t Renamed to patch 0005. -0009-ANGLE-Support-WinRT Removed. Mostly fixed upstream; remaining parts in patch 0001. -0010-ANGLE-Enable-D3D11-for-feature-level-9-cards Removed. Mostly fixed upstream; remaining parts in patch 0001. -0012-ANGLE-fix-semantic-index-lookup Removed. Fixed upstream. -0013-ANGLE-Add-support-for-querying-platform-device Renamed to patch 0005. -0014-Let-ANGLE-use-multithreaded-devices-if-necessary Removed. No longer needed. -0015-ANGLE-Fix-angle-d3d11-on-MSVC2010 Moved remaining parts to patch 0003. -0016-ANGLE-Fix-compilation-with-MinGW-D3D11 Moved remaining parts to patch 0002. -0017-ANGLE-Fix-compilation-with-D3D9 Removed. Fixed upstream. -0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11 Removed. Fixed upstream. -0019-ANGLE-Fix-handling-of-shader-source-with-fixed-lengt Removed. Fixed upstream. -0020-ANGLE-Do-not-use-std-strlen Removed. Fixed upstream. -0020-ANGLE-Fix-compilation-with-MSVC2013-Update4 Removed. Fixed upstream. [ChangeLog][Third-party libraries] ANGLE was updated to Chromium branch 2356 (2.1~99f075dade7c). Change-Id: I32ccbfe95e10986bd94be7191dfd53445ea09158 Task-number: QTBUG-44815 Task-number: QTBUG-37660 Task-number: QTBUG-44694 Task-number: QTBUG-42443 Reviewed-by: Andrew Knight <qt@panimo.net> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>