These are chat archives for AvaloniaUI/Avalonia

21st
Nov 2015
Nikita Tsukanov
@kekekeks
Nov 21 2015 01:01 UTC
Mkay, got iOS rendering our testapp with skia
Nikita Tsukanov
@kekekeks
Nov 21 2015 01:07 UTC
For some reason its slow as fuck
Nikita Tsukanov
@kekekeks
Nov 21 2015 01:25 UTC
[0:] Render took 00:00:00.0969571
10FPS at max
Render took 00:00:00.2347565
wtf
Nikita Tsukanov
@kekekeks
Nov 21 2015 01:40 UTC
People from the internet are telling that Skia GPU-based backend is actually slower than CPU-based
That was 4 years ago, but still
Nikita Tsukanov
@kekekeks
Nov 21 2015 01:51 UTC
Well, it seems that low performance is somehow bound to timers
@grokys DispatcherTimer now queues tick even if previous one wasn't handled
That might lead to queue overflow
It also ignores the fact that platform might call it from UI-thread
Nikita Tsukanov
@kekekeks
Nov 21 2015 02:05 UTC
I'll see what we can do about huge render time
May be we should switch to SW rendering or even abandon the idea of using skia for iOS
This message was deleted
Nikita Tsukanov
@kekekeks
Nov 21 2015 02:47 UTC
The question is, why does Skia have acceptable performance on Android
I don't get it at all
Nikita Tsukanov
@kekekeks
Nov 21 2015 03:23 UTC
May be that's because of retina display
Nikita Tsukanov
@kekekeks
Nov 21 2015 03:30 UTC
Basically, we need a proper rendering pipeline
Nikita Tsukanov
@kekekeks
Nov 21 2015 03:49 UTC
Hm, it seems that I haven't disabled default layer animations
Weston
@ronnyek
Nov 21 2015 03:49 UTC
lots of android hardware have rough equivalent to retina
afaik my note 5 has 4k equivalent
Nikita Tsukanov
@kekekeks
Nov 21 2015 03:50 UTC
Have you tried to run our test app on that?
Weston
@ronnyek
Nov 21 2015 03:50 UTC
negative
my dev environment isnt in a fantastic place
Steven Kirk
@grokys
Nov 21 2015 07:37 UTC
could be the render time that's the problem - it's something that I know needs a proper rewrite
KeyboardDevice/MouseDevice don't need to be abstract I guess - but they're expected to be created with a platform-specific version in the platform backend
Render took 00:00:00.2347565
ouch!
that seems too high for any reason
Dan Walmsley
@danwalmsley
Nov 21 2015 16:01 UTC
Hey guys... trying to install Perspex.Desktop nuget package... its throwing exceptions..
Install failed. Rolling back...
Package 'SharpDX 2.6.3' does not exist in project 'AvalonStudio'
Package 'SharpDX 2.6.3' does not exist in folder 'C:\development\repos\avalonstudio\AvalonStudio\packages'
System.NullReferenceException: Object reference not set to an instance of an object.
   at NuGet.Protocol.Core.v3.GlobalPackagesFolderUtility.<AddPackageAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
that appears in package manager console output!
Shahid Khan
@shahid-pk
Nov 21 2015 16:34 UTC
corert uses ryujit for compiling to native , currently their ryujit lacks implementation backend for arm. their is a guy who is trying to bring coreclr on arm, he contributed to the upstream some changes that made coreclr compile on arm ,, then kangaroo made it compile on arm64 bit and also was able to run a hello world.
if we some how port coreclr to arm , we will get aot for free and this is also the biggest hurdle for ios and android
This project will benefit a lot from that and won't have to use xamrin
Nikita Tsukanov
@kekekeks
Nov 21 2015 17:16 UTC

that seems too high for any reason

Yep, and it takes that much time even if I'm using 1x1 RenderTargetBitmap

