Profile

Cover photo
Krzysztof Klinikowski
Works at Freelance
Lives in Wrocław, Poland
604 followers|264,479 views
AboutPostsPhotosVideosReviews

Stream

 
Okay, so for all bashers who like to have powerline-like shell prompt I prepared powerline-shell-go - powerline shell implementation like this Python one - https://github.com/milkbikis/powerline-shell/ but written in Go so it's like 10x faster, which believe me - it's really important here.

Here's my implementation:
https://bitbucket.org/devsamurais/powerline-shell-go

Happy using & hacking :)
6
Add a comment...
 
Ok, another news from me.

I successfully ported DalvikVM to Linux. I rewritten part of Android Build System to CMake, get rid of bionic usage etc.

And well, what I can say? It's working! Yay!

Another milestone: Working Zygote ;)
10
1
Krzysztof Klinikowski's profile photoMisha Ketslah's profile photoPipat Methavanitpong's profile photoDavid Manouchehri's profile photo
8 comments
 
+Alex Servirog  Isn't that hardware bring up problem? I can't see anybody mentioning about Dalvik in that thread. 
From my point of view, Dalvik is just a user-space application which is usually bound to Bionic. If it is built to link with GlibC, it can be run on any ordinary Linux which includes Sailfish. 

I don't have knowledge about Display stack like X11 and Wayland. So even it is linked successfully and can run CLI HelloWorld, I am not sure if it can do multimedia things like throwing birds. 
Add a comment...
 
I was bored on classes today so I ported Jedi Academy on Android :-)

That's just how I roll. 
9
Rafael Rosado's profile photoSergii Pylypenko's profile photoKyle Aschenberg's profile photoKrzysztof Klinikowski's profile photo
6 comments
 
What's the latest with this project?
Add a comment...

Krzysztof Klinikowski

Shared publicly  - 
 
I feel "exactly" the same sometimes :D
 
How I feel when my code works
http://en.miui.com/thread-4955-1-1.html
3
1
Janusz Barbacki's profile photo
Add a comment...
 
Wrocław at night :-) 
2
Add a comment...
In his circles
1,516 people
Have him in circles
604 people
Søren Nielsen's profile photo
Fabian Krol's profile photo

Krzysztof Klinikowski

Shared publicly  - 
 
 
Android 4.4 & rendering pipeline improvements
#android   #androiddev   #projectbutter

Android 4.4 adds many new developer APIs, such as printing and animated transitions, that are extensively documented in the platform highlights and release notes. The Android team has also made numerous under-the-hood optimizations that applications automatically benefit from. Since I'm passionate about graphics, I would like to share with you some of the graphics-related optimizations brought to you by the Android framework team in 4.4.

Shared assets texture
Most Android applications load a similar set of assets, used by the framework to render Holo widgets. These assets, for instance a button's pressed state, have always been preloaded and shared between processes through zygote. This unfortunately didn't apply to the textures generated from those assets. Until 4.4, every app drawing a button would create a GPU copy of the button asset as a texture.

Starting with Android 4.4, the system generates at startup a single, shared texture containing most Holo assets. This has two major benefits.
First, each process will use a little bit less memory. This is particularly important to help Android run on devices with "only" 512 MB of RAM for instance.
The second benefit is improved sorting, batching and merging of drawing operations. This optimization was introduced in Android 4.3 and just got even better. For instance, text fields and buttons and can now all be drawn together in a single draw call. This significantly reduces the number of state changes and calls to the OpenGL drivers.

To generate this shared texture, the system will compute an atlas of all the assets every time you get a new version of the framework. The atlas is computed based on the set of assets preloaded in zygote as well as your device's resolution and GPU characteristics. A Nexus 5 will not use the same atlas as a Nexus 7. The atlas generation process iterates through different algorithms to find one that works best on your device. I have attached an example of what the final shared texture looks like to this post (it's a bit old so the assets it contains do not match the new Android 4.4 style.)

Here is an animated example of batching and merging in action with the new shared texture: https://plus.google.com/109538161516040592207/posts/WHwzJinyFY6

Better merging of drawing operations
The merging code was improved to allow more operations to be merged together. 9-patches and scaled bitmaps in particular will be merged more frequently.

Asynchronous texture uploads
On devices that support OpenGL ES 3.0, Android's rendering pipeline will use Pixel Buffer Objects (or PBOs) to update font caches asynchronously. Such update are  usually performed at the very beginning of a new frame, when the GPU is typically idle. This improves parallelism and saves up to a couple of milliseconds per frame in applications that put a lot of pressure on the font cache (emojis, CJK locales, large fonts, rotated or scaled glyphs, etc.)

Improved GPU state management
Through various optimizations, including state caching and data sharing, the rendering pipeline is now a little better at managing the GPU state. For instance, the font renderer and hardware layers now all share a single Vertex Buffer Object (or VBO) to store indices. These optimizations also cut down on the number of calls to OpenGL drivers.

Automatic overdraw avoidance
The rendering pipeline is now able to detect simple cases of overdraw and fix them on the fly. The best example is a window background entirely covered by other opaque elements. The extraneous window background will not be rendered at all, thus saving CPU processing time and GPU bandwidth. This optimization is disabled when the overdraw debugging tools are enabled to make sure you will not miss those extra views and/or drawables. This does not mean you shouldn't fix overdraw in your application!
2
Add a comment...
 
Why you shouldn't interrupt a programmer.
8
3
Janusz Barbacki's profile photoKrzysztof Cynarski's profile photo
Add a comment...
 
.Net Meet up at Wrocław. Speech about debuggers 
1
Add a comment...

Krzysztof Klinikowski

Shared publicly  - 
 
Really important part of Android is briefly described in this video :)
 
every one working on an android device needs to know this stuff.  (even if you do not work in Java) Knowing this stuff provides system and architectural insights into how things work and how to avoid forcing gnu/linux idioms into your android middleware which tends to fall over unless it can run as root.  Also, it provides insite on how to implement things without having to always hack the framework java code (because you don't know better ways)
3
1
Szymon Motyka's profile photo
Add a comment...
People
In his circles
1,516 people
Have him in circles
604 people
Søren Nielsen's profile photo
Fabian Krol's profile photo
Work
Occupation
Passionate Software Developer
Employment
  • Freelance
    Software Developer, 2006 - present
  • STX Next
    Senior Software Developer, 2013 - present
  • Can't Stop Games
    Wizard, 2010 - 2013
Basic Information
Gender
Male
Looking for
Friends, Networking
Relationship
Single
Other names
kkszysiu
Story
Introduction
That guy that made those soft, said those things and was in that movie.

Currently propably writting code, taking over the world or doing other awesome things! :D

I am a shadowy, frequently-cloaked, extremely talented and dedicated individual...

Passionate software engineer, music lover, attention & achievement whore...

Umiem dużo ciekawych rzeczy ale dziewczyny na to nie lecą...
Bragging rights
I'm programming ninja, level 85.
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Wrocław, Poland
Previously
Wołów, Poland
Food: ExcellentDecor: Very goodService: Very good
Public - a year ago
reviewed a year ago
Food: ExcellentDecor: ExcellentService: Excellent
Public - a year ago
reviewed a year ago
4 reviews
Map
Map
Map
Food: ExcellentDecor: ExcellentService: Very good
Public - a year ago
reviewed a year ago