[Qgis-developer] Using the power of GPU/OpenCL

Martin Dobias wonder.sk at gmail.com
Fri Aug 12 09:49:50 EDT 2011


On Fri, Aug 12, 2011 at 3:00 PM, Andreas Neumann <a.neumann at carto.net> wrote:
>
> My idea was that one could speed up rendering by rendering layers in
> parallel (in cores and or cpus). Often, QGIS projects consist of 25 to
> 100 layers.
>
> As I understand - QGIS, until recently (until Martins new patch) - would
> render one layer after the other in the order they appear in the
> project. At the end it would do the label placement. Is parallel
> rendering already part of your multithreading patch, Martin? Would it be
> possible to render individual layers in parallel and then do the
> compositing at the end?

Right, as of now layers are rendered one by one following the order.
The rendering branch renders the layers in parallel to separate images
and then composes them together in right order.


> Automatic labeling is obviously something that could use more speed -
> but I am not sure if this could be done in parallel. I think it is
> more a serial process. One needs the previous candidates for new
> candidates to test against. But maybe it could be done in parallel with
> other rendering and maybe it would run faster on a GPU? Just mere
> speculation.

The automatic labeling works like this:
1. while rendering vector layers: features are registered to PAL
2. when rendering of layers has finished:
  2a. extract label candidates for features and estimate their cost
  2b. solve the labeling problem given the candidates
  2c. draw labels

>From my experience 2a is the (only) slow part of the process, while
the focus of PAL authors was to have fast step 2b.

Evaluation of cost of label candidates for polygons is maybe the most
inefficient part, leading to major. I have some ideas how to improve
that, but not enough free time to work on that.


Martin


More information about the Qgis-developer mailing list