These are chat archives for AvaloniaUI/Avalonia

24th
Nov 2015
Steven Kirk
@grokys
Nov 24 2015 00:27 UTC
@wieslawsoltes - i just merged #327 from @donandren - does this improve the memory leaks you were seeing?
apologies merging the PRs took so long
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:28 UTC
@grokys memory leak is still there even with skia backend
which weren't leaking in the first place
Steven Kirk
@grokys
Nov 24 2015 00:28 UTC
but d2d was leaking a lot more right?
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:29 UTC
TestApplication is a good place for debugging backend-based leaks, since it doesn't have any bindings
Weston
@ronnyek
Nov 24 2015 00:29 UTC
You guys using dottrace and like to hunt it down?
Steven Kirk
@grokys
Nov 24 2015 00:29 UTC
i've not started looking yet
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:29 UTC
D2D leak could be reproduced by TestApplication
@grokys have you applied for dotTrace license?
I can't ask these guys to speed up the process if you haven't applied
Weston
@ronnyek
Nov 24 2015 00:30 UTC
You can trial it free for 30 days
Eaps for longer
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:30 UTC
Well, there aren't any eaps at the moment
they've just released 10.0
Steven Kirk
@grokys
Nov 24 2015 00:31 UTC
i'm just emailing them now - i applied for it originally but they only gave me resharper
you know, i've turned resharper off. its so noisy
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:33 UTC
Ehm?
You can disable some inspections if you don't like them
Steven Kirk
@grokys
Nov 24 2015 00:34 UTC
it fills the editor with so much clutter, i find it distracting
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:35 UTC
The good thing about resharper is that everything is configurable
Steven Kirk
@grokys
Nov 24 2015 00:35 UTC
what is the most useful feature?
(s)
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:35 UTC
Most useful? Find usages
Might not be unique, but it's my most used feature
The second used is code generation
it can create fields from constructor parameters, turn autoproperty to backed one, that sort of stuff
Also very useful for generating constructors, generating equality members, etc
Steven Kirk
@grokys
Nov 24 2015 00:38 UTC
ok, i will take a look at those
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:39 UTC
It's renamer not only renames every usage, it can rename variables/fields of the type you are renaming
Adjust namespaces feature is also nice, it makes namespaces follow directory structure
But find usages is the best. VS itself has CodeLens, but it never worked for me
CodeLens usually cause VS to freeze when I'm editing code
Steven Kirk
@grokys
Nov 24 2015 00:41 UTC
i never had a problem with codelens
@kekekeks i merged a PR from @wieslawsoltes which changed some naming which caused a skia project to not build
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:44 UTC
-_\\
Steven Kirk
@grokys
Nov 24 2015 00:44 UTC
i can't load the skia projects to fix them however
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:45 UTC
You only need to fix code in the shared project
which is the part of win32 library
Which you should be able to load from VS
Other projects should be fixed automagically
Since they only contain platform-specific stuff
Steven Kirk
@grokys
Nov 24 2015 00:46 UTC
that doesn't seem to be the case afaics
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:46 UTC
Does Skia.Desktop project build properly?
Steven Kirk
@grokys
Nov 24 2015 00:48 UTC
ah that was unloaded, trying to load it now, but VS seems to have hung...
ok, fixed
David Fowler
@davidfowl
Nov 24 2015 04:02 UTC
yo
Weston
@ronnyek
Nov 24 2015 06:05 UTC
yo
bitbonk
@bitbonk
Nov 24 2015 06:47 UTC
@all How is Perspex UI related to OmniXaml ?
Weston
@ronnyek
Nov 24 2015 06:50 UTC
utilizes it for parsing xaml afaik
David Fowler
@davidfowl
Nov 24 2015 06:53 UTC
wtf is omnixaml
lol
bitbonk
@bitbonk
Nov 24 2015 06:53 UTC
looks like an open source xaml reader/writer
Wiesław Šoltés
@wieslawsoltes
Nov 24 2015 08:33 UTC

@wieslawsoltes - i just merged #327 from @donandren - does this improve the memory leaks you were seeing?

