Re: [Development] Partial screen updates with Scenegraph

2012-07-20 Thread gunnar.sletta

On Jul 19, 2012, at 2:23 PM, ext dietrich.gos...@conti-engineering.com wrote:

 Hi, 
 
 Is it possible to set the new Grahpicsstack to do only partial screen 
 updates? 
 This would help me fixing some performance issues on embedded devices. 
 

Hi Dietrich,

The scene graph does not do partial updates. 

Based on the experience we had from the widget stack and graphics view, we 
early on concluded that for applications which have moderate amount of 
animations, partial updates hurts a lot more than it gains. 

cheers,
Gunnar

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-20 Thread Marc Mutz
On Friday July 20 2012, joao.abeca...@nokia.com wrote:
  Close to impossible.

 Oh, no. It's very possible. It's just not going to happen.

 We might as well have Qt50 and Qt52 and let the user pick one.
 Essentially, we're back at Qt5 and Qt6 with different names.

Yes, with the difference that a Qt5 application can't link against a Qt6 Qt 
w/o recompilation.

I'm not fighting for this, don't get me wrong, I'm just setting misconceptions 
straight.

Thanks,
Marc

-- 
Marc Mutz marc.m...@kdab.com | Senior Software Engineer
KDAB (Deutschland) GmbH  Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-20 Thread Olivier Goffart
On Thursday 19 July 2012 14:19:36 Marc Mutz wrote:
 On Wednesday July 18 2012, Olivier Goffart wrote:

  We discussed namespaces long time ago already, and decided not to put Qt
  in
  a namespace.
  The reason is that it breaks source compatibility by breaking all the
  forward declarations.
 
 Even with inline namespaces? Then they would have failed to achieve their
 goal to hide the fact that the type is in an inline namespace.

Yes, inline namespace won't help.

If you do:

class QString;
int foo(const QString );

It creates the symbol _Z3fooRK7QString, which is different from 
_Z3fooRKN3v507QStringE.


The suggested solution is, during Qt5 lifetime, introduce forward-declaration 
headers that declares all the Qt types, and deprecate the use of forward 
declarations.
Then in Qt6 we can finally move in a namespace.

-- 
Olivier

Woboq - Qt services and support - http://woboq.com
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Partial screen updates with Scenegraph

2012-07-20 Thread Uwe Rathmann
On 07/20/2012 09:02 AM, gunnar.sle...@nokia.com wrote:


 Based on the experience we had from the widget stack and graphics view,

  we early on concluded that for applications which have
  moderate amount of animations, partial updates hurts a lot more than 
  it gains.

I already had several projects using Qt/Embedded where the framebuffer 
device was the performance bottleneck ( due to missing kernel support or 
an appropriate board support package ).

Here partial updates were the only way to have an acceptable performance 
for certain operations like dragging objects over a canvas !

Uwe
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] cmake files for qt5 problems with Qt5Quick/Qt5Qml modules on Mac OS X

2012-07-20 Thread Stephen Kelly
On Wednesday, July 04, 2012 16:54:54 Stephen Kelly wrote:
 On Monday, July 02, 2012 15:06:34 Stephen Kelly wrote:
   The headers that are not being copied during a developer build cause
   build errors like this:
   myheaderfile.h:4:31: error: QQuickImageProvider: No such file or
   directory
  
  Ok, can you post the full path of the Qt5QmlConfig.cmake you want to
  use, the full path of the Qt5CoreConfig.cmake you want to use, and the
  full path of the QQuickImageProvider you want to use?
  
  I'm trying to understand why the existing path is 'wrong'.
 
 Just FYI, I think the CI system hit the same bug as you:
 
 https://codereview.qt-project.org/#change,29241
 
 The fix likely is going to be to copy the headers (along with the libs,
 cmake files, and everything else which is already there) to the qtbase
 location at build time if doing a developer-build, but we need to talk to
 mariusso about it.

The required fixes have landed in the repo. 

Could you test again with unmodified cmake files?

Thanks,

