Category:Hardware-faq: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
h1. FAQ on How to implement Qt Hardware Support | |||
== What is the difference between Qt 4.8.x and Qt 5? == | |||
* 4.8: QtQuick1, Javascript core, QWS (good) and QPA (not good) | |||
* 5.0: QtQuick2, v8, QPA, no QWS, QPA only supporting OpenGL and DirectFB backends | |||
== What is the difference between QPA and QWS and when should I use which? == | |||
* In general use QWS on 4.8 and QPA on 5.0 | |||
* Depending on the use-case QPA on 4.8 is a valid choice as well. Some important limitations and requirements are necessary to consider: | |||
** QPA on Qt4.8 only makes sense on OpenGL Hardware! If you don't have OpenGL HW there is absolutely no point in choosing Qt4.8-QPA over Qt4.8-QWS | |||
** If you have OpenGL HW, there are two distinct use-cases to consider: | |||
*** single-process: The features and limits of QWS and QPA are similar. QWS is older, is therefor considered more stable. Arguments for QPA could be: | |||
**** you have to work on the graphcis/platform-plugin because your OpenGL implementation need special threadment, and(!): | |||
**** you're thinking about moving to Qt5 | |||
*** multi-process: There is currently no officially supported embedded(!) OpenGL-multi-process offering in Qt4.8. Implementing a platform-plugin for QPA is considered to be way simpler then writing QWS-graphics-plugins. Therefor Qt 4.8 QPA is the primary choice if you start your own platform-plugin or work on an existing platform plugin (e.g. the wayland-platform-plugin) | |||
== What are the technical differences between QtQuick 1 and QtQuick 2? == | |||
* QtQuick 1 is the only choice for Qt4.7 and Qt4.8 | |||
* QtQuick 2 comes with and is the primary choice for Qt5.x | |||
* QtQuick 2 is based on a complete new and tailor made graphics stack called scenegraph. | |||
** This leads to rendering performance of QtQuick2 which is a multiple of the rendering performance of QtQuick1 | |||
* Both use the same language (QML) to declare a user interface | |||
* Although the language is the same, QtQuick2 comes with more and improved UI-elements (e.g. a complete new particle-engine) | |||
== When should I use OpenGL, OpenVG, DirectFB versus software rendering? == | |||
* Use OpenGL and DirectFB for hardware acceleration in 4.8 or 5.0. OpenVG only works on 4.8 (it's a graphics system only tested on Symbian). Be aware of the hardware acceleration capabilities of your device: if you do something it can't accelerate you will end up with software rendering (not great performance). | |||
== What is the difference between Webkit 1 and Webkit 2 and how are they supported on Qt 4 and Qt 5? == | |||
* Webkit 1 runs on both 4.8 and 5.0, Webkit2 only runs on 5.0. Qt Webkit2 is staying up to date with HTML5 features in webkit.org (Qt Webkit 1 is not). | |||
== What are the options for implementing multimedia playback in Qt 4 and Qt 5? == | |||
* The options are in-process and out-of-process. Most demos are using out-of-process today but if you implement in-process you can apply QtQuick effects to your media. (more from Bhooshan). | |||
== When should I use DirectFB versus Wayland? == | |||
* In general this questions shouldn't be answered by "Qt" but by the silicon-vender (which should also be the one providing the BSP) | |||
* The questions is only valid if you want to use OpenGL-HW-acceleration (and you need multi-process) | |||
* Qt has wayland-platform-plugins for Qt4.8 and Qt5 | |||
* The Qt5-wayland-plugin get more attention (then the one for Qt4.8) and should be on a par with wayland-development | |||
* [for holder: please comment the directfb-opengl state in Qt4/Qt5] | |||
== How do I implement QML 1 or QML 2 in a single process? In multiple processes? Can I implement QML1 and QML2 in the same process? == | |||
* foo | |||
== What is the difference between in-process multimedia play back versus out-of-process multimedia playback? == | |||
* foo | |||
== What do I implement differently using QML in full screen versus windowed user interfaces? == | |||
* foo | |||
== What is the list of issues and their sequence in which I should check them when encountering less than satisfactory performance on my hardware? == | |||
* foo | |||
== Is OpenVG supported in Qt5? == | |||
* No (at least not unless you contribute it). | |||
== Where does JIT work in Webkit? (e.g MIPS, ARM, IA) == | |||
* foo | |||
* (Holger) | |||
== From what and in what sequence should I build my Qt software stack? == | |||
* foo | |||
* (e.g. always pull from Webkit trunk because it is moving so fast) | |||
* How do I get Qt running on my board? (Also a session at QCS) | |||
* X86, ARM, MIPS, | |||
* GL/notGL (DFB, OpenVG, Direct3D) | |||
== How much time is a Qt port to new hardware going to take? == | |||
* foo | |||
* How can I make it faster/easier? | |||
* What thinks are '''critical'''? What things are “nice to have”? | |||
* What do I need to do first? Can I do things in stages? | |||
* When doing a Qt port, what technical issues are critical to watch out for? | |||
== What tools can I use when and where across Qt4 and Qt5? == | |||
* Foo | |||
* QtCreator does not yet work on Qt5. | |||
* How do I get the Tools ready? | |||
* How do I deal with version changes? | |||
* What license issues do I need to consider? | |||
* Do I need to do anything to work well with 3rd party (and/or system) tools? | |||
== Performance: How do I identify and resolve driver performance issues? == | |||
* foo | |||
== Performance: How do I identify code that should be running on the GPU and isn’t? == | |||
* foo | |||
== Performance: How do I identify and resolve multimedia performance issues? == | |||
* foo | |||
== Performance: What issues can I safely ignore? == | |||
* foo | |||
* Features? Modules? Qt Add Ons? | |||
== How do I package and document a fix to upstream it? How do I upstream it? == | |||
* foo | |||
* How should I package my work? | |||
* How should I document my work? | |||
* Where / how should I upstream? | |||
* What do I do if a fix cannot be up streamed? | |||
* What testing should I do? | |||
* How should I test? | |||
* Should I do unit tests? | |||
* What are the pros/cons of unit testing? | |||
== What is the status of Qt Components for embedded? For Desktop? == | |||
* foo |
Revision as of 10:01, 24 February 2015
h1. FAQ on How to implement Qt Hardware Support
What is the difference between Qt 4.8.x and Qt 5?
- 4.8: QtQuick1, Javascript core, QWS (good) and QPA (not good)
- 5.0: QtQuick2, v8, QPA, no QWS, QPA only supporting OpenGL and DirectFB backends
What is the difference between QPA and QWS and when should I use which?
- In general use QWS on 4.8 and QPA on 5.0
- Depending on the use-case QPA on 4.8 is a valid choice as well. Some important limitations and requirements are necessary to consider:
- QPA on Qt4.8 only makes sense on OpenGL Hardware! If you don't have OpenGL HW there is absolutely no point in choosing Qt4.8-QPA over Qt4.8-QWS
- If you have OpenGL HW, there are two distinct use-cases to consider:
- single-process: The features and limits of QWS and QPA are similar. QWS is older, is therefor considered more stable. Arguments for QPA could be:
- you have to work on the graphcis/platform-plugin because your OpenGL implementation need special threadment, and(!):
- you're thinking about moving to Qt5
- multi-process: There is currently no officially supported embedded(!) OpenGL-multi-process offering in Qt4.8. Implementing a platform-plugin for QPA is considered to be way simpler then writing QWS-graphics-plugins. Therefor Qt 4.8 QPA is the primary choice if you start your own platform-plugin or work on an existing platform plugin (e.g. the wayland-platform-plugin)
- single-process: The features and limits of QWS and QPA are similar. QWS is older, is therefor considered more stable. Arguments for QPA could be:
What are the technical differences between QtQuick 1 and QtQuick 2?
- QtQuick 1 is the only choice for Qt4.7 and Qt4.8
- QtQuick 2 comes with and is the primary choice for Qt5.x
- QtQuick 2 is based on a complete new and tailor made graphics stack called scenegraph.
- This leads to rendering performance of QtQuick2 which is a multiple of the rendering performance of QtQuick1
- Both use the same language (QML) to declare a user interface
- Although the language is the same, QtQuick2 comes with more and improved UI-elements (e.g. a complete new particle-engine)
When should I use OpenGL, OpenVG, DirectFB versus software rendering?
- Use OpenGL and DirectFB for hardware acceleration in 4.8 or 5.0. OpenVG only works on 4.8 (it's a graphics system only tested on Symbian). Be aware of the hardware acceleration capabilities of your device: if you do something it can't accelerate you will end up with software rendering (not great performance).
What is the difference between Webkit 1 and Webkit 2 and how are they supported on Qt 4 and Qt 5?
- Webkit 1 runs on both 4.8 and 5.0, Webkit2 only runs on 5.0. Qt Webkit2 is staying up to date with HTML5 features in webkit.org (Qt Webkit 1 is not).
What are the options for implementing multimedia playback in Qt 4 and Qt 5?
- The options are in-process and out-of-process. Most demos are using out-of-process today but if you implement in-process you can apply QtQuick effects to your media. (more from Bhooshan).
When should I use DirectFB versus Wayland?
- In general this questions shouldn't be answered by "Qt" but by the silicon-vender (which should also be the one providing the BSP)
- The questions is only valid if you want to use OpenGL-HW-acceleration (and you need multi-process)
- Qt has wayland-platform-plugins for Qt4.8 and Qt5
- The Qt5-wayland-plugin get more attention (then the one for Qt4.8) and should be on a par with wayland-development
- [for holder: please comment the directfb-opengl state in Qt4/Qt5]
How do I implement QML 1 or QML 2 in a single process? In multiple processes? Can I implement QML1 and QML2 in the same process?
- foo
What is the difference between in-process multimedia play back versus out-of-process multimedia playback?
- foo
What do I implement differently using QML in full screen versus windowed user interfaces?
- foo
What is the list of issues and their sequence in which I should check them when encountering less than satisfactory performance on my hardware?
- foo
Is OpenVG supported in Qt5?
- No (at least not unless you contribute it).
Where does JIT work in Webkit? (e.g MIPS, ARM, IA)
- foo
- (Holger)
From what and in what sequence should I build my Qt software stack?
- foo
- (e.g. always pull from Webkit trunk because it is moving so fast)
- How do I get Qt running on my board? (Also a session at QCS)
- X86, ARM, MIPS,
- GL/notGL (DFB, OpenVG, Direct3D)
How much time is a Qt port to new hardware going to take?
- foo
- How can I make it faster/easier?
- What thinks are critical? What things are “nice to have”?
- What do I need to do first? Can I do things in stages?
- When doing a Qt port, what technical issues are critical to watch out for?
What tools can I use when and where across Qt4 and Qt5?
- Foo
- QtCreator does not yet work on Qt5.
- How do I get the Tools ready?
- How do I deal with version changes?
- What license issues do I need to consider?
- Do I need to do anything to work well with 3rd party (and/or system) tools?
Performance: How do I identify and resolve driver performance issues?
- foo
Performance: How do I identify code that should be running on the GPU and isn’t?
- foo
Performance: How do I identify and resolve multimedia performance issues?
- foo
Performance: What issues can I safely ignore?
- foo
- Features? Modules? Qt Add Ons?
How do I package and document a fix to upstream it? How do I upstream it?
- foo
- How should I package my work?
- How should I document my work?
- Where / how should I upstream?
- What do I do if a fix cannot be up streamed?
- What testing should I do?
- How should I test?
- Should I do unit tests?
- What are the pros/cons of unit testing?
What is the status of Qt Components for embedded? For Desktop?
- foo
This category currently contains no pages or media.