Skip to main content


Showing posts from 2012

Nouveau Summer Project : The End and The Beginning

The following are the IRC nicks of two Nouveau contributors without whom I wouldn't be where I am and none of this would be possible. I could never thank them enough for keeping up with my noobness. Thanks guys!

mupuf : Martin Peres  
Email: |

mwk : Marcin Koƛcielnicki
Email: |

The end and the beginning refers to two things, the end of the X.Org EVOC program and the beginning of a new Nouveau contributor. The experience till now has proved to massive learning opportunity, at the same time rewarding as I was able to actually implement code and obtain results. I started off as someone who was completely alien to such low-level programming and have grown to be someone who actually loves it more than the stuff he used to do. My student life began as web-developer, engaging in which gave instant results and was hugely motivating at every step to progress further. It has been a long journey from there to where …

Nouveau Summer Project : Pdaemon -> Host & Fermi Scripting Engine

I had known and was warned that once I start working on this, there will not be a definitive end. I guess after some time you need to put a stop, just so that you can move on to the next phase. This post will mark the end of X.Org EVOC program and begin my journey as a Nouveau contributor.  The second phase of the program has been a rather complex one and filled with unexpected hurdles.  
Many changes had to be introduced to command submission algorithm, that we had thought was fit to be implemented. The new implementation after testing proved to work almost completely bug-free.

Probably the most glaring difference would be the omission of 'memcpy' and 'wrap_around' functions.
The 'memcpy' performed a simple a task of copying a fixed length of data from a given location to another specified destination. It took three arguments, namely source, destination and length. This simple function however had a very basic problem. It did not account for the wrapping arou…

Nouveau Summer Project - Progress Update

This is a summary of all the proceedings related to my project on Nouveau. The start was a little bumpy due to some bugs and incompatibilities with Ubuntu. After spending quite some time to fix things I decided it was better to shift to Arch rather than spending anymore time on it. It took over a day and many reinstalls to get the base system up and running. Then the xorg server was setup and nouveau was installed. This got a basic window system running. It was followed by a git clone of PDAEMON + envytools which was then compiled and successfully run on Arch system. Things worked perfectly on Arch and I would be posting a tutorial on how to install Arch on a usb stick because I find the official documentation not so friendly to newbies.
Designing and implementing a PDAEMON to Host communication was my first objective. I planned to work on it in C. I started off with a basic implementation of the  command submission. From there I made incremental modifications improving and testing i…

KDE - Authors //Promoting book writing in KDE

If you are in any way related to KDE even if you are just a user and think you can/want to help/join us then without giving a second thought fire an email to me. (

How it all began . .

Last October, Google invited proposals for a GSOC Doc Camp Sprint. The sprint was organised at their offices in Mountain View, California and luckily a team of KDE-Contributors got their proposal selected (I was one of them). Over there, we were teamed up with independent volunteers who were basically professional editors and were briefed about the whole plan. The layout was simple, we had to spend the first few hours outlining the chapters and target audience for our book, then spend the rest of the sprint working on the content. We had proposed to work on a beginner’s guide to KDE development, for developers. Most of the content required by us was available on the wiki but writing a book is a totally different approach than writing a wiki. Working 12+ hours a day , things were on w…

Nouveau - Summer Project

Implementing a software scripting engine on Fermi to achieve safe memory re-clocking.

Fermi stands for Nvidia GPUs based on Fermi architecture.

NVidia cards have long had the possibility to reclock at least some of the engines of its GPUs. Up to the geforce 7 (included), reclocking used to happen at boot time and usually didn't involve memory reclocking at all.

It changed with geforce 8 (nv50) where almost all laptops got the capability to reclock both the VRAM and the main engines. This was introduced in order to lower power consumption when the GPU was mostly idle. The default boot clocks were usually in some intermediate state between the slowest and the fastest clocks. The reclocking process for these cards is mostly understood and Nouveau is not far from being safely reclock on the fly, even while gaming.

Geforce 200 (nva3) introduced load-based reclocking on all the cards. This started being a real problem because the default boot clocks are a third to a half of the maximum …

Nouveau - The Open Source driver for Nvidia cards

The following is derivative of extended conversations and tutoring by Martin Peres ( irc_nick : mupuf ).

This article is an introductory discussion of nvidia gpus with respect to nouveau. Nouveau is the open-source driver which runs the Nvidia cards on your linux pc. A schematic breakdown of the nvidia architecture can be understood through this figure.

The first important repository is the envytools (, this contains the most valuable set of tools and documentation you ll find for/on nvidia cards.

To have a look at how the X Window System ( X11 -  current major version ) GUI framework works, let's say all the rendering is done by sending commands to the x-server. Applications connect to the x-server through a socket which allocates a context for their windows and issues commands like draw a line etc. For 2D rendering, the x-server has the EXA interface. The EXA can be accelerated by graphics drivers and the acceleration is done by DDX module…

Getting Started with Open Source Projects

Fellow Open-source Enthusiasts

Going to conferences is great , getting inspired by attending them is even better but you know what is better? Getting to attend conferences [National/International] for free , getting cool stickers and t-shirts being delivered at your place , being one of the first few to get your hands on a developer device or developer release of an upcoming software/OS and all this for free! I will hopefully be pardoned by true open-source enthusiasts for making this look like an advertisement rather than a motivator but I somehow couldn't resist.  Now , ignoring the above perks because they are 'perks' , the real deal is getting to learn while you work. Being involved with any open-source project brings along a great deal of learning , experience and contribution to real-time projects which people around the globe use in their daily lives. Once you are into development and learning , conferences make a whole lot of more sense as you actually get what is go…

Beginner's Guide to KDE Development

Google Summer of Code Doc Camp SprintOctober, 2011

    The Doc Camp was held at the Google HQ in Mountain View, California ; it consisted of 2 major components - an unconference and 3-5 short form Book Sprints to produce 'Quick Start' guides for specific GSoC projects. The unconference explored topics proposed by the participants. Many topics on free documentation of free software were proposed for discussion during the event. Each Quick Start Sprint brought together 5-8 individuals to produce a book on a specific GSoC project. The Quick Start books were launched at the opening party for the GSoC Mentors summit immediately following the event.
    Four free software projects (KDE, OpenStreetMap, OpenMRS, and Sahana Eden) had each sent three to five contributors to write books about the projects this week. The KDE team consisted of four members , namely Karan , Rohan , Valorie and yours truly. A book in a week was an amazing achievement, whether for a free software projects or …


Turban - A turban is a kind of headwear based on a cloth winding; there are many different variations. The Sikhs have a long history of being warriors and refer to themselves as saint-soldiers since their rise in the 1600-1700s. Their turban style and attire gives the identity of a warrior religion.

Terminal - A terminal is a serial computer interface for text entry and display. Operating systems such as Linux, FreeBSD and Mac OS X have virtual consoles to provide several text terminals on a single computer.

The pilot episode is supposed to bear the burden of getting a TV series selected for production but this is definitely not one such post. It more like a brief on what all I will post about but I didn't want to call it "Introduction" so well here is the "Pilot" post.

It has been a while since I have wanted to start a blog but just ended up writing articles and posts for where they were required. Most of the posts are currently going to be related to FOSS (Fre…