Lars Knoll

Qt 5.8 Alpha released

Published Monday September 5th, 2016
22 Comments on Qt 5.8 Alpha released
Posted in News, Qt, Releases

I’m happy to let you know that we have now reached our first milestone towards the release of Qt 5.8. The Alpha version of Qt 5.8 is now ready, and can be downloaded from download.qt.io or your Qt Account. As a new minor release, Qt 5.8 comes with a lot of new features as well as many bug fixes and improvements. We’ll go through all the new features in more detail as we get closer to the release. For now, let me just mention some of the biggest changes.

New graphics architecture

With Qt 5.8, the graphics architecture for Qt Quick has undergone a larger rewrite. The goal was to remove the tight dependency of Qt Quick onto OpenGL that we have had since Qt 5.0, and make the architecture more agnostic with regards to the graphics API that is being used. The new infrastructure has been used to create a vastly improved Software rendering backend for Qt Quick, and a backend based on DirectX 12.

QML caching

The QML engine has also seen some major improvements with a new caching infrastructure, that can cache the QML files in a precompiled binary form. This infrastructure does help to significantly speed up loading of QML applications once the binary cache has been created. It also helps reduce memory consumption. Ahead of time compilation of Qt Quick continues to be supported through the commercial Qt Quick Compiler.

Qt Lite Project and configurability

Even though Qt is split up into many modules, it is a large framework with many features. Many of our customers are using only parts of them, and have been asking for an option to create tailored builds of Qt for their use case. This is especially important for embedded devices, where both RAM and Flash storage are often limited.

To accommodate this, we have over the last 6 months done significant work on our build infrastructure to give our users much more fine grained control over the way how Qt is being built. This is what we called the Qt Lite Project. The basic infrastructure for this is now in place with the 5.8 Alpha, but we will be doing some more work on it while moving towards the Beta release.

With Qt 5.8, we will add a new tool to Qt for Device Creation, that will make it easier to tailor your Qt build and remove all the pieces of functionality that you are not using in your embedded project. From initial measurements, we expect that you will be able to reduce the size of a statically linked Qt Quick application by up to 70% compared to Qt 5.6.

New modules

The Wayland Compositor, SCXML and Serial Bus modules have now graduated from Technology Preview to being fully supported. In addition, we added Qt Speech and Qt Network Authentication (featuring OAuth support) as new Technology Previews.

Timeline

With the Qt 5.8 Alpha being released, we are now focusing fully towards finalizing a couple of remaining items, and plan to have the beta ready for you towards the beginning of October and Qt 5.8.0 final by end of November.

If you would like to hear more about all the cool new things coming with Qt 5.8, we will have in-depth talks about all of them at the Qt World Summit in San Francisco.

I hope you’ll enjoy the Qt 5.8 Alpha. Please download it from download.qt.io or your Qt Account, and don’t forget to give us feedback by writing to the mailing lists or reporting bugs.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in News, Qt, Releases

22 comments

Tim says:

In the Qt Roadmap for 2016 article, it was stated that “For Qt 5.8, we aim to bring a new kind of built-in Qt Quick Compiler for all Qt 5.8 users.”

Has that goal been reduced to only the JIT cache for all users, while ahead of time compilation will be for commercial users only?

Lars Knoll Lars Knoll says:

The caching gives similar startup time improvements as the compiler. We still have the goal of also making it possible to compile QML to native code at compile time using the new infrastructure, but we didn’t get all of it implemented in time for 5.8. So it’s been simply pushed back to 5.9.

Pete says:

So this cache is persisted somewhere? I don’t see how else it could help much with startup times.

Rich Moore says:

Yes. The cache is persistent and contains the output of the JIT compiler. Think of it like .pyc files from python except that it contains the actual machine code.

Babilon says:

Where is this cache stored? What if I run Qt app from read-only filesystem? Can I control where those compiled files go?

Tim says:

I’m glad to hear it is still on the roadmap 🙂

Qt 5.8 looks like an awesome release!

Markus Goetz says:

Just wondering, maybe this should be clarified, does JITing work on iOS?

Simon says:

As far as the code is concerned the JIT is not enabled on iOS. It works when developing, but it appears that it is not possible to ship apps with it. The QML caching will cache the interpreter’s byte code instead, in addition to all the QML data structures used for object instantiation.

Murat says:

Although supporting Mobile platforms is a great feature of Qt, I think we need more libraries/widgets in order for us to design native looking Android/iOS apps. A great feature could be an actionbar like widget which I’d be very happy to see. Good luck with future development, you guys are doing a fantastic job!

Benoit says:

Check out QuickControls2 (https://doc-snapshots.qt.io/qt5-5.8/qtquickcontrols2-index.html). There are already several themes, including material (for Android) and universal (for Windows). I agree that a iOS style is still missing and would be more than welcome (but on the other hand, it is quite easy to add custom controls for iOS). QuickControls2 is really a great module, with many controls, looking great (even with animations) and performing very well.

ekke ekke says:

you can download QtCon Conference App from Google Play or Apple AppStore to see what’s possible with QtQuickControls2 on Android and iOS. Complete app was developed with pure QT 5.7 – no extra native code.

Martin says:

In the new graphics architecture you mention support for DirectX 12, I can’t help but to think Vulkan would fit Qt better as it is a cross platform API. Will we see Vulkan support for Qt Quick in the future or will you stick to OpenGL for Linux/Android?

Andy Nichols (nezticle) Andy Nichols (nezticle) says:

Regarding the choice of DirectX 12 over Vulkan: When we started working on the scene graph improvements in December of 2015, Vulkan had still not been released publicly, and we didn’t get access to it until February. We wanted to validate the scenegraph changes we were making against one of the new low-level graphics API’s and at the time only Metal and DirectX 12 were available, so we chose DirectX 12. So the changes we made to enable a DirectX 12 renderer will also enable us to write a Vulkan renderer in the future, but we’d also like to actually take advantage of the posibilties the new low-level API’s give us, so there is more research to be done before we start work on the Vulkan backend. But it is something we are thinking about 😉

HM says:

Is the DirectX 12 backend supported on WinRT 10 (or Phone 10) or do these architectures still use Angle?

Laszlo Agocs Laszlo Agocs says:

Yes, it is supported in Win10 UWP apps as well, but ANGLE remains the default option for the time being. Cannot comment on phones since I am not quite sure about the level of DX support there.

Daniel Espinosa says:

How a large rewrite of graphic architecture is a good idea for a point release?

I would like to know the logic behind, in order to improve my own release practice.

Andy Nichols (nezticle) Andy Nichols (nezticle) says:

It’s a bit of an overstatement to say it was a rewrite. The changes only cover the Qt Quick scenegraph, and mostly affect the private scenegraph APIs. There are only a few new public API’s added (QSGRenderNode, and QSGRendererInterface), and its mostly about removing the dependency for OpenGL, but still maintaining that the current OpenGL backend is the default, while adding the possibility to render the scenegraph with other graphics technologies.

Ollie says:

What’s the OpenGL support like for windows out of the box? Do we still need to build with the -opengl desktop compile flag if we want to hook our own graphics code into the render loop.

Laszlo Agocs Laszlo Agocs says:

That has never been the case, the standard -opengl dynamic builds are also fully suitable for that.

HM says:

Do you have a plan for the first snapshot binary releases?

Maurice Kalinowski Maurice Kalinowski says:

Binary snapshots are usually provided first with the beta release.

HM says:

Ok, thanks. I did not know this.

Commenting closed.

Get started today with Qt Download now