Commit Graph

35 Commits

Author SHA1 Message Date
Kai Koehne
43e1c61a19 Add missing intrin.h include for __cpuid
This is already fixed upstream in

https://codereview.appspot.com/8615046/patch/1/2

Change-Id: I4b9e865f6b5622c484418a8381334381bc256887
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-23 12:45:16 +02:00
Kai Koehne
38f6467b81 ANGLE: Fix compilation with MinGW
Make sure ImageSSE2.cpp is compiled with the right flags (-msse2)

Change-Id: I410bbd1fd78112d01ebd486908cd22d827e2e472
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-22 14:30:03 +02:00
Jonathan Liu
e81446141f ANGLE: Use rtti_off in CONFIG only for release
ANGLE uses dynamic_cast in debug.h for debug builds which require RTTI.

Change-Id: I0e2fea7ed751dc87624d7e76d179023accb9c126
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-11 16:09:13 +02:00
Andrew Knight
dce86de8e7 ANGLE: Avoid memory copies on buffers when data is null
With data=0, ANGLE can crash when setting the buffer data. As this
should be a legal operation, don't perform a memcpy when data is null.

Change-Id: I3fa1260482549b1da50d7a68001a65decb98f258
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-08 11:35:44 +02:00
Andrew Knight
fab430a412 ANGLE DX11: Prevent assert when view is minimized or size goes to 0x0
This allows the Direct3D 11 version of ANGLE to gracefully allow
surfaces with dimensions of 0. This is important because Qt may resize
the surface to 0x0 because of window minimization or other user
action (window resize). As EGL specifies that empty (0x0) surfaces are
valid, this makes sure an assert doesn't occur in the case that a valid
surface is resized to an empty one.

Change-Id: Ia60c4c694090d03c1da7f43c56e90b925c8eab6d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-08 11:35:44 +02:00
Andrew Knight
710ad8ce1b Upgrade ANGLE to DX11 Proto
Upgrades ANGLE to dx11proto (dx11-MRT-support tag), which splits out support
for DirectX9 & DirectX11. The DX9 codepath is used by default;
CONFIG+=angle_d3d11 must be passed to the ANGLE project to build for DX11.
Existing patches to ANGLE have been updated (or removed if no longer
needed), and a patch has been added to make DX9/DX11 codepaths mutually
exclusive.

Change-Id: Ibe13befadb94f04883eca449d0ee1f0da955ff92
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Axel Waggershauser <awagger@gmail.com>
2013-04-08 11:35:44 +02:00
Samuel Rødal
2ab9b747fc Merge remote-tracking branch 'gerrit/release' into stable
Conflicts:
	configure
	mkspecs/features/qt_module_headers.prf
	mkspecs/features/qt_tool.prf
	src/angle/angle.pro
	src/tools/bootstrap/bootstrap.pro
	tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp

Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
2013-03-21 08:49:01 +01:00
Oswald Buddenhagen
e79e1c1a16 pass module version to syncqt
this is cleaner than having it parse qmake project files.
the only remaining built-in version extraction is the fallback to
qglobal.h needed for bootstrapping.

as a "side effect", this fixes the build of modules with mismatched
versions centralized in .qmake.conf, as this was simply not handled so
far.

the -mkspecsdir syncqt option goes away, as there is no use case for it
any more.

Task-number: QTBUG-29838
Change-Id: I6912a38f0e93a26bc267a9e3d738506fd3ad431b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-20 19:03:45 +01:00
Oswald Buddenhagen
cb22d3bbba consolidate syncqt invocations
Change-Id: Ic28ea95201501b05c4a62366d1f70fa120161927
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-13 18:40:26 +01:00
Friedemann Kleint
a8fce5d6e2 ANGLE: Fix static build.
Introduce  QT_OPENGL_ES_2_ANGLE_STATIC define for static builds
and modify export accordingly. Provided static instances
of gl::Current and egl::Current for Qt's single threaded
use.

Task-number: QTBUG-28196

Change-Id: Ia75699d6da103fb8dd9d5fe97c1ee51e48a74406
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-02-25 10:34:11 +01:00
Oswald Buddenhagen
2ed081a88b fix & simplify quoting
$$quote() doesn't do what you think, unless you did RTFM.
and it's usually just as unnecessary as double quotes,
depending on context.