@grokys I do not see the shadow object anymore, but memory is still leaking, I think that is related to was has @kekekeks found, that visual tree remains in memory.

Wiesław Šoltés
@wieslawsoltes
Nov 24 2015 08:41 UTC
Before fix:
before.PNG
and after the fix:
after.PNG
Steven Kirk
@grokys
Nov 24 2015 10:43 UTC
@ronnyek is correct re: omnixaml
Nikita Tsukanov
@kekekeks
Nov 24 2015 13:59 UTC
@grokys I totally forgot about that new Resharper Build feature
Really, really useful, speed up compilation time a lot
Nikita Tsukanov
@kekekeks
Nov 24 2015 14:32 UTC
Mkay, skia test app is rendered in 60FPS on iOS
On my retina ipad
Weston
@ronnyek
Nov 24 2015 14:37 UTC
nice
hows control support
fairly complete?
I know you guys were talking about dropdown being non existent a while back
Nikita Tsukanov
@kekekeks
Nov 24 2015 14:39 UTC
control support?
We don't have virtualizing panel
You can't have a proper UI framework without list virtualization
Weston
@ronnyek
Nov 24 2015 14:41 UTC
ahh
Nikita Tsukanov
@kekekeks
Nov 24 2015 14:41 UTC
The good thing is that you are free to implement it :)
It's one of the things
Weston
@ronnyek
Nov 24 2015 14:42 UTC
oh boy control building in java ruined it for me everywhere else
lots of hoop jumping
Nikita Tsukanov
@kekekeks
Nov 24 2015 14:42 UTC
that don't require deep knowledge of perspex internals
Weston
@ronnyek
Nov 24 2015 14:46 UTC
you think theres any realistic way xaml/perspex could support some sort of adaptive layout
even if its just browser size thresholds?
Steven Kirk
@grokys
Nov 24 2015 14:47 UTC
we do have a dropdown but no combobox
we might need to rethink how those controls are done i think
adaptive layout certainly needs to be possible
Weston
@ronnyek
Nov 24 2015 14:50 UTC
browser = window
sorry
seems like you could have just alternate layouts and I'd think if the databinding works like you'd build a typical mvvm app, it just wouldnt matter if you moved controls aroudn and resized them on screen
unlike shitty android
oh configuration changed? Lets destroy all the things, force you to serialize state into a very specific format, and restore and restore state
but not force you to store state that way or just handle it for you
Steven Kirk
@grokys
Nov 24 2015 15:04 UTC
yeah, there are various different ways to handle it
tbh i'd be interested to see how the community handles such things, as i'm not sure what the best way would be
José Manuel Nieto
@SuperJMN
Nov 24 2015 15:11 UTC
In my opinion, Windows 10 Universal Apps do a good job there
using AdaptiveTriggers
Egor Bogatov
@EgorBo
Nov 24 2015 15:19 UTC
I cloned the whole repo, opened it, it restored some packages but it doesn't compile :( (some basic PCLs do, but i.e. Perspex.Diagnostics doesn't)
Nikita Tsukanov
@kekekeks
Nov 24 2015 15:20 UTC

you think theres any realistic way xaml/perspex could support some sort of adaptive layout

It already has UI scaling

