Skip to main content

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 I am. After working with some awesome people at Nouveau, I realize that thinking at different levels which is required not, only makes you a better developer but also enhances your thought process. Personally, I feel like they have a compiler in their head. :P
Very early on, I knew and realized that a very important link in the documentation was missing. Even though the documentation had more detail and relevant information than I expected to, it still left a lot of room for newbies to get lost in. I feel this was the reason I had felt that documentation needed A LOT of work to be done. While working however I felt that it was nicely written and had most of the required elements in good detail. I discussed about the missing link with mwk and mupuf. mwk showed an unexpected level of interest and came up with something truly remarkable. With some small recommendations from me, he created the intro.txt. This document not only fills the hole and directs newbies to a starting point but does so very beautifully complete with schematics ( I have no clue how he made the schematics! They are amazing!). You can find it here:

The second phase of EVOC was no doubt more productive as compared to the first but was also filled with quite a few hurdles. This meant that I had hoped to achieve more but couldn't. Firstly, the pdaemon to host communication which I had thought was ready to go. showed many bugs during testing. Then very early in this phase, I had caught fever. Catching a fever was not the main issue, the issue was that I had to run around applying for my visa while I was sick. A two day fever extended to a 2-week turmoil. Soon enough the proposed EVOC deadline was approaching and my college had officially started. Even though I was on a leave till the date of deadline, I ran in to trouble because I was repeatedly called to attend meetings as I am the student head of multiple college activities. Hence, I felt I had not implemented sufficient amount of code by the end date. Now, I had to manage between college and Nouveau. This would still have been easy but at the same I also had to get stuff ready for my trip to XDC2012 and prepare for some college exams. These exams turned up exactly a day before my flight i.e. tomorrow! So now, I will get back to my studies so that I can give two exams tomorrow and rush to catch my train to Delhi. It is going to be awesome to say the least. :P I guess I am a person who likes to keep himself overly busy. Technical fest of the college and Software Freedom Day are just around the corner. Oh! and how could I forget the college placements (recruitment process by organizations to hire students; I do need a job ;) ) which starts just over a week from now!

Popular posts from this blog

Charting API for Financial Markets - JavaScript (SVG)

A brief about the released version of this API is available here.

As a part of the last semester of my graduation program (Bachelor of Engineering in Information Technology), I have been interning with a start-up, namely uTrade Solutions.  uTrade™ Solutions is a financial trading technology company with various products including multi-asset trading platform, algorithms and analytics. Instead of walking through my experience of working in a start-up, I would directly move to a short discussion about my project. 

uTrade Solutions is working to develop a financial analytics portal and every financial analytics portal employs the use of advanced charting. To draw and display different types of charts on the web, there are two main options which are widely used and acknowledged. Namely, Adobe Flash and Scalable Vector Graphics (SVG) . 
Using Adobe Flash has two main disadvantages: It requires the installation of an additional plugin to run content on the browser.It is not compatible with a…

FusionCharts Automated Testing Tool

While working at FusionCharts, every release we were faced with a daunting task of black box testing. Daunting mainly because of the breadth and the depth of the product. This post talks only about black box testing. FusionCharts Product as a whole contains about roughly 90 charts and each chart can be visually tweaked with a set of about 300 chart options/attributes. Ignoring any further permutation and combination, we have right there around 90*300 test cases. Apart from chart options, api testing which consisted of events and methods was needed. Clearly automation was required, as our manual testing would cover only a very small sample set that too based on smart assumptions.

With this problem at hand, I broke it down as follows:
Headless Browser
- Visual Regression
- API TestingUser Browser
- Visual Regression
- API Testing We liked to call it the FusionCharts Automated Testing Suite.

Headless testing would be based of a headless browser and integrated in to our nightly builds. It was…

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…