Change-Id: Iaeadaa75b0650aad383a6e6031b822c04b537fb1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-13 18:42:38 +01:00
Oswald Buddenhagen
d061cfde88 fix platform conditional for using our gnuwin tools
it's pointless to test the target platform - it's always windows. but it
may make sense to test the host platform (not sure whether it's possible
to x-build angle).

Change-Id: I57847c930d6108a24a1005aa44f94ba0b4f9dfec
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-13 12:42:40 +01:00
Oswald Buddenhagen
8204e3f045 fix angle build under msys
use library function which deals with shell specifics to set up PATH

Task-number: QTBUG-29427
Change-Id: Ic2bed4d7f0eb072bcce6a9f99be02d3cd08a7c98
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-13 12:42:40 +01:00
Oswald Buddenhagen
e3554d7274 remove useless unset()s
there is mightily little point in unsetting variables right before
unconditionally assigning to them.

Change-Id: I24c1814ce38bf9aab4496679b1a670f3cd55c536
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-13 12:42:40 +01:00
Oswald Buddenhagen
707f0a20b4 remove abuse of eval()
Change-Id: I8fdba2998f9e4d03c37235c377b5db0aadc27608
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-13 12:42:40 +01:00
Oswald Buddenhagen
7f95a57844 produce shorter/nicer source paths
Change-Id: Ia71410fdc6ee30192239e9c9efa716cfa811c13e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-13 12:42:40 +01:00
Oswald Buddenhagen
f4065db172 fix overquoting of GNUPATH
Task-number: QTBUG-28841
Change-Id: Ifa62a273acefc240953633bbd099384a635f29c6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-01-28 16:33:48 +01:00
Jonathan Liu
b2c44985e7 Fix linking ANGLE on MinGW-w64 64-bit
The MinGW-w64 32-bit .def files shouldn't be used with MinGW-w64 64-bit.
Rename .def files from <library>_mingw.def to <library>_mingw32.def and
only use them if QT_ARCH is i386.

Change-Id: I5dc2a87f7d2ed59bf954faf2983d0787ed9e00e9
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Patrick von Reth <vonreth@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-12-20 14:23:57 +01:00
Jonathan Liu
854e5c473b Fix linking ANGLE on MinGW-w64 32-bit
MinGW-w64 32-bit requires the functions exported in the .def file
to be decorated.

Change-Id: I174a92829706a9fb6b0007b2c057300bd69e6d9e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-12-19 10:30:53 +01:00
Jonathan Liu
dc2bfb6f89 ANGLE: Fix typedefs for Win64
The long int type is incorrect for Windows 64-bit as LLP64 is used
there.

Change-Id: If4ccf49d6bb0cd7ba4ff2997cebfdbe5e7e9711c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-12-18 16:22:13 +01:00
Oswald Buddenhagen
599a58170d remove obsolete DEPENDPATH assignments
qmake now add CONFIG+=depend_includepath by default, making manual
DEPENDPATH setup unnecessary.

Change-Id: Ie57cf05c369e21b5b9e099b6ce9be4f75da1508f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-17 14:08:17 +01:00
Jonathan Liu
b7fd19b434 ANGLE: Always use DEF_FILE on Windows
Building ANGLE with MinGW results in too many symbols being exported in
the DLLs. Always use DEF_FILE on Windows to limit the symbols exported
and eliminate symbol conflicts when libEGL/libGLESv2 is linked by other
libraries that include their own version of ANGLE (e.g. QtWebKit).

Change-Id: I7bb1f90d9996eabf30095323e9399efa1c23e3a1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-12-17 09:00:31 +01:00
Friedemann Kleint
95a05904b9 ANGLE: Fix debug-and-release builds
Add a 'd' to debug builds to allow both release and debug builds
to be used.

- Add .def-files for Debug
- Build all libraries debug/release
- Add description to README.qt
- Differentiate debug/release in qmake.conf.

Task-number: QTBUG-28196

Change-Id: Ib3081004a6ed2ad71d353244154684d2e0ebbc86
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2012-12-01 08:30:38 +01:00
Friedemann Kleint
f229db5d57 Angle: Use dynamic runtime library of MSVC.
It is also used in Qt, mixing both is not recommended.
Add to default variables instead of overwriting them.