-- 
Stephen Kelly stephen.ke...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH  Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions

signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QFileSystemWatcher and Recursive Monitoring

2012-07-20 Thread Robert Knight
 With FSEvents you cannot emit signals such as fileChanged(), fileModified(),
 pathCreated(), or pathDeleted() if all you're notified about is that
 something happened in this folder here,

From my experience building an app that 'watches' a folder and imports
all files of a certain type
added there, I would prefer that QFSW was simple and reliable and
doesn't attempt
to impose a heavy cost or internal complexity (which translates into
bugs) for things
that the underlying APIs do not really support - leaving it up to the
app to decide how
best to handle these limitations.

As you say, applications which are watching (possibly large) directory
trees will likely
have their own database of content which they will compare any changes
to.  The app
can optimize this in domain-specfic ways, such as not recording any
information about
types of files it doesn't care about.

Here is the FSEvents wrapper we use on Mac for example:

https://gist.github.com/3149811

If the underlying APIs for fine-grained notifications and broad file
system watches are quite different (as is the case for Mac),
I think it makes sense not to try and 'paper over' that in the Qt
APIs, so providing different classes would be better.

 Would be easiest to implement, we could even drop all the threading currently 
 there now.

There is a lot to be said for internal simplicity, especially where
threading is concerned.

Regards,
Rob.

On 20 July 2012 06:28, logic.cpp logic@gmail.com wrote:
 #1
 Clarification of original post:

 When I say Making QFileSystemWatcher Recursive I mean *adding* new functions
 for recursive monitoring, such as addPathRecursively(). I don't mean to
 replace the current non-recursive functinality, which is very useful in its 
 own
 right (for A category use cases mentioned).
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Partial screen updates with Scenegraph

2012-07-20 Thread Andreas Aardal Hanssen
2012/7/20 gunnar.sle...@nokia.com

  Is it possible to set the new Grahpicsstack to do only partial screen
 updates?
  This would help me fixing some performance issues on embedded devices.Hi
 Dietrich,
 The scene graph does not do partial updates.
 Based on the experience we had from the widget stack and graphics view, we
 early on concluded that for applications which have moderate amount of
 animations, partial updates hurts a lot more than it gains.


Partial update support doesn't help for applications that don't _need_ it,
rather. And high-end mobile phones where there's enough CPU and GPU power
for the UI, which is the focus of QML 2 and the SceneGraph, don't need it.

For hardware and applications where memory bandwidth and CPU/GPU power is
an issue, for example when resolutions go above 800x480 (e.g., retina) and
there are multiple screens, with multiple layers (e.g. video playback or
animated wallpapers), supporting partial updates becomes a matter of win or
lose. Wasn't EGL_NOK_swap_region2 added for this reason?

Since SceneGraph doesn't support partial updates, those who need that
should choose QML 1 with QGV [*]. Perhaps when QML 3 comes out, there's be
a single solution to both problems ;-P.

[*] In QGV you can select QGraphicsView::FullViewportUpdate to avoid the
cost; the default being QGraphicsView::MinimalViewportUpdate which supports
disjoint viewport updates. QGraphicsView::BoundingRectViewportUpdate is a
good go-between. The cost imposed is not that bad. The example of dragging
an object around a screen without imposing full updates and complete
redraws is logical.

-- 
Andreas Aardal Hanssen
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Partial screen updates with Scenegraph

2012-07-20 Thread Uwe Rathmann
On 07/20/2012 12:32 PM, Andreas Aardal Hanssen wrote:


 Partial update support doesn't help for applications that don't _need_
 it, rather. And high-end mobile phones where there's enough CPU and GPU
 power for the UI, which is the focus of QML 2 and the SceneGraph, don't
 need it.



What about using regular desktop applications remotely ( X11, NX, VNC 
... ), where the network bandwidth is a limiting factor. F.e. in home 
office environments you sometimes run UIs over DSL ( or even slower ).

Isn't QML 2 the recommended API for desktop applications too ?

