Category: EFL

  • May 6, 2016 - Mike Blumenkrantz

    Wayland Recovery: A Journey Of Discovery

    Wayland on the desktop is a constantly evolving project. Whether it’s improvements to the drag-n-drop protocol or extreme functionality enhancements in the client-side decorations, Wayland is a fast-moving target which allows developers to shape it in almost any way they desire. However, there are some limitations to a Wayland compositor when compared to X11 window managers. Under X11, a window manager is just a client of the XServer; this allows it to do things like restart itself without killing the user’s session. In Wayland, a restart of the running session’s compositor disconnects all the active clients, causing them to terminate. This increases the difficulty of things like crash handling where the environment can gracefully restart itself if there’s a crash. How to Crash Gracefully This is where a newly-created extension comes into play: the Session Recovery Extension. With Session Recovery enabled, a client is able to reconnect to the compositor […]

    Read More
  • April 1, 2016 - Mike Blumenkrantz and Derek Foreman

    CSS: Revolutionizing the Appearance of the WWW

    One of the most notable and enduring Linux desktop paradigms has been desktop effects: the coupling of various desktop environments with graphical niceties, also known as “eye candy.” With the advent of the XComposite extension in the mid 2000s, mainstream eye candy was taken to new levels through a small project called Compiz which used the texture from pixmap extension to apply hardware-accelerated effects to windows on the fly. From Compiz came the effect that is known throughout the Linux world as “wobbly windows” or, for many developers, “that feature we aren’t implementing.” By applying OpenGL vertex transforms to the textures created using the previously-mentioned extension, windows would appear to deform when moved and resized. This has persisted in being the benchmark for all graphical desktop effects for a decade, and numbers may not go high enough to enumerate all the users who have asked for this effect in Enlightenment […]

    Read More
  • During my LinuxCon EU talk last year I briefly touched on the sparse semantic parser tool started by Linus Torvalds in 2003 (slide 7). While it might not be as powerful as other static analyzers I described, it still might be worthwhile to run on your code. Many distributions ship a sparse package already, which makes it easy to test. If not you might want to grab the latest tarball and build it yourself. Once you have sparse installed, running it on your code should be easy as it provides a build wrapper around the CC environment variable. If you do not have any special requirements for CC in your build setup you should be able to run sparse like this:

    Use Filters to Find What Matters Depending on your code, you might be overwhelmed by the amount of warnings and maybe errors sparse is producing. While you should […]

    Read More
  • As I illustrated in my previous article, the current capability of the Linux Kernel scheduler is far from giving us the most efficient use of the hardware we have; this needs to be fixed. The kernel community is hard at work attempting to fix this issue, and we should understand how they intend to do so to make sure that user space applications will be ready to take advantage of it. The Direction Taken by the Kernel Community Obviously this is easier said than done; even so, there is huge work being completed in the Kernel community to fix this issue. The solution is simple to describe, but very hard to implement as it touches one of the core components of Linux. Essentially, the scheduler should incorporate the work of cpuidle and cpufreq, and both cpuidle and cpufreq should be eliminated. Amit Kucheria offers a great read on this subject, […]

    Read More
  • January 12, 2016 - Derek Foreman

    Wayland 1.10 Sneak Preview

    Now that 2015 is deader than XFree86 and the year of the Linux desktop is finally here, I’m sure everyone’s wondering what 2016 will bring for Wayland… Sometime in mid January the 1.10 alpha release is coming, with a 1.10 release to follow in February, and this is already shaping up to be a pretty beefy release. New and Improved Here are some of the new core Wayland features that have already landed: Release requests for wl_seat – This is a step towards fixing a long standing problem. With no proper release request, it’s been impossible for the compositor to delete a wl_seat. This seems like it shouldn’t be a big deal until you consider the RDP (Remote Desktop Protocol) compositor, which creates a new seat for every login. Without a way to release seat resources completely, it effectively leaks seats. wl_surface.damage_buffer – This new request (already supported in Weston and EFL) allows […]

    Read More
  • January 8, 2016 - Mike Blumenkrantz

    Desktop Compositing: How Much Overdraw Is Too Much?

    In my previous post on compositing, I covered the overall methodology with which I implemented Compiz plugin support in the Enlightenment compositor. Now I’m going to go into some detail about the rendering portion. The first thing that should be reiterated is Compiz only performs damage calculations for the entire screen and does not track them per-window. This is, to say the least, problematic. There’s no way to easily predict where a window will draw at any given time either: there are window effects that cause clients to zoom in/out to/from the mouse cursor, and others that cause the client to bounce around outside of its frame region. The compositor must be prepared to draw things for each window at any geometry on the screen at any time, regardless of common sense clipping. Rendering Outside the Box The first attempt I made at getting things to work was to just […]

    Read More
  • January 7, 2016 - Samsung Open Source Group

    Spend Some Time With the Tizen Community at FOSDEM 2016

    For the 5th year in a row, the Tizen community will meet at FOSDEM: one of the most important free and open source software conferences in Europe. Members of the Tizen community from all over the world, including South Korea, Poland, UK, Bulgaria, and France will converge  on January 31 and February 1, 2016 at ULB Solbosch Campus, Brussels, Belgium. Here’s what you can expect from the Tizen community, this year: Meet Tizen developers from around the world for discussions. Interact with demos at the EFL/Tizen booth. Dine with Tizen developers at the community dinner. Learn and discover about free and open source software. Join Our Casual Dinner Meeting! If you are interested in Tizen presence at the conference, just bookmark Tizen’s wiki FOSDEM page and join us. There you will find details about latest news and plans including the Tizen community dinner that will occur on the evening of […]

    Read More
  • Multi core, heterogeneous embedded devices have been available for some time, but we are still learning a lot about how to use them to their full potential. My colleague and I have been trying to understand how the kernel scheduler affects the responsiveness of the user interface and how to maximize and stabilize the frame rate without consuming excessive energy. We want to improve the usage of that little battery so many people complain about! This article will focus on how CPU and Kernel interact from the user space point of view. Later, in another blog post, we will look at how to design libraries and applications to be as energy efficient as possible. There is still a lot that could be covered on other subsystems like the GPU or network, but these are big topics that are beyond the scope of this article. CPU Management in Today’s Linux Kernel […]

    Read More
  • December 11, 2015 - Mike Blumenkrantz

    Manual Compositing with Compiz and Enlightenment

    This is the first article in a two part series on compositing with Compiz and Enlightenment. I recently implemented  a proof of concept for Compiz effect modules in the Enlightenment compositor. In this article, I will explore the methodology behind the implementation and cover some of the AWESOME hacks that made it possible. Replacing Default Compositor Behaviors with Compiz To start, let’s examine how Compiz operates. There is an OpenGL extension that allows an X11 pixmap to be bound to a texture. Compiz operates based on the principle that the compositor can render this texture in any way, at any time, and the underlying X11 input window will be moved quietly to wherever the rendered content ends up. This creates the illusion that the entire window (input and output) is moving in an irregular manner, when in reality, the window’s output is moving around and the window’s input region is […]

    Read More
  • October 29, 2015 - Ben Lloyd Pearson

    Wrapping Up A Productive Week in Seoul

    This week has been packed full of presentations, technical meetings, and professional networking in Seoul, South Korea. We sent more than a dozen people to attend the Korea Linux Forum, the Linux Kernel Summit, and the Samsung Open Source Conference and we had representation for nearly all of the open source projects we are involved with including EFL, Wayland, IoTivity, FFmpeg, Gstreamer, and more. We met countless talented individuals and we are extremely happy to get the chance to interact with Korean professionals as we seek to increase our interaction with individuals who could be valuable to the open source technology we rely on. Setting the Tone at KLF Our week started with a keynote from Ibrahim Haddad, the head of the OSG. He explained why open source is so valuable to Samsung and what we are doing as the company’s open source R&D group in order to improve the […]

    Read More