• Coding,  mir,  Multimedia,  Ubuntu

    Mir and Vulkan Demo

    This week the Mir team got a Vulkan demo working on Mir! (youtube link to demo) I’ve been working on replumbing mir’s internals a bit to give more fine grained control over buffers, and my tech lead Cemil has been working on hooking that API into the Vulkan/Mir WSI. The tl;dr on Vulkan is its a recently finalized hardware accelerated graphics API from Khronos (who also proved the OpenGL APIs). It doesn’t surplant OpenGL, but can give better performance (esp in multithreaded environments) and better debug in exchange for more explicit control of the GPU. Some links: Khronos Vulkan page Wikipedia Vulkan entry short video from Intel at SIGGRAPH with…

  • Coding,  mir,  Ubuntu

    New Mir Release (0.18)

    If a new Mir release was on your Christmas wishlist (like it was on mine), Mir 0.18 has been released! I’ve been working on this the last few days, and its out the door now.  Full text of changelog. Special thanks to mir team members who helped with testing, and the devs in #ubuntu-ci-eng for helping move the release along. Graphics Internal preparation work needed for Vulkan, hardware decoded multimedia optimizations, and latency improvements for nested servers. Started work on plugin renderers. This will better prepare mir for IoT, where we might not have a Vulkan/GLES stack on the device, and might have to use the CPU. Fixes for graphics…

  • Coding,  mir

    A few years of Mir TDD

    We started the Mir project a few years ago guided around the principles in the book, Growing Object Oriented Software Guided by Tests. I recommend a read, especially if you’ve never been exposed to “Test-driven development” Compared to other projects that I’ve worked on, I find that as a greenfield  TDD project Mir has really benefitted from the TDD process in terms of ease of development, and reliability. Just a few quick thoughts: I’ve found the mir code to be ready to ship as soon as code lands. There’s very little going back and figuring out how the new feature has caused regressions in other parts of the code. There’s…

  • Coding,  mir,  Ubuntu

    Mir Android-platform Multimonitor

    My latest work on the mir android platform includes multimonitor support! It should work with slimport/mhl; Mir happily sits at an abstraction level above the details of mhl/slimport. This should be available in the next release (probably mir 0.13), or you can grab lp:mir now to start tinkering.

  • Hardware,  mir,  Ubuntu

    Mir Device Showcase!

    Here’s a video of Mir powering a few different GPUs: Nexus 10 (ARM Mali T-604 GPU) Nexus 4 (Qualcomm Adreno 320 GPU) Nexus 7 (2012) (Nvidia Tegra 3) Galaxy Nexus (PowerVR) This is a pretty big milestone, as we’re now in a position where Mir works well with 4 big Android gpu vendors. Enjoy! The only disclaimer on the video is that some of the code hasn’t trickled to the images yet, and the tablet support is still a work in progress. Onwards and upwards!

  • Coding,  mir,  Open Source,  Ubuntu

    Friendly Mir Links

    Just a friendly reminder, but Mir is open! Here are some useful links. Documentation We’ve put effort into sharing as much as possible and lowering the knowledge-barrier to entry for the project. We want you to understand how your pixels will be painted under Mir. Here’s some good links: Mir documention: http://unity.ubuntu.com/mir/ This is all generated right from the trunk code (lp:mir’s doc/ folder) We also generate api documentation on same site: http://unity.ubuntu.com/mir/annotated.html Code The code is all available on launchpad: lp:mir The reviews are all done on out in the open: active reviews Our continuous integration is on jenkins like the rest of the Ubuntu projects: https://jenkins.qa.ubuntu.com/job/mir-ci/ Lastly there…

  • Coding,  mir,  Open Source,  Ubuntu

    Mir and Android GPU’s

    With Ubuntu Touch, (and mir/unity next) we’re foraying into a whole new world of android drivers. Given the community’s bad memories from the past about graphics, let’s clear up what’s going on, and how we’ll steer clear of the murky waters of new driver support and get rock-solid Ubuntu on mobile platforms. Android Driver Components and their Openness First let’s talk about openness. Driver ecosystems tend to be complex, and android is no exception. To get a driver to work on android, the gpu vendors provide:  a kernel module The kernel module must be GPL compatible and this part of the driver is always open. This part of the driver…

  • Coding,  mir,  Open Source,  Ubuntu

    Mir and Android FAQ

    There’s been some murmurs and uncertainty about Mir and Ubuntu Touch support, so here’s a quick FAQ. Does mir support android drivers? Yes! We put great care into our platform abstraction so that when you run on mesa desktop drivers, you use our mesa/gbm platform, but when you run mir inside of an Ubuntu Touch phone/tablet, you use the android platform to get full OpenGLES acceleration. What sort of acceleration do you provide with android drivers? Full acceleration! More specifically, this means that entire path, from client render to framebuffer post, is OpenGLES accelerated and there is no-copy of the color buffers. This gives mir clients and Unity Next the…