Not sure what's happening there
May be I should do something about method tables
@danwalmsley switch to Paket
Nuget is cleanly broken for you
Nikita Tsukanov
@kekekeks
Nov 21 2015 18:02 UTC
2015-11-21 21:01:05.579 PerspexiOSTestApplication[4246:60b] Render started 00:00:17.0383019
2015-11-21 21:01:05.588 PerspexiOSTestApplication[4246:60b] Bounds updated 00:00:17.0470339
2015-11-21 21:01:05.598 PerspexiOSTestApplication[4246:60b] context created 00:00:17.0575359
2015-11-21 21:01:05.662 PerspexiOSTestApplication[4246:60b] rectangle filled created 00:00:17.1209503
2015-11-21 21:01:05.684 PerspexiOSTestApplication[4246:60b] Null render completed 00:00:17.1430992
2015-11-21 21:01:05.695 PerspexiOSTestApplication[4246:60b] Render completed 00:00:17.1540774
2015-11-21 21:01:05.704 PerspexiOSTestApplication[4246:60b] Render took 00:00:00.1156224
100 calls to DrawRect with empty rect take 20ms
WTF
Nikita Tsukanov
@kekekeks
Nov 21 2015 18:26 UTC
Oh, it "only" takes 4ms actually
Filling the whole screen with blue background takes 30ms however
which is outrageous
5ms to flip bufffers
wtf
For proper mobile support we clearly need 2 thins
1) proper render tree that won't redraw everything
2) background thread rendering
Nikita Tsukanov
@kekekeks
Nov 21 2015 18:33 UTC
May be it's managed->native ptr-based bride, that is slow
Steven Kirk
@grokys
Nov 21 2015 19:56 UTC
yeah, i suspect there's something wrong there. that's like 386 speeds
there's no way it should take 30ms to fill the screen
Nikita Tsukanov
@kekekeks
Nov 21 2015 19:58 UTC
I'll try to rewrite that stuff using GLKView
Steven Kirk
@grokys
Nov 21 2015 19:59 UTC
btw sorry everyone i've not been around much - some stuff came up. should be back to normal service next week though, hopefully.
Nikita Tsukanov
@kekekeks
Nov 21 2015 20:00 UTC
BTW, something weird happened with visual brush again
See xamltestapplication
Steven Kirk
@grokys
Nov 21 2015 20:01 UTC
will do
btw if anyone knows ruby, pls let me know, i need to ask some questions!
Nikita Tsukanov
@kekekeks
Nov 21 2015 20:06 UTC
I also found out that my RenderTargetBitmap implementation was very inefficient with gpu rendering
It has nothing to do with low FPS on ios through
Darnell Williams
@Seeker1437
Nov 21 2015 21:17 UTC
Who here is skilled witht he viewbox?
hmm bad chat
Nikita Tsukanov
@kekekeks
Nov 21 2015 21:58 UTC
~10 FPS seems to be normal for skia on iOS
Nikita Tsukanov
@kekekeks
Nov 21 2015 22:17 UTC
Well, it's either mono or perspex to be blamed for low FPS
And since perspex is doing fine on Android, I'd say it's Mono
I'm calling the same methods from ObjC and getting 60FPS
When I run rect drawing 10 times, I'm still getting ~50FPS
Hm
Nikita Tsukanov
@kekekeks
Nov 21 2015 22:26 UTC
Well, it's still around 25-30 FPS in retina mode
I'll try to improve fps by using GLKView
Nikita Tsukanov
@kekekeks
Nov 21 2015 22:56 UTC
Yeah, with GLKView I'm gettin 60FPS even for retina
But that's from ObjC-app
Nikita Tsukanov
@kekekeks
Nov 21 2015 23:36 UTC
Mkay, iOS, retina, filled display, rotating rectangles, FPS 60 (seems to be limited by iOS), render time is less than 1ms
But that's from ObjC
Which is our target performance to be achieved from C#