Egor Bogatov
@EgorBo
Nov 24 2015 15:20 UTC
oh, I didn't read the "how to build" I guess
Nikita Tsukanov
@kekekeks
Nov 24 2015 15:21 UTC
And rotating screen does resize stuff, just like when window is resized
So you can use MinWidth/MaxWidth from Column/RowDefinition in Grid
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:08 UTC
I'm getting an impression that something timer-related is broken
That's why ios is behaving weird
Steven Kirk
@grokys
Nov 24 2015 16:09 UTC
that's often not enough though - you often need to actually change the layout depending on screen size
Egor Bogatov
@EgorBo
Nov 24 2015 16:16 UTC
are you guys planning to implement TextOptions.TextFormattingMode="Display" ?
because fonts don't look good on office-dpi displays :(
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:18 UTC
Try skia backend
it uses GDI font rendering
Meh, it seems that Perspex generates too much memory traffic
And app gets frozen by blocking GC
Because I'm getting sparks of smooth animation interrupted by freezes
Egor Bogatov
@EgorBo
Nov 24 2015 16:20 UTC
mobile?
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:20 UTC
iOS specifically
@EgorBo why sgen isn't enabled by default for iOS?
Is there any option to tune GC? On desktop I can specify nursery size, for example
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:27 UTC
@grokys high memory traffic is the downside of using RX
Egor Bogatov
@EgorBo
Nov 24 2015 16:29 UTC
@kekekeks sorry I am not that good in iOS to answer that (but I can help with Android if needed). perhaps it should allow to specify mono flags where you can set nursery size for sgen.
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:31 UTC
Yep, it seems that it gets approximately 5 drawing cycles before everything gets frozen (timers don't tick, etc)
Egor Bogatov
@EgorBo
Nov 24 2015 16:32 UTC
too many allocations?
Steven Kirk
@grokys
Nov 24 2015 16:32 UTC
hmm, i don't think that rx specifically should cause high memory traffic
but, as i've said many times, perspex is not optimized yet
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:33 UTC
@EgorBo do you have experience of profiling things on ios?
Egor Bogatov
@EgorBo
Nov 24 2015 16:34 UTC
no :( I don't
Steven Kirk
@grokys
Nov 24 2015 16:35 UTC
i've sent a request for dottrace to jetbrains
but unfortunately it looks like i've got my hands full until next tuesday
once observables are registered, notifications should be a simple method call
adding/removing subscriptions will cause allocations, but notifications shouldn't
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:37 UTC
Well, something allocates too much stuff
Steven Kirk
@grokys
Nov 24 2015 16:37 UTC
i believe you
i've been concentrating on getting stuff working rather than on optimizing
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:39 UTC
BTW "Images" page runs almost smoothly
for now I'm merging this stuff
Since it mostly in working condition
I'll try to hunt allocations on desktop
Egor Bogatov
@EgorBo
Nov 24 2015 16:43 UTC
typical manager: i've been concentrating on getting stuff working rather than on optimizing
typical coder: it mostly in working condition
:)
Steven Kirk
@grokys
Nov 24 2015 16:44 UTC
thanks. i may have a bit of time to look at it this evening
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:10 UTC
Render loop is allocating a lot of enumerators
visual.VisualChildren.OrderBy(x => x.ZIndex)
We should probably avoid allocations there
I'll see what I can do about that
LINQ in "hot" code paths is a big no-no
Steven Kirk
@grokys
Nov 24 2015 17:24 UTC
yep, i agree - i remember thinking that when i wrote it...
blob
however, running the test app, it seems that it's mainly unmanaged memory that's leaking
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:25 UTC
Try with skia backend, it's not leaking
And with ios the issue isn't the leak, but the number of allocations
It also may be something completely irrelevant to memory issues, but memory traffic should be reduced anyway
Egor Bogatov
@EgorBo
Nov 24 2015 17:29 UTC
rule number one: never use linq and async in a render loop :)
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:29 UTC
@grokys dispatchertimer seem to allocate a lot of Action objects
Steven Kirk
@grokys
Nov 24 2015 17:33 UTC
hummm.. ok
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:33 UTC
Nvm, most of them are neccessary
Steven Kirk
@grokys
Nov 24 2015 17:35 UTC
btw, why is resharper saying i've got errors on pretty much every line of perspex?
Module 'mscorlib', Version 4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' should be referenced.
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:35 UTC
Downgrade to 9.2
Steven Kirk
@grokys
Nov 24 2015 17:35 UTC
it makes it hard to concentrate
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:36 UTC
They still haven't patched up PCL-related bugs in the latest release
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:42 UTC
Nope, reducing memory traffic haven't fixed the issue
WTF
Wiesław Šoltés
@wieslawsoltes
Nov 24 2015 18:16 UTC
Direct2D
d2d.PNG
This message was deleted
SKIA
This message was deleted
skia.PNG
Using latest build
Nikita Tsukanov
@kekekeks
Nov 24 2015 18:19 UTC
It seems that direct2d isn't leaking anymore, yay
Weston
@ronnyek
Nov 24 2015 18:43 UTC
changing what
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:08 UTC
ARGH
"Container already created" bug is annoying
It causes ~75% of my crashes on ios
Weston
@ronnyek
Nov 24 2015 19:16 UTC
I dont think I know anyone else using the light theme in vs.net =)
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:17 UTC
I found what Xamarin is good for
workouts
Weston
@ronnyek
Nov 24 2015 19:18 UTC
?
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:18 UTC
I can do 40-50 sit-ups while it's compiling :)
Weston
@ronnyek
Nov 24 2015 19:18 UTC
I'm impressed with what they've done, but I'd much rather see it be open source project or microsoft backed
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:19 UTC
Well, it mostly opensource
Weston
@ronnyek
Nov 24 2015 19:19 UTC
yeah
but can you even use aot to compile a mono app for any other platform than what its running on
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:19 UTC
You can
As long as you are shipping mono runtime as a separate library
Weston
@ronnyek
Nov 24 2015 19:20 UTC
I feel like they drive mono's entire development off game development
aot you shoudlnt need a mono runtime
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:20 UTC
Runtime is LGPL licensed
Well, GC and stuff

