| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Change-Id: I9a10e1f3c9506ec8554d8f59b6300825ac730939
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some Qt users include non-system OpenGL headers, resulting
in a possible mismatched redefinition of GLhandleARB.
Ideally, we'd like to skip the whole glext.h inlined portion
and rely on qopenglext.h. However, some issues remain such
as GLDEBUGPROC not being defined on OS X.
Change-Id: Ie551cf0be309234b22cd615cc3703980f48298b9
Task-number: QTBUG-46149
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Allows to register the enums as Q_ENUM which in turn will allow Qt3D and
future other modules to access these enums from QML if QOpenGLTexture is
registered as an uncreatable type
Task-number: QTBUG-51491
Change-Id: I037a4585cd44c7429b63f06b704f0386df842777
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: I055758b73a9992786b6c4542396dc82fda1444b5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The printf-style version of QDebug expands to a lot less code than the
std::ostream-style version. Of course, you pay in type safety (but
compilers warn about it these days), you cannot stream complex Qt
types and streaming QStrings is awkward, but in many cases you
actually improve on readability.
But the main reason is that something that's not supposed to be
executed under normal operation has no business bloating executable
code size.
This is not an attempt at converting all qWarnings() to printf-style,
only the low-hanging fruit.
In this first part, replace
qWarning() << "...";
with
qWarning("...");
In QTransform shared warning strings.
Saves 3KiB in text size on optimized GCC 5.3 AMD64 builds.
Change-Id: I142a8020eaab043d78465178192f2c8c6d1cc4f9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I6864e227fceb133903979ac8f7a7434fc3e280bf
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Always try both e/wglGetProcAddress and ::GetProcAddress to
resolve the methods. Like this QOpengGLContext::getProcAddress is
able to return any OpenGL entry point, and we can both simplify
the code we have in the QPA backend as well as get rid of windows
specific code paths in Qt Gui.
Task-number: QTBUG-39531
Change-Id: I1ddf1b0974f69b56b219a619655b723eb0134b14
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Saves around 80k in Qt Gui.
Change-Id: I3f7068ae699136d0edf46a49694ade7e1df3c91d
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Saves some code, is easier to maintain and will allow for some
more nice refactoring.
Change-Id: Ica7ae8e9d36acbe6586e488bc6aff114336c65bb
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the different flags when trying to resolve opengl
functions. Rather we simply try hard to find a matching method
by resolving over possible suffixes when we can't find the standard
name.
Change-Id: Ic73085faec3bd406f5214ed4219eb7b796651d8d
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Similar to the parent commit, this reduces binary size significantly.
Change-Id: Idd6753ec5e04ec84d93bf6f86b5c71550b90ae9b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use a similar mechanism as in QOpenGLVersionFunctions and resolve
the methods in a loop. This requires some macro magic but significantly
reduces the size of the generated code.
Change-Id: If5f5e5551af0d1aed4b4ce7ce82932d8988dab59
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The old Resolver class to resolve GL symbols is not
being used any longer, get rid of it.
Change-Id: I835860eb1c42aea05458ca32cf652659500312da
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since the backends can now resolve all possible GL
functions, there's no need for the special handling
for GLES that this class did anymore.
Change-Id: Ib48aecc9a892f3c883d76ffc82217f346dbb3adc
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the wrapper methods resolving themselves at first run
also here and instead resolve all GL entry points when the
QOpenGLExtraFunctions object gets constructured.
Keep the gles3helper for now until all backends are fixed
to be able to resolve these methods directly.
Change-Id: I194bd4465605f57d27c79808a016592c101ac04c
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Saves another 20-30k for QtGui
Change-Id: I2a6980713ab1c45144c70ba9835c6e85f736279b
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add an getProcAddress(const char *) overload to QOpenGLContext,
and refactor the QPA interface to take a const char *. Like this
we can avoid lots of mallocs when resoving GL methods.
Change-Id: Ic45b985fbaa0da8d32ba3e3b485351173352ca6f
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We already have these symbols resolved in QOpenGLFunctions,
so simply use those.
Change-Id: I6047181dbe47be9b0a83656af454d0ca1f3df6eb
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Directly resolve the GL symbols in the constructor instead
of wrapping them in another method that resolves on
first call.
Simplifies the code and reduces the the size of QtGui
by around 50k.
Change-Id: If1fc575d0113d3d9b48ad1918429254c827e42c7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
They are private classes and only called from non inline code in
Qt, so the change is safe.
Reduces the size of QtGui by another 10k.
Change-Id: I67e0592089b9ac89d3f2ab4456024ad7c5a55eca
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use some macro magic to declare the opengl symbols and use that
to call getProcAddress in a loop instead of doing it individually
for each method.
Cuts the amount of generated object code down from 300 to around 50k.
Change-Id: I386d278fde41a1a30827c6232e79f9156090f8b0
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Saves around 200k in QtGui.so.
Change-Id: I1a020445093a5612ed64ca98bf51435580478cda
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
src/plugins/platforms/windows/qwindowsfontengine.cpp
src/plugins/platforms/windows/qwindowsnativeimage.cpp
tests/auto/gui/kernel/qwindow/BLACKLIST
tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
Change-Id: I649b32b260ce0ed2d6a5089021daa0d6a8db85f7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
... or similar.
This amends previous commits that converted the majority of
cases.
Task-number: QTBUG-45291
Change-Id: I219cdeddca7063a56efeb4fee0e5bb2cbdc7732b
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
QOpenGLShaderProgram::defaultInnerTessellationLevels() uses the wrong
GL enum. This patch fixes it.
Change-Id: I2d7ebfad27f7b36d3047d80bfacba65c43c68165
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This also reverts commit 018e670a26ff5a61b949100ae080f5e654e7bee8.
The change was introduced in 5.6. After the refactoring, 14960f52,
in 5.7 branch and a merge, it is not needed any more.
Conflicts:
.qmake.conf
src/corelib/io/qstandardpaths_mac.mm
src/corelib/tools/qsharedpointer_impl.h
tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp
Change-Id: If4fdff0ebf2b9b5df9f9db93ea0022d5ee3da2a4
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some drivers don't support GL_NUM_EXTENSIONS, so we may be reading
random bits from numExtensions.
Change-Id: Ibe61fa6d7c379f3f1428458edd3e0ddba0eb04d7
Task-number: QTBUG-48943
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The deprecation was introduced in 5.6
Change-Id: Ief6b749b40ec75c3c9f904caed8447bfb5ef5439
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| | |
Change-Id: I9e706690d4d2ddaae6c84b0e24de7698704e862d
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Profiling shows that the call to glGetIntegerv() in this function that
queries for the currently bound framebuffer is very expensive. It's
the top hit on the CPU when profiling a Qt3D application using a
Scene3D Qt Quick 2 item. The reason it is so expensive is that this
call forces the OpenGL driver to propagate the OpenGL state through
all of the queued commands in order to answer the query. It may
also induce a pipeline stall depending upon the driver implementation.
As this function gets called on the hot path every frame whenever using
a Scene3D item and may also be called in plain Qt Quick when using
ShaderEffect items; the layer property of QQuickItem; or when updating
the Qt Quick glyph cache texture on Core profile contexts, it is very
much worthy of optimization.
This commit adds an overload of the blitFramebuffer() call that allows
the caller to provide a policy that can either:
* keep the existing behavior of restoring the previous framebuffer
binding,
* restore the default framebuffer, or
* don't restore anything and let the caller be responsible for it.
This will allow consumers such as Qt Quick and Qt 3D to use the
optimised code path. The existing overloads of blitFramebuffer()
retain the current behavior by calling with the policy to restore the
previous framebuffer binding.
Upon making this change, the cost of blitFramebuffer() is massively
reduced. A follow up commit will optimize this further.
Change-Id: I417abb7da916ae5088f6817e4eff8ea02c8c5803
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
... by replacing them with C++11 range-for loops.
To avoid detaches of these mutable Qt containers,
wrap the container in qAsConst().
Change-Id: I90fd517ad542ef92034403c15ebb8300a56ac693
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(or trivially marked const) ... by replacing them
with C++11 range-for loops.
Change-Id: I3cce92b9d77a3ff96fad877d1d989145e530646f
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: Ibb26338809ffccc3a736a7c53ac4f5877cac34a8
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
... by replacing them with C++11 range-for loops.
This is the simplest of the patch series: Q_FOREACH took a
copy, so we do, too. Except we don't, since we're just
catching the return value that comes out of the function
(RVO). We can't feed the rvalues into range-for, because
they are non-const and would thus detach.
Change-Id: I457942159015ff153bdfc6d5f031a3f0a0f6e9ac
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Q_FOREACH over a QVarLengthArray is a partcularly
bad idea.
Use C++11 range-for (without qAsConst(), because
QVLA isn't CoW).
Change-Id: I5ee55557577f183151d3871e4518382c4adf0237
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
src/dbus/qdbusconnection_p.h
src/dbus/qdbusintegrator.cpp
src/dbus/qdbusintegrator_p.h
tests/auto/corelib/io/qdir/qdir.pro
tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp
Change-Id: I3d3fd07aed015c74b1f545f1327aa73d5f365fcc
|
| |
| |
| |
| |
| |
| |
| | |
These variables were never used or set to anything meaningfull.
Change-Id: Ic68ac5c38a3db28d7a5a05be004bcb6a554a1483
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|\ \ |
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/corelib/io/qiodevice_p.h
src/corelib/kernel/qvariant_p.h
src/corelib/tools/qsimd.cpp
src/gui/kernel/qguiapplication.cpp
tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
Change-Id: I742a093cbb231b282b43e463ec67173e0d29f57a
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
config.tests/common/atomic64/atomic64.cpp
configure
src/3rdparty/forkfd/forkfd.c
src/corelib/io/forkfd_qt.cpp
src/widgets/kernel/qwidgetwindow.cpp
tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp
tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
tools/configure/configureapp.cpp
Change-Id: Ic6168d82e51a0ef1862c3a63bee6722e8f138414
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Idf8ae00cff6929114b38dcb003c259c83a11dbaa
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
On some drivers (e.g. NVIDIA, tested on Windows) the
status check is apparently expensive. A simple FBO
test app rendering into the FBO on every frame (and
thus calling bind()) shows a 19-21% CPU usage. With
the patch this gets reduced to 0.8-1%.
The check is fairly useless too - whenever creating
attachments, the status is checked, so d->valid is
up-to-date.
Task-number: QTBUG-50496
Change-Id: Ie9f0db34e5c2bc1a1141c734ca0b318419013c0d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I408dcb81ba654c929f25ffff14291c57198e7367
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
These are nowadays standardized.
Change-Id: I3931859bba0b4c34a9336c7f537e3093e07d9b2d
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)
Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|\| |
| | |
| | |
| | |
| | |
| | | |
Based on merge done by Liang Qi
Change-Id: Id566e5b9f284d29bff2199f13f9417c660f5b26f
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Trying to set data for a compressed cubemap texture face fails, because
the code incorrectly tries to bind to a cubemap face target.
This was already fixed for uncompressed textures. Instead of duplicating
the code, moved the texture binding/unbinding code to a RAII class.
Change-Id: I8f1cb7fc661b919200f85c3465d6e6e3c22d0871
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/gui/painting/painting.pri
src/plugins/platforms/xcb/qxcbconnection.cpp
tests/auto/corelib/thread/qthreadstorage/qthreadstorage.pro
tests/auto/corelib/tools/qlocale/test/test.pro
tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
tools/configure/environment.cpp
Change-Id: I9c40f458b89b2c206de2d2c24e90b5f679c93495
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I7bf08eee357fb9641ff9118edcf97809f98605b7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I0775ad9538a7793dc6628abe4556404634ae0462
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|