[Kstars-devel] Performance of KStars Lite

Artem Fedoskin afedoskin3 at gmail.com
Sun Jun 5 22:57:16 UTC 2016


Hi Akarsh and Jasem,

> What projections are you supporting in the Android version?

All of the projections present in KStars will be in KStars Lite.

> I thought this was already done. If it's not, you might want to do a
> git blame and see the relevant commit logs. Equirectangular projection
> is special in that it can allow you to see both hemispheres
> simultaneously, and we like to allow for this to happen in KStars.

For example in SkyQPainter::drawSkyPolyline we first call
Projector::toScreen() and then Projector::checkVisibility(). I think that
in this case checkVisibility() is used to not draw the object when it is
not visible but we still anyway call toScreen().

> Questions regarding Qt Quick -- you might get a lot of help on the
> kde-devel IRC channel or the kde-devel mailing list.

Thank you for your suggestion. I've already sent an e-mail to qt-interest
mailing list and made a topic on Qt forum but will try IRC and kde-devel
mailing list.

> I'm CCing Dr. Bowlin who is the architect behind

Thank you for helping me with this :)

Regards, Artem

2016-06-05 7:37 GMT+02:00 Jasem Mutlaq <mutlaqja at ikarustech.com>:

> Hi Artem,
>
> sincos() is used in a few places and is indeed the most expensive
> operation. It is also not cross-platform. I'm CCing Dr. Bowlin who is the
> architect behind the SkyMesh and a lot of the drawing and optimization code
> in KStars today. He is probably best to answer any questions on this topic.
>
> Regards,
> Jasem
>
>
> On Sun, Jun 5, 2016 at 1:27 AM, Artem Fedoskin <afedoskin3 at gmail.com>
> wrote:
>
>> Dear developers of KStars,
>>
>> While porting lines (Equator, EquatorialCoordinateGrid,
>> HorizontalCoordinateGrid,
>> ConstellationLines etc.) I noticed that performance of Android version
>> fell down pretty significant. Profiler shows that sincos is called a lot
>> and at least on my tablet this causes very laggy slewing.
>> I thought that we could use SkyMesh to see what lines have to be updated
>> and call toScreenVec accordingly but it turns out that SkyMesh doesn't
>> always return visible Trixels correctly. I'm doing the following:
>>
>>    1. Call SkyMesh::aperture(focus, radius)
>>    2. Iterate over visible trixels with MeshIterator region (mesh,DRAW_
>>    BUF);
>>
>> On minimum zoom when the whole half sphere is visible I get all 512
>> trixels. I thought that in this case it has to be around 256 trixels.
>> Also when I don't draw lines based on what trixels are visible, some of
>> lines in visible area are not drawn. Is it a normal behavior or a bug?
>>
>> Is it possible to minimize the number of calls to Projector::toScreenVec()?
>> Can we modify Projector::checkVisibility() so that we don't call
>> toScreenVec() if we now that the SkyPoint is not visible?
>>
>> I committed all the changes so feel free to test them on your device and
>> measure the performance. Also, if someone has experience with shaders I
>> would appreciate helping me as Qt Quick Scene Graph doesn't support drawing
>> dashed lines out of a box and I would like to use shaders for that but
>> have a few questions.
>>
>> Regards, Artem
>>
>> _______________________________________________
>> Kstars-devel mailing list
>> Kstars-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/kstars-devel
>>
>>
>
>
> --
> Best Regards,
> Jasem Mutlaq
>
>
> _______________________________________________
> Kstars-devel mailing list
> Kstars-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kstars-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kstars-devel/attachments/20160606/fce76170/attachment.html>


More information about the Kstars-devel mailing list