I feel like they drive mono's entire development off game development

Well, for now I'm doing what most game devs do (using CFDisplayLink and two-stage "render loop") and getting performance issues

00:00:39.3009836 Entered frame
00:00:39.3009836 Timers complete
00:00:39.3009836 Job loop complete
00:00:39.3009836 Render complete
2015-11-24 22:21:51.296 PerspexiOSTestApplication[6751:60b] 
00:00:39.2863280 Entered frame
00:00:39.2863280 Timers complete
00:00:39.2863280 Job loop complete
00:00:39.2863280 Render complete
2015-11-24 22:21:51.310 PerspexiOSTestApplication[6751:60b] 
00:00:39.3009836 Entered frame
00:00:39.3009836 Timers complete
00:00:39.3009836 Job loop complete
00:00:39.3009836 Render complete
[0:] 
00:00:39.3176601 Entered frame
00:00:39.3176601 Timers complete
00:00:39.3176601 Job loop complete
00:00:39.3176601 Render complete
That's without animations
00:01:33.1275140 Entered frame
00:01:33.1275140 Timers complete
00:01:33.1275140 Job loop complete
00:01:33.1275140 Render complete
2015-11-24 22:22:45.182 PerspexiOSTestApplication[6751:60b] 
00:01:33.1275140 Entered frame
00:01:33.1275140 Timers complete
00:01:33.1275140 Job loop complete
00:01:33.1275140 Render complete
[0:] 
00:01:33.1821346 Entered frame
00:01:33.1821346 Timers complete
00:01:33.1821346 Job loop complete
00:01:33.1821346 Render complete
2015-11-24 22:22:45.230 PerspexiOSTestApplication[6751:60b] 
00:01:33.1821346 Entered frame
00:01:33.1821346 Timers complete
00:01:33.1821346 Job loop complete
00:01:33.1821346 Render complete
That's with them
As you can see, everything happens almost instantly
But for some weird reason it's not rotating properly
Weston
@ronnyek
Nov 24 2015 19:24 UTC
@kekekeks I mean like there will be bugs in mono to do with web applications that just sit and sit and sit and sit and sit
one little minor thing to do with game dev or xamarin whatever
BAM
fixed
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:25 UTC
Bugs, where? In ASP.NET?
Weston
@ronnyek
Nov 24 2015 19:25 UTC
yes those are their commercial channels
on the mono side, yes
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:25 UTC
Which was a piece of proprietary bloatware in the first place?
Weston
@ronnyek
Nov 24 2015 19:25 UTC
asp.net encompases mvc as well
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:25 UTC
I haven't got any mono bugs when I was using NancyFx
David Fowler
@davidfowl
Nov 24 2015 19:25 UTC
lol
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:26 UTC
And haven't got any with vNext
Weston
@ronnyek
Nov 24 2015 19:26 UTC
vnext is different
David Fowler
@davidfowl
Nov 24 2015 19:26 UTC
mono is a bug farm
Weston
@ronnyek
Nov 24 2015 19:26 UTC
even with the mono runtime
David Fowler
@davidfowl
Nov 24 2015 19:26 UTC
to their credit, it's amazingly compatible for what little they had to go on
Weston
@ronnyek
Nov 24 2015 19:26 UTC
yep
David Fowler
@davidfowl
Nov 24 2015 19:26 UTC
4.2 is much better as it copies a bunch of impl from reference source
but man
the bugs are crazy
we worked around so many
Weston
@ronnyek
Nov 24 2015 19:26 UTC
well like mvc whatever wouldnt run under it
it was somethign really really dumb
I dont remember what
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:27 UTC
MVC needs the whole ASP.NET stack
Weston
@ronnyek
Nov 24 2015 19:27 UTC
little teeny tiny patch
@kekekeks mvc4 works
asp.net stack is mostly there
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:27 UTC
And that thing is almost unmaintained since Novell times
Weston
@ronnyek
Nov 24 2015 19:27 UTC
that may be
that may be the problem
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:27 UTC
They've imported OSS parts
But that's it
Weston
@ronnyek
Nov 24 2015 19:28 UTC
@davidfowl arent you supposed to be working on signalr right abouts now?
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:28 UTC
I was using nancyfx for years on the server side
It works just fine
Weston
@ronnyek
Nov 24 2015 19:28 UTC
there are a few minor thigns I dont like about nancyfx
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:28 UTC
And everything else that uses BCL only
David Fowler
@davidfowl
Nov 24 2015 19:28 UTC
SignalR work happens post v1
Weston
@ronnyek
Nov 24 2015 19:28 UTC
but by no means dealbreakers =)
David Fowler
@davidfowl
Nov 24 2015 19:28 UTC
@kekekeks if you use mono and don't hit bugs, thats great
you just need to use it a little harder and it falls over
Steven Kirk
@grokys
Nov 24 2015 19:29 UTC
speaking of v1, @davidfowl - when would be a good time to start trying to get perspex on .net core? post 1.0?
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:30 UTC
The good thing is that we should be able run on coreclr on windows right now
Steven Kirk
@grokys
Nov 24 2015 19:30 UTC
the main thing i'm waiting for is the .net standard platform stuff
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:31 UTC
@grokys I thought coreclr can run PCL libs
So we only need to adapt backends
Steven Kirk
@grokys
Nov 24 2015 19:32 UTC
i could be wrong, but i think that will need the .net standard platform stuff to be in place, as that supersedes PCLs afaik
and I think it will allow us to use our backends on any framework
but it will also mean we get access to typeconverters, yay!
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:35 UTC
Meh, SharedProjects FTW
Weston
@ronnyek
Nov 24 2015 19:37 UTC
rc1 means method/api renames are wrappign up no? I did notice applicationcontext just got removed from httpcontext or somethgn
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:37 UTC
Well, I'm still using beta4
It's better to stick to one version before release
unless you absolutely need to update
Egor Bogatov
@EgorBo
Nov 24 2015 19:39 UTC
@davidfowl don't offend mono, its contributors might see this chat ;-)
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:42 UTC
There is a lot of hate in the air because of xamarin prices and amount of bugs, you know
Egor Bogatov
@EgorBo
Nov 24 2015 19:43 UTC
:(
@kekekeks btw, how can I switch to Skia as a backend for samples? I'd love to check it out
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:44 UTC
Add SkiaPlatform.Initialize() in App.cs after InitializeSubsystems line
It will override default platform renderer
Egor Bogatov
@EgorBo
Nov 24 2015 19:45 UTC
oh, I've just caught a VS "freez" while opening the solution :(
ok, thanks
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:45 UTC

oh, I've just caught a VS "freez" while opening the solution

They never happened before we've added xamarin projects, you know

Well
The slowdown is almost certainly happened because of something inside perspex codebase
Egor Bogatov
@EgorBo
Nov 24 2015 19:46 UTC
yeah, I know :( I even know this bug's number
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:46 UTC
I've removed "is invalidated" check and now it gives me 26 FPS on "Buttons" page
@grokys
What in the world is happening on animations page?
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:54 UTC
I'm getting consistent FPS everywhere else
On that page stuff gets frozen for a while
David Fowler
@davidfowl
Nov 24 2015 19:55 UTC
I can offend mono
i earned it
plus miguel and I are like besties
:D
@grokys as soon as possibe
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:56 UTC
We'll need some xplat windowing backend through
That doesn't involve GTK#
I might be able to wire things up using native code, but I'm not sure that it's the best solution
It might be better to get rid of GTK, but then we'll need to handle platform-specific input method stuff
which will be a bit nightmarish
Steven Kirk
@grokys
Nov 24 2015 20:00 UTC
i think we probably need to revisit the render loop for smooth animations
it's a very naive solution in there at the moment
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:00 UTC
Render loop turned out to be fine
Something else is causing problems
Animations on "Images" tab are smooth
Steven Kirk
@grokys
Nov 24 2015 20:03 UTC
what's happening exactly? do the animations freeze when the page is selected and then run smoothly, or do they start running immediately but stop intermittently? for how much time?
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:03 UTC
Not the animations
The whole app freezes for some reason
It's able to render ~20 frames in one second, then freezes for a while, renders 2-3 frames, freezes, repeats 2-3-frame-freeze sequence a couple of times, renders ~20 frames again
Looks really, really weird
Egor Bogatov
@EgorBo
Nov 24 2015 20:05 UTC
gc? ;-)
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:06 UTC
I thought so
But I've eliminated things that were causing memory traffic
Need to run Xamarin Profiler or something
But GC just can't take that much time
It freezes for seconds
And runs without any freezes on low-end android device
Steven Kirk
@grokys
Nov 24 2015 20:07 UTC
oh
Egor Bogatov
@EgorBo
Nov 24 2015 20:07 UTC
so have you tried the profiler? https://xamarin.com/profiler
Steven Kirk
@grokys
Nov 24 2015 20:07 UTC
yeah, that's really strange
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:07 UTC
It doesn't run on my mac VM for some reason
Steven Kirk
@grokys
Nov 24 2015 20:08 UTC
yeah, that's really strange
gc is what comes to mind for me as well
Egor Bogatov
@EgorBo
Nov 24 2015 20:08 UTC
somebody, buy a mac mini for @kekekeks he deserved it! :)
Steven Kirk
@grokys
Nov 24 2015 20:08 UTC
gc is what comes to mind for me as well
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:08 UTC
BTW, FPS counter is back
Can be turned on by setting RendererMixin.DrawFpsCounter to true
Egor Bogatov
@EgorBo
Nov 24 2015 20:09 UTC
@kekekeks you can debug/profile ios from Windows/VS you know
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:09 UTC
How
Website says that it's unsupported
Egor Bogatov
@EgorBo
Nov 24 2015 20:09 UTC
oops sorry :( it only supports android
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:10 UTC
It also can't possible be GC, since it doesn't freeze on other pages
That have the same render loop
I'm afraid that it's somehow related to Observable.Interval and threading issues
Well, nope, it seems to be thread-safe
Well, left animation is to be blamed
I've disabled it and now getting consistent FPS
right animation is working fine and doesn't cause any freezes
WTF
José Manuel Nieto
@SuperJMN
Nov 24 2015 20:16 UTC
oh my God. I'm so afraid of asynchronous things...
that I'm scared reading you, @kekekeks
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:26 UTC
2015-11-24 23:26:07.584 PerspexiOSTestApplication[6950:2903] error: * Assertion at ../../../../../mono/mono/mini/aot-runtime.c:3982, condition `klass->inited' not met
2015-11-24 23:26:07.586 PerspexiOSTestApplication[6950:2903] critical: Stacktrace:
2015-11-24 23:26:07.587 PerspexiOSTestApplication[6950:2903] critical: 
Native stacktrace:
2015-11-24 23:26:08.000 PerspexiOSTestApplication[6950:2903] critical:     0   PerspexiOSTestApplication           0x019177c5 mono_handle_native_sigsegv + 240
2015-11-24 23:26:08.002 PerspexiOSTestApplication[6950:2903] critical:     1   libsystem_platform.dylib            0x39ba2063 _sigtramp + 422015-11-24 23:26:08.003 PerspexiOSTestApplication[6950:2903] critical:     2   libsystem_pthread.dylib             0x39ba7a33 pthread_kill + 58

2015-11-24 23:26:08.005 PerspexiOSTestApplication[6950:2903] critical:     3   libsystem_c.dylib                   0x39aeeffd abort + 76
2015-11-24 23:26:08.006 PerspexiOSTestApplication[6950:2903] critical:     4   PerspexiOSTestApplication           0x019bad40 _ZL12log_callbackPKcS0_S0_iPv + 80
2015-11-24 23:26:08.007 PerspexiOSTestApplication[6950:2903] critical:     5   PerspexiOSTestApplication           0x019add91 log_adapter + 164
2015-11-24 23:26:08.009 PerspexiOSTestApplication[6950:2903] critical:     6   PerspexiOSTestApplication           0x019b5e59 monoeg_assertion_message + 84
2015-11-24 23:26:08.011 PerspexiOSTestApplication[6950:2903] critical:     7   PerspexiOSTestApplication           0x018f62a3 mono_aot_get_method + 1318
2015-11-24 23:26:08.012 PerspexiOSTestApplication[6950:2903] critical:     8   PerspexiOSTestApplication           0x019072df set_breakpoint + 306
2015-11-24 23:26:08.013 PerspexiOSTestApplication[6950:2903] critical:     9   PerspexiOSTestApplication           0x01907c89 ss_start + 876
2015-11-24 23:26:08.014 PerspexiOSTestApplication[6950:2903] critical:     10  PerspexiOSTestApplication           0x01904cb9 debugger_thread + 20728
2015-11-24 23:26:08.016 PerspexiOSTestApplication[6950:2903] critical:     11  PerspexiOSTestApplication           0x019afb59 inner_start_thread + 148
set_breakpoint
@EgorBo And this is why people hate xamarin
Xamarin.iOS costs 1000 bucks per dev per year
And then boom, app crashed while attempting to set breakpoint
Egor Bogatov
@EgorBo
Nov 24 2015 20:29 UTC
I might try to update Xam or switch to Alpha channel, smth like that
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:33 UTC
Oh, it's another stack trace every time
The point is that fuckups are occasionaly happening
You never know when it will blow up in your face
BTW, it seems that freezes are caused by text rendered with rotation transformation
Because I don't see any other reason
It might even be some specific angles that skia doesn't like
Because plain rectangle is rendered fine
And that's only rotate transform, since each text block on the screen is affected by translate transform
And that's iOS-specific
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:39 UTC
Please, somebody, explain me the reason of this
while I'm ordering voodoo magic starter kit on amazon
Nikita Tsukanov
@kekekeks
Nov 24 2015 21:00 UTC
@grokys how important is that "let's rotate text in animated rectangle" thingy is?
Can we replace textbox with something else?
Steven Kirk
@grokys
Nov 24 2015 21:01 UTC
for the test app, sure
Nikita Tsukanov
@kekekeks
Nov 24 2015 21:01 UTC
I haven't seen any real-life apps that rotate animated text
Steven Kirk
@grokys
Nov 24 2015 21:01 UTC
no, i just put it in there because i could ;)
Nikita Tsukanov
@kekekeks
Nov 24 2015 21:02 UTC
And it's not that it doesn't work at all or crashes the app
Just causes weird freezes
Steven Kirk
@grokys
Nov 24 2015 21:02 UTC
yeah go ahead and change it
Mitja Bezenšek
@MitjaBezensek
Nov 24 2015 21:32 UTC
hello, just cloned the repo and wanted to get started
when i tried to build i was getting the following error:
Severity Code Description Project File Line Error Could not copy the file "c:\Users\Mitja\Documents\GitHub\Perspex\src\Skia\native\Windows\i686\libEGL.dll" because it was not found. Perspex.Skia.Desktop
i then ran .\getnatives.ps1 from the skia folder
is this a necessary step? if so I can add it to the build.md documentation
Nikita Tsukanov
@kekekeks
Nov 24 2015 21:33 UTC
Yep, that's necessary
skia backend is relatively new, so docs weren't updated
Mitja Bezenšek
@MitjaBezensek
Nov 24 2015 21:35 UTC
ok, I'll go ahead and add it
Mitja Bezenšek
@MitjaBezensek
Nov 24 2015 21:42 UTC
i guess on linux people should just manuall download the zip file and extract it into the native folder?
maybe we should add a script for linux as well
Nikita Tsukanov
@kekekeks
Nov 24 2015 21:44 UTC
There is linux script somewhere
Not sure if I've added it to the repo...
@grokys Direct2D implementation of gradient brushes is broken
It doesn't work with rotation transformations at all
Nikita Tsukanov
@kekekeks
Nov 24 2015 21:55 UTC
Correct rendering (skia):
blob
Incorrect (Direct2D):
blob
I've updated testapp with it
Lol, GTK crashed
When trying to render this page
We have a lot of work to do...
Mitja Bezenšek
@MitjaBezensek
Nov 24 2015 22:12 UTC
great, i updated the PR and added the step for linux as well
Steven Kirk
@grokys
Nov 24 2015 22:26 UTC
the animation under direct2d is weird as well because the acorn disappears for 1/4 of the time
@amerkoleci wrote the radial gradient brush and @ncarrillo the linear gradient brush - do you guys have any idea what's wrong?
Nikita Tsukanov
@kekekeks
Nov 24 2015 22:48 UTC
I wonder why GTK# crashes
It doesn't even throw any exceptions
System.InvalidCastException: Specified cast is not valid.
   at Perspex.Cairo.RadialGradientBrushImpl..ctor (Perspex.Media.RadialGradientBrush brush, Size destinationSize) in /home/kekekeks/Projects/Perspex/src/Gtk/Perspex.Cairo/Media/RadialGradientBrushImpl.cs:line 18
   at Perspex.Cairo.Media.DrawingContext.SetBrush (Perspex.Media.Brush brush, Size destinationSize) in /home/kekekeks/Projects/Perspex/src/Gtk/Perspex.Cairo/Media/DrawingContext.cs:line 293
   at Perspex.Cairo.Media.DrawingContext.DrawGeometry (Perspex.Media.Brush brush, Perspex.Media.Pen pen, Perspex.Media.Geometry geometry) in /home/kekekeks/Projects/Perspex/src/Gtk/Perspex.Cairo/Media/DrawingContext.cs:line 149
   at Perspex.Media.DrawingContext.DrawGeometry (Perspex.Media.Brush brush, Perspex.Media.Pen pen, Perspex.Media.Geometry geometry) in <filename unknown>:line 0
Wut
Have anyone ever tested GTK's version of radial gradient brush?
            this.PlatformBrush = new RadialGradient(center.X, center.Y, radius, gradientOrigin.X, gradientOrigin.Y, radius);

            foreach (var stop in brush.GradientStops)
            {
                ((LinearGradient)this.PlatformBrush).AddColorStop(stop.Offset, stop.Color.ToCairo());
            }

            ((LinearGradient)this.PlatformBrush).Extend = Extend.Pad;
This code just couldn't work at all
Nikita Tsukanov
@kekekeks
Nov 24 2015 22:53 UTC
And, you know, R# tells about that
Steven Kirk
@grokys
Nov 24 2015 23:00 UTC
i guess we need to start raising the bar for contributions...