Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Profiling #4

Closed
joeblew99 opened this issue Feb 29, 2016 · 4 comments
Closed

Profiling #4

joeblew99 opened this issue Feb 29, 2016 · 4 comments

Comments

@joeblew99
Copy link

Cool project.
I am interested in hotspot profiling this to see if we can get its fps higher.

Any ideas ? Pprof runs on mobile ?

@dskinner
Copy link
Owner

There are some places to start looking

  • reusing same shader program, perhaps via some general mechanism in material/glutil
  • possibly reuse geometry uploaded since current deforms are done with the mat4 in the shader, this might conflict with a proper circle implementation and rounded corners though so I'm not eager to pursue this atm.
  • possibly clean up how text is handled.
  • look at how icons are currently being handled
  • maybe tweak shadows more with consideration to material design guidelines which forbids approximating on same plane. I noted disabling shadows gained 5-7 fps on reddit so this probably isn't a major concern.

As I write this out, most everything really needs a look over. Changes need to consider how it plays into material design specification.

I produced this pprof svg on desktop but it mostly read like cgo overhead so it may be that a need is to focus on reducing overall calls, but my initial impression of that is its not making that many calls.

(click download in top bar and then open downloaded file, google drive doesn't render svg well)
https://drive.google.com/a/dasa.cc/file/d/0B6hxg-gC2Uz_YkNtZ3FOYTQ3bEk/view

Bear in mind the example app in pkg snd has some real time synthesis going on as well, but in general, this hasn't been a problem and it doesn't skip a beat due to graphics.

Sorry for the vague starting point but that's about all I have to go off at the moment as well. The first two places I'd start are my first two bullet points as those should probably happen regardless.

@joeblew99
Copy link
Author

ok.
Might be worth thinking about it at a higher level.
Have you tried out shiny instead of gomobile ?
https://godoc.org/golang.org/x/exp/shiny

gomobile is dead code, and the go core team have stated that shiny is the "one true way".

@dskinner
Copy link
Owner

dskinner commented Mar 2, 2016

Have you tried out shiny instead of gomobile ?

shiny doesn't work on mobile but is still a goal for this package

gomobile is dead code

It's actually pretty active. x86 support on android was seen recently including the tooling in gomobile to build such, for but one example.

and the go core team have stated that shiny is the "one true way"

I don't know what you're quoting here. In the future, gomobile will likely be using shiny for running on desktop. shiny is already using gomobile pkgs for things like events. There's overlap.

@joeblew99
Copy link
Author

I saw that model yao has started setting up for shiny and Material design to work together.

I am using vanadium ( Google golang ) project for a work project. Vanadium team currently uses flutter / dart for the GUI, but it looks like golang is slowly getting to the point of being able to build UI.

You should have a chat to the vanadium guys..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants