These are chat archives for AvaloniaUI/Avalonia

24th
Nov 2015
Steven Kirk
@grokys
Nov 24 2015 00:27
@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
@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
but d2d was leaking a lot more right?
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:29
TestApplication is a good place for debugging backend-based leaks, since it doesn't have any bindings
Weston
@ronnyek
Nov 24 2015 00:29
You guys using dottrace and like to hunt it down?
Steven Kirk
@grokys
Nov 24 2015 00:29
i've not started looking yet
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:29
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
You can trial it free for 30 days
Eaps for longer
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:30
Well, there aren't any eaps at the moment
they've just released 10.0
Steven Kirk
@grokys
Nov 24 2015 00:31
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
Ehm?
You can disable some inspections if you don't like them
Steven Kirk
@grokys
Nov 24 2015 00:34
it fills the editor with so much clutter, i find it distracting
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:35
The good thing about resharper is that everything is configurable
Steven Kirk
@grokys
Nov 24 2015 00:35
what is the most useful feature?
(s)
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:35
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
ok, i will take a look at those
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:39
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
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
-_\\
Steven Kirk
@grokys
Nov 24 2015 00:44
i can't load the skia projects to fix them however
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:45
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
that doesn't seem to be the case afaics
Nikita Tsukanov
@kekekeks
Nov 24 2015 00:46
Does Skia.Desktop project build properly?
Steven Kirk
@grokys
Nov 24 2015 00:48
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
yo
Weston
@ronnyek
Nov 24 2015 06:05
yo
bitbonk
@bitbonk
Nov 24 2015 06:47
@all How is Perspex UI related to OmniXaml ?
Weston
@ronnyek
Nov 24 2015 06:50
utilizes it for parsing xaml afaik
David Fowler
@davidfowl
Nov 24 2015 06:53
wtf is omnixaml
lol
bitbonk
@bitbonk
Nov 24 2015 06:53
looks like an open source xaml reader/writer
Wiesław Šoltés
@wieslawsoltes
Nov 24 2015 08:33

@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
Before fix:
before.PNG
and after the fix:
after.PNG
Steven Kirk
@grokys
Nov 24 2015 10:43
@ronnyek is correct re: omnixaml
Nikita Tsukanov
@kekekeks
Nov 24 2015 13:59
@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
Mkay, skia test app is rendered in 60FPS on iOS
On my retina ipad
Weston
@ronnyek
Nov 24 2015 14:37
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
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
ahh
Nikita Tsukanov
@kekekeks
Nov 24 2015 14:41
The good thing is that you are free to implement it :)
It's one of the things
Weston
@ronnyek
Nov 24 2015 14:42
oh boy control building in java ruined it for me everywhere else
lots of hoop jumping
Nikita Tsukanov
@kekekeks
Nov 24 2015 14:42
that don't require deep knowledge of perspex internals
Weston
@ronnyek
Nov 24 2015 14:46
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
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
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
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
In my opinion, Windows 10 Universal Apps do a good job there
using AdaptiveTriggers
Egor Bogatov
@EgorBo
Nov 24 2015 15:19
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

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
oh, I didn't read the "how to build" I guess
Nikita Tsukanov
@kekekeks
Nov 24 2015 15:21
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
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
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
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
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
mobile?
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:20
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
@grokys high memory traffic is the downside of using RX
Egor Bogatov
@EgorBo
Nov 24 2015 16:29
@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
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
too many allocations?
Steven Kirk
@grokys
Nov 24 2015 16:32
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
@EgorBo do you have experience of profiling things on ios?
Egor Bogatov
@EgorBo
Nov 24 2015 16:34
no :( I don't
Steven Kirk
@grokys
Nov 24 2015 16:35
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
Well, something allocates too much stuff
Steven Kirk
@grokys
Nov 24 2015 16:37
i believe you
i've been concentrating on getting stuff working rather than on optimizing
Nikita Tsukanov
@kekekeks
Nov 24 2015 16:39
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
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
thanks. i may have a bit of time to look at it this evening
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:10
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
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
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
rule number one: never use linq and async in a render loop :)
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:29
@grokys dispatchertimer seem to allocate a lot of Action objects
Steven Kirk
@grokys
Nov 24 2015 17:33
hummm.. ok
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:33
Nvm, most of them are neccessary
Steven Kirk
@grokys
Nov 24 2015 17:35
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
Downgrade to 9.2
Steven Kirk
@grokys
Nov 24 2015 17:35
it makes it hard to concentrate
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:36
They still haven't patched up PCL-related bugs in the latest release
Nikita Tsukanov
@kekekeks
Nov 24 2015 17:42
Nope, reducing memory traffic haven't fixed the issue
WTF
Wiesław Šoltés
@wieslawsoltes
Nov 24 2015 18:16
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
It seems that direct2d isn't leaking anymore, yay
Weston
@ronnyek
Nov 24 2015 18:43
changing what
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:08
ARGH
"Container already created" bug is annoying
It causes ~75% of my crashes on ios
Weston
@ronnyek
Nov 24 2015 19:16
I dont think I know anyone else using the light theme in vs.net =)
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:17
I found what Xamarin is good for
workouts
Weston
@ronnyek
Nov 24 2015 19:18
?
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:18
I can do 40-50 sit-ups while it's compiling :)
Weston
@ronnyek
Nov 24 2015 19:18
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
Well, it mostly opensource
Weston
@ronnyek
Nov 24 2015 19:19
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
You can
As long as you are shipping mono runtime as a separate library
Weston
@ronnyek
Nov 24 2015 19:20
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
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
@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
Bugs, where? In ASP.NET?
Weston
@ronnyek
Nov 24 2015 19:25
yes those are their commercial channels
on the mono side, yes
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:25
Which was a piece of proprietary bloatware in the first place?
Weston
@ronnyek
Nov 24 2015 19:25
asp.net encompases mvc as well
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:25
I haven't got any mono bugs when I was using NancyFx
David Fowler
@davidfowl
Nov 24 2015 19:25
lol
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:26
And haven't got any with vNext
Weston
@ronnyek
Nov 24 2015 19:26
vnext is different
David Fowler
@davidfowl
Nov 24 2015 19:26
mono is a bug farm
Weston
@ronnyek
Nov 24 2015 19:26
even with the mono runtime
David Fowler
@davidfowl
Nov 24 2015 19:26
to their credit, it's amazingly compatible for what little they had to go on
Weston
@ronnyek
Nov 24 2015 19:26
yep
David Fowler
@davidfowl
Nov 24 2015 19:26
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
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
MVC needs the whole ASP.NET stack
Weston
@ronnyek
Nov 24 2015 19:27
little teeny tiny patch
@kekekeks mvc4 works
asp.net stack is mostly there
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:27
And that thing is almost unmaintained since Novell times
Weston
@ronnyek
Nov 24 2015 19:27
that may be
that may be the problem
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:27
They've imported OSS parts
But that's it
Weston
@ronnyek
Nov 24 2015 19:28
@davidfowl arent you supposed to be working on signalr right abouts now?
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:28
I was using nancyfx for years on the server side
It works just fine
Weston
@ronnyek
Nov 24 2015 19:28
there are a few minor thigns I dont like about nancyfx
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:28
And everything else that uses BCL only
David Fowler
@davidfowl
Nov 24 2015 19:28
SignalR work happens post v1
Weston
@ronnyek
Nov 24 2015 19:28
but by no means dealbreakers =)
David Fowler
@davidfowl
Nov 24 2015 19:28
@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
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
The good thing is that we should be able run on coreclr on windows right now
Steven Kirk
@grokys
Nov 24 2015 19:30
the main thing i'm waiting for is the .net standard platform stuff
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:31
@grokys I thought coreclr can run PCL libs
So we only need to adapt backends
Steven Kirk
@grokys
Nov 24 2015 19:32
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
Meh, SharedProjects FTW
Weston
@ronnyek
Nov 24 2015 19:37
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
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
@davidfowl don't offend mono, its contributors might see this chat ;-)
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:42
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
:(
@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
Add SkiaPlatform.Initialize() in App.cs after InitializeSubsystems line
It will override default platform renderer
Egor Bogatov
@EgorBo
Nov 24 2015 19:45
oh, I've just caught a VS "freez" while opening the solution :(
ok, thanks
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:45

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
yeah, I know :( I even know this bug's number
Nikita Tsukanov
@kekekeks
Nov 24 2015 19:46
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
I'm getting consistent FPS everywhere else
On that page stuff gets frozen for a while
David Fowler
@davidfowl
Nov 24 2015 19:55
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
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
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
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
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
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
gc? ;-)
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:06
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
oh
Egor Bogatov
@EgorBo
Nov 24 2015 20:07
so have you tried the profiler? https://xamarin.com/profiler
Steven Kirk
@grokys
Nov 24 2015 20:07
yeah, that's really strange
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:07
It doesn't run on my mac VM for some reason
Steven Kirk
@grokys
Nov 24 2015 20:08
yeah, that's really strange
gc is what comes to mind for me as well
Egor Bogatov
@EgorBo
Nov 24 2015 20:08
somebody, buy a mac mini for @kekekeks he deserved it! :)
Steven Kirk
@grokys
Nov 24 2015 20:08
gc is what comes to mind for me as well
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:08
BTW, FPS counter is back
Can be turned on by setting RendererMixin.DrawFpsCounter to true
Egor Bogatov
@EgorBo
Nov 24 2015 20:09
@kekekeks you can debug/profile ios from Windows/VS you know
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:09
How
Website says that it's unsupported
Egor Bogatov
@EgorBo
Nov 24 2015 20:09
oops sorry :( it only supports android
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:10
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
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
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
I might try to update Xam or switch to Alpha channel, smth like that
Nikita Tsukanov
@kekekeks
Nov 24 2015 20:33
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
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
@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
for the test app, sure
Nikita Tsukanov
@kekekeks
Nov 24 2015 21:01
I haven't seen any real-life apps that rotate animated text
Steven Kirk
@grokys
Nov 24 2015 21:01
no, i just put it in there because i could ;)
Nikita Tsukanov
@kekekeks
Nov 24 2015 21:02
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
yeah go ahead and change it
Mitja Bezenšek
@MitjaBezensek
Nov 24 2015 21:32
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
Yep, that's necessary
skia backend is relatively new, so docs weren't updated
Mitja Bezenšek
@MitjaBezensek
Nov 24 2015 21:35
ok, I'll go ahead and add it
Mitja Bezenšek
@MitjaBezensek
Nov 24 2015 21:42
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
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
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
great, i updated the PR and added the step for linux as well
Steven Kirk
@grokys
Nov 24 2015 22:26
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
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
And, you know, R# tells about that
Steven Kirk
@grokys
Nov 24 2015 23:00
i guess we need to start raising the bar for contributions...