Change-Id: I895d44d5ea17f98dde9979eea6ff10b98180cc08
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2012-12-01 08:30:16 +01:00
Zeno Albisser
656d8a6772 ANGLE Patch file: Do not reset the share handle when resetting the swap chain.
Change-Id: I7ddc0f31b342ba40d4e14a99afdf237cb37d7ace
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-11-30 23:57:22 +01:00
Andy Shaw
5e12f9e7b3 Fix build when SSE2 is not available.
Although SSE2 support is detected at runtime it still may not be
available at build time, so we have to ensure it only uses SSE2
when it is available at build time too.

Change-Id: I86c45a6466ab4cec79aa0f62b0d5230a78ad825a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-28 20:41:44 +01:00
Andy Shaw
3d66b86cb7 Build fix when building libGLESv2 on Windows with MSVC 2010
Although SSE2 is not used, texture.cpp does not protect calls to these
functions, support for SSE2 is checked at runtime so the code needs to
be compiled in.

Change-Id: Ie14d0ff6b75448e480236d5d30254f107735b77f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-28 00:56:34 +01:00
Miikka Heikkinen
bd88379482 Patch file for ANGLE for fixing blackscreen after minimize
Task-number: QTBUG-27994

Change-Id: Iee3d9ff992b0d99c9d1ec3f13631c137114a52a9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-21 09:07:07 +01:00
Friedemann Kleint
3c092b7e58 Improve Direct X SDK detection in configure.exe
Check presence of Direct X SDK depending on
compiler version.

Check for presence of the headers d3dcompile.h and
intrin.h (SSE2) as well as d3d9.lib and the shader
compiler since the header d3dcompile.h is
also present in MinGW.

Change-Id: I7ee9701f4f9dc175ed2d733db79dda46de4d69f1
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-11-06 16:35:16 +01:00
Friedemann Kleint
92cd94ed1d Dynamically resolve functions of dwmapi.dll.
The library is not present on Windows XP, for which /DELAYLOAD
is used in ANGLE. However, as this causes problems with MinGW,
use dynamic resolution.

Task-number: QTBUG-27741
Change-Id: Ie4a2706d57b751fbb6fc6f3e76ef2e8ddac3b892
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-11-06 16:35:11 +01:00
Yuchen Deng
0d9eba94dc Angle: Make it call the correct host tools
Change-Id: Ib5a0da0ac50e0d2abebc825d6d6105ad5d84acd8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jason Barron <jason.barron@digia.com>
2012-11-03 00:24:37 +01:00
Jason Barron
9f390bb686 ANGLE: Add TextureSSE2.cpp to SSE2_SOURCES.
This file needs to be compiled with SSE2 intrinsic support.
It happens to compile on x64 system because SSE2 is implied
here, but on 32-bit compilers (in this case MinGW 32-bit) it
needs to be explicit.

Change-Id: I92dd5bc9257b6dd344ab02341475c023327b756a
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-10-30 12:53:46 +01:00
Yuchen Deng
3ab4afb743 Angle: Fix shadow build
Change-Id: I4ce4741ba1aa4009bd4984b4fad5a1b407d2cce5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-26 12:27:47 +02:00
Jason Barron
a26c97859a Fix incorrect library path in libEGL.pro.
Should not use the QT_INSTALL* variables here since it won't
work if we configure with a prefix.

Change-Id: I03ac170cb11262c38928f2a0d95e6f243d6d665b
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-25 12:20:26 +02:00
Jason Barron
e0c0e83fd5 Add ANGLE as a 3rdparty library to Qt.
ANGLE is a component that implements the OpenGL ES 2.0 API on
top of DirectX 9. See the following for more info:

http://code.google.com/p/angleproject/

ANGLE is now the default configuration on Windows. If you
want to use desktop OpenGL, you should build Qt with the
following configure options:

    -opengl desktop

To configure Qt to use another OpenGL ES 2 implementation,
you should use:

    -opengl es2 -no-angle

Task-number: QTBUG-24207

Change-Id: Iefcbeaa37ed920f431729749ab8333b248fe5134
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-24 02:29:15 +02:00