Category:Hardware-FAQ

From Qt Wiki
Revision as of 12:22, 5 May 2015 by Olivier M. (talk | contribs) (Undo revision 16575 by Olivier M. (talk))
Jump to navigation Jump to search

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

This category currently contains no pages or media.