Uwe
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] To admins: QtSerialPort, need remove unused branch 2.0 from Gerrit

2012-07-20 Thread Denis Shienkov

Hello guys.

For add-on QtSerialPort in the playground need to remove the branch 2.0.
This branch (from parent QSerialDevice library) was mistakenly left in 
after the process of porting add-on to Gerrit.


I do not have enough privileges to do so. Who are some of the admins can 
help me?


Best regards,
Denis


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Partial screen updates with Scenegraph

2012-07-20 Thread Andreas Aardal Hanssen
2012/7/20 Uwe Rathmann uwe.rathm...@tigertal.de

 On 07/20/2012 12:32 PM, Andreas Aardal Hanssen wrote:
  Partial update support doesn't help for applications that don't _need_
  it, rather. And high-end mobile phones where there's enough CPU and GPU
  power for the UI, which is the focus of QML 2 and the SceneGraph, don't
  need it.
 What about using regular desktop applications remotely ( X11, NX, VNC
 ... ), where the network bandwidth is a limiting factor. F.e. in home
 office environments you sometimes run UIs over DSL ( or even slower ).
 Isn't QML 2 the recommended API for desktop applications too ?


I think it's really important for any desktop GUI to allow efficient
desktop sharing like that. But good sharing technologies don't rely on
partial update support in each and every application.

Generally speaking, applications based on transferring graphical content
over the network like that are split into two parks: (1) Those who rely on
expose events from the gui app to optimize traffic and (2) those who use
proper video encoders / that send compressed delta updates by comparing
frames. The latter supports everything, the former is, IMO, really
inefficient and should be a thing of the past.

I think partial update support is really about the local device's
capabilities.

-- 
Andreas Aardal Hanssen
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] To admins: QtSerialPort, need remove unused branch 2.0 from Gerrit

2012-07-20 Thread Sergio Ahumada
On 07/20/2012 01:40 PM, ext Denis Shienkov wrote:
 Hello guys.

 For add-on QtSerialPort in the playground need to remove the branch 2.0.
 This branch (from parent QSerialDevice library) was mistakenly left in
 after the process of porting add-on to Gerrit.

 I do not have enough privileges to do so. Who are some of the admins can
 help me?

 Best regards,
 Denis

done

-- 
Sergio Ahumada


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Suggestion on QML portability

2012-07-20 Thread Andreas Hartmetz
On Wednesday 18 July 2012 07:26:55 gunnar.sle...@nokia.com wrote:
 On Jul 17, 2012, at 9:17 PM, ext Andreas Aardal Hanssen wrote:
  2012/7/17 marius.storm-ol...@nokia.com
  
   (2D accelerators are often bundled with GPUs and perform 2D rendering
   ops faster than GPUs, but are unusable with QML 2 / SceneGraph; see
   pvr2d).
  
  2D accelerators bundled with GPUs perform 2D rendering ops faster than
  GPUs? Uhmm... that sentence is conflicting in my head, unless you mean
  that you are using highly specialized boards with multiple GPUs (n*PVR)
  on them to do things really really fast in parallel.
  
  [OT]
  
  No, I really mean dedicated 2D hardware chips outperform GPUs by far. It's
  easy to do certain common simple 2D graphics faster than most embedded
  GPUs I know of, even using the CPU. GPUs are built for (1) 3D
  transformations on textures, (2) vertex-heavy objects and (3) per-pixel
  shading operations. But it's easily beat for simple 2D operations like
  blit (e.g., DMA), filtering/scaling (e.g., FPGAs). Most mobiles / tablet
  UIs are 90% 2D.
  
  My point is simply that Qt 5 is best served with a painting backend for
  QML 2 that can support non-OpenGL technologies.
 Though true that 2D blitters support the basic features needed by many UI's
 it also comes with a lot of limitations.
 
 They often operate on contiguous memory blocks, which need to be allocated
 by the kernel and comes which is limited in terms of what you can allocate.
 On several chips I've worked on, this is a system-wide pool, specified at
 boot-time.
 
 They would also not support basic primitives, such as drawing rounded
 rectangles, antialiasing, free rotation, perspective transformation and
 9-patch border images. So all of these would have to be rendered in
 software. This means a heavy mixing of CPU and accelerated drawing and we
 both know that combination does indeed suck. OpenGL is flexible enough to
 support what we need while at the same time providing us with very good
 performance, so it is the best thing we got.
 
 If you know you are not using any of these features, then you could write
 your own renderer using the scene graph adaptation layer. A renderer that
 only looks at translate and scale transforms, maybe supports opacity and
 draws solid color boxes and pre-generated images. Text could be done using
 the adaptation for glyph nodes to render text using QPainter and then that
 could also be blitted in the renderer. This is doable today, but it would
 not support the full QML feature set, so it is not something we will invest
 time in.
 
 There is also the possibility of using a software emulation library for the
 OpenGL stack to do all the rasterization in software, if there is no OpenGL
 chip. QML2 on llvmpipe beats QML1 on QPainter/raster, after all..
 

In my experience your statement is not true. With llvmpipe I could run some 
~400x300 pixel QML2 demos(*) at 60 FPS on a 2.4 GHz Core 2 CPU with maybe 40% 
load. I have also seen a ~480x320 pixel QML1 UI I worked on run at 20 FPS on a 
300 MHz ARM9 CPU.
The desktop CPU is at least 15x faster.

The ratio of instructions per pixel and frame is then, approximately:
15 * 0.4 * (480 * 320 * 20) / (400 * 300 * 60) = 2.56
which is very good for the hard task llvmpipe is accomplisihing, but 
nevertheless it is slower.

(*) with surprisingly little frame rate and CPU load difference between the 
simplest Pong demo and some advanced ones using pixel shaders - I made sure 
that I was really using the software renderer, and I was, because the CPU load 
went to 10% after switching to hardware OpenGL.

Cheers,
Andreas
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QFileSystemWatcher and Recursive Monitoring

2012-07-20 Thread Konstantin Ritt
 I would prefer that QFSW was simple and reliable and doesn't attempt to 
 impose a heavy cost or internal complexity (which translates into bugs) for 
 things that the underlying APIs do not really support
Same opinion here.
Since we could get a good solution for windows only, the
QRecursiveFileSystemWatcher class goes to be not really
cross-platform.
Where the amount of nested levels is relatively small, the
QFileSystemWatcher could be used for recursive watching manually
instead - in a cross-platform way.

P.S. I'm still interested in improving the QFSW windows backend by
using ReadDirectoryChanges WinAPI instead of thread pool of
waiters/listeners.

regards,
Konstantin


2012/7/20 Robert Knight robertkni...@gmail.com:
 With FSEvents you cannot emit signals such as fileChanged(), fileModified(),
 pathCreated(), or pathDeleted() if all you're notified about is that
 something happened in this folder here,

 From my experience building an app that 'watches' a folder and imports
 all files of a certain type
 added there, I would prefer that QFSW was simple and reliable and
 doesn't attempt
 to impose a heavy cost or internal complexity (which translates into
 bugs) for things
 that the underlying APIs do not really support - leaving it up to the
 app to decide how
 best to handle these limitations.

 As you say, applications which are watching (possibly large) directory
 trees will likely
 have their own database of content which they will compare any changes
 to.  The app
 can optimize this in domain-specfic ways, such as not recording any
 information about
 types of files it doesn't care about.

 Here is the FSEvents wrapper we use on Mac for example:

 https://gist.github.com/3149811

 If the underlying APIs for fine-grained notifications and broad file
 system watches are quite different (as is the case for Mac),
 I think it makes sense not to try and 'paper over' that in the Qt
 APIs, so providing different classes would be better.

 Would be easiest to implement, we could even drop all the threading 
 currently there now.

 There is a lot to be said for internal simplicity, especially where
 threading is concerned.

 Regards,
 Rob.

 On 20 July 2012 06:28, logic.cpp logic@gmail.com wrote:
 #1
 Clarification of original post:

 When I say Making QFileSystemWatcher Recursive I mean *adding* new 
 functions
 for recursive monitoring, such as addPathRecursively(). I don't mean to
 replace the current non-recursive functinality, which is very useful in its 
 own
 right (for A category use cases mentioned).
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Native event filter

2012-07-20 Thread David Faure
On Tuesday 26 June 2012 13:17:27 Thomas McGuire wrote:
 Hi,
 
 On Tuesday 26 June 2012 12:48:56 David Faure wrote:
  So I looked further into this, and discussed it with several people at
  QtCS, and decided that not only the implementation needed fixing, the API
  too. The current API can lead to crashes if removing install event filters
  in a different order than the reverse-order-of-setting, and leads to ugly
  code (global C function, which basically requires having a singleton).
  
  In https://codereview.qt-project.org/#change,29260 I'm proposing a new
  API:
  
  QCoreApplication::instance()-installNativeEventFilter(obj);
 
 I very much support this change and hope it will get into Qt 5.0. Currently
 the system is very brittle once you try to install more than one
 EventFilter, as the filters are chained, and the user of the API needs to
 remember to call the previous filter in the chain, or everything breaks. In
 addition, if one of the filters in the chain gets deleted, there are
 dangling pointers and again the whole chain is broken. Yet using
 EventFilters is unavoidable, for example the Blackberry QtMultimedia
 backend needs it to get multimedia update events. As this API solves all
 this, I'd really like to see that in Qt.

It's in, finally :-)

-- 
David Faure | david.fa...@kdab.com | Managing Director KDAB France
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] To admins: QtSerialPort, need remove unused branch 2.0 from Gerrit

2012-07-20 Thread Denis Shienkov
thank you

Best regards,
Denis

 On 07/20/2012 01:40 PM, ext Denis Shienkov wrote:
 
 Hello guys.

 For add-on QtSerialPort in the playground need to remove the branch 2.0.
 This branch (from parent QSerialDevice library) was mistakenly left in
 after the process of porting add-on to Gerrit.

 I do not have enough privileges to do so. Who are some of the admins can
 help me?

 Best regards,
 Denis
 
 done
 
 --
 Sergio Ahumada
 
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development


 -- 
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QFileSystemWatcher and Recursive Monitoring

2012-07-20 Thread Charley Bay
snip, please share thoughts on QFileSystemWatcher (maybe
monitor-recursive) 

 As you say, applications which are watching (possibly large) directory
 trees will likely
 have their own database of content which they will compare any changes
 to.  The app
 can optimize this in domain-specfic ways, such as not recording any
 information about
 types of files it doesn't care about.

I'd like to kind-of-disagree here:  IDEs like QtCreator or
any-other-developer-IDE would need to monitor large directory trees, and
may not rely upon their own databases.  It would be nice to have this
recursive-monitoring for things like build-system-daemons.  The goal is
central-notification-from-many-large-file-system-roots, and that seems
like a fairly useful abstraction that could be used by many
application-specific tools.

Really good work, IMHO, comparing about the cross-platform issues.  Bummer
about the Mac.  It would be curious if that were to change going-forward
(as the future is larger hard drives, and more reliance upon files as
everybody goes SSD-fast).

I'd *prefer* a QFileSystemWatcherRecursive implementation, even if it
could not be cross-platform (e.g., problems on the Mac).  I understand why
that's not preferred -- we want to get away from system-specific anomaly.
Mostly, I'd hope that over time, there would be a technical solution to get
it working on the Mac, but at least let people could start using it on
Windows/Linux.

I could be talked out of this, though.

Just my $0.02.

--charley
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Could anyone provide the mkspec for Windows clang tool chain?

2012-07-20 Thread Yang Fan
Hi list,

I want to use clang compiler with MinGW tool chain on my Windows box, does
any one have the mkspec for Qt 4.8.2? Thanks in advance.

-- 
Regards,
Fan Yang
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development