I’ve been exploring alternative operating systems for the Surface Go 2 (4GB RAM, 64GB storage) with an Intel Pentium Gold 4425Y processor. Lately, I’ve been using the Surface Go more as a tablet and found that Windows 11, despite improvements over Windows 10, still falls short as a tablet OS. Additionally, Windows 11 feels somewhat clunky on the Surface Go 2’s minimal specs. I’ve tested several…
Rvalue references were introduced in the C++11 standard in September 2011, offering powerful capabilities for optimizing C++ code. Despite being a fundamental feature, rvalue references can seem daunting to C++ beginners. In this guide, we will demystify rvalue references and explore how they contribute to efficient and modern C++ programming. C++03 Value Categories In C++03, each expression (not…
The RPi boards generally have two LEDs on board. The first, PWR LED represents the power in the board and the second ACT LED can be programmatically controlled. The ACT LED is easy to control and can be used as a good indicator that my code running on the RPi until I can get complex output functions to get working. There is an excellent Baking Pi course which focuses on bare programming on RPi in…
I got my hands on a second hand Raspberry Pi 1 B+ for just 4$. For those who don’t know it’s a credit card sized computer capable of running linux. It is powered by a ARM processor and has 512MB of RAM. It also had an ethernet port, HDMI output, 3.5mm audio jack and 4 USB ports. It’s a popular hardware among the electronic hobbyists. I have been thinking for quite some time to work on an OS…
I finally decide to just post this draft as is. This trip was undertaken 2019, one of my last before covid stuck. I have been procrastinating on working with this particular blog post for god nows how long. After starting a job it has become harder to find time to work on blogging. I guess I will just put it out in the dilapidated state and get over with it. Let’s go back to 2019. I finally…
Recently I started working on the physical layer of 5G NR. And whenever any of my friends asked me about my work, I always ended giving them a primer on wireless communication before I could start talking about my work. And hence this blog to generate awareness about the area that I have been working on for the past few months. Let’s start from the beginning. Physical Layer The physical layer (the…
In an OpenStack cluster, the nova service is responsible for binding the port to the host and attaching it to the virtual machine. We will only look at openvswitch driver in this post. This post is meant for a very niche section of people and I won’t be bothering with covering the background required to understand this post as it will take an entire post series to do so. First, we need to create a…
I decided to self file the Income-tax returns to better understand the process, for this year. I was able to find a decent amount of information for the same concerning NRIs but almost no resources on how to do the filing itself. So I decided to write a guide myself to document my findings. This guide focuses on a specific section of Non-Resident Indians (NRIs from here on) which do not own a…
This post is about my recent trip to Phoenix, Arizona for presenting my work titled “Sangam: A Multi-component Core Cache Prefetcher” at The 3 rd Data Prefetching Championship held in conjunction with ISCA 2019. This year ISCA was held at the same place with a bunch of other conferences as part FCRC. Data Prefetching Data prefetching is a well researched problem which has attracted a lot of…
After struggling with it for about a month, I was finally able to get iTunes working on my Linux system. There are a lot of tutorials explaining how to install iTunes with wine but none of them mention any specific version of wine and iTunes that work successfull; hence I am writing one myself. But before we start here is a screenshot to cheer you up. The basic installation First, install wine in…
The initial project plan went through a total makeover when I found some new things in my research. The Smart View SDK being the most prominent finding. The Smart View SDK allows us to broadcast content from the mobile app to the Smart TV without requiring a software at the television end. It allows us to play files that are present in the phone as well as stream videos from the web. It was ideal…
The Project For TDLR people; I plan on creating a casting app for samsung TV and my android phone. The android app will allow me to send a video link to my TV app which will then stream the video. For the rest, please continue with the article. A little background After moving to South Korea, I wanted to learn something new and work on a side project which is on the userspace side. I also wanted…
The GSoC season is about to begin and here is a post reminiscing my memories of GSoC. Might also be a good read for someone who has failed a GSoC. My experience with GSoC is a classic example of how things eventually work out in the end if you keep trying. Each year Google sponsors students to work on open source projects during their summer vacations. The students are paid for their work as part…
The Old Site The Theme Change From the starting of my blog, I have been using the Hyde theme. But recently I have felt that the sidebar was not doing any good to the reading experience of the blog and hence decided to change to a theme without sidebar. I went through a lot of themes listed in Jekyll Themes and finally ended up selecting Lanyon which can appropriately be called the cousin of my…
Antergos is a distro based on Arch Linux. In this post, I will share my experience of installing Antergos with some of the problems that I faced and their solutions. I have been using fedora with i3 as Desktop Environment (DE) for about 2 years and did not face any errors during that time. But recently my system started hanging a lot. It could have have been some package that I installed or just…
As the title suggests this post is about my experience at XDC. XDC stands for X.Org Developer’s Conference and is the annual conference of the Linux graphics stack community which includes a lot of projects, some of them being: kernel DRM module, Mesa, Wayland, and X server. During XDC I presented the work that I did as part of GSoC2018 . This year XDC was hosted by GPUL (Galician Linux User…
This post will act as the final Work Product for my GSoC project. Christian König mentored me for the project. I will start the post with the initial project abstract and how that converted into the actual project that I worked on. After I will discuss the result of my project followed by a summary of the work that I did during the summer. I will end the post with a short discussion on future work…
I have been working on the linux kernel for the past 2 months as part of my GSoC and during that time I had to deal with the Makefile in the Linux kernel. The Makefile has some handy targets which are not easy for a beginner to find. In this post I will talk about some of the targets that I found useful during my work. Here is an incomplete list of targets: The obvious ones : These are the…
At last, I was able to get my code to work!! 😀 😀 😀 In my last update , I covered the plan that I was going to follow to implement dynamic scheduling. In this post, I will talk about the problems that I faced during the implementation and how I solved some of them. Coding the implementation was not all that difficult, and it took me a couple of days to get it done. The major hurdle was getting…
This post is about my recent trip to Los Angeles, USA for presenting my work titled “DFCM++: Augmenting DFCM with Early Update and Data Dependency-driven Value Estimation” at Value Prediction Championship (CVP) held in conjunction with ISCA 2018. In simple words value prediction involves guessing the output of machine level instructions so that the instructions that depend on the output of this…
I am back with another update. In this post, I will discuss the implementation plan that we came up with to add dynamic scheduling to GPU scheduler and also some of the initial problems that I faced during the implementation. I will first start by explaining some of the functions before I start talking about my work. As usual, I will assume that you have read the posts that I have written before…
Dependency handling is the core part of my GSoC project. In this post, I will cover the existing dependency handling that is implemented in DRM scheduler and the one that we are planning to implement for the project. I have already discussed the organization of the DRM scheduler in this post , which is a prerequisite for understanding this post. The below figure summarizes the organization of the…
It’s been 3 weeks since I started working on my GSoC project. I am working on the DRM GPU scheduler to improve the load balancing and have more dynamic scheduling of jobs, for more details read this post . This is my first update for the project. I wanted to be more frequent with the updates but I was unable to due to my trip. I had planned on doing bi-weekly updates for the project but this…
I’ll be spending my summers with the Xorg community (more specifically dri-devel community) to Improve the GPU scheduler which is part of the Linux DRM subsystem. This post sheds more details on my project and is a somewhat extended version of my GSoC proposal. Introduction Today’s GPUs have various hardware components that perform specific functions. And there are multiple copies of some of these…
Today I got the result for my final semester at IIT Kanpur. This ends my coursework at IITK (not necessarily my stay thought :) ). There is a lot to look back on, memories and regrets but let’s walk down this lane some other time. There is a lot to look forward to for the summer. I will be focusing on that for this post. I am looking forward to my visit to US during June. I have to present my…
I overjoyed to tell you that I will spend my summers working with the Xorg community as part of Google Summer of Code. I will be working on DRM subsystem of the Linux kernel. I will be mentored by Christian König for this project. I will be working on the GPU scheduler which is part of DRM subsystem. The Abstract for my proposal, which is also available here All the GPU drivers have a scheduler…
Today I published my first library on crates.io , evdev-rs. evdev-rs is a wrapper around libevdev in Rust. It provides us the facility to deal with input devices in a safe way. This post will serve as a tutorial to get started with evdev-rs. What is libevdev? libevdev is a wrapper library for evdev devices. it moves the common tasks when dealing with evdev devices into a library and provides a…
In the last post , we looked at how we can write a crate which allows raw access to C functions. In this post, we will write a safe abstraction for this crate. We will be using a part of evdev-sys as an example to see how to write the wrapper functions. Why do we need a wrapper in the first place? The wrapper is a way of writing a safe abstraction around an unsafe C function which would allow us…
I started learning rust early December, and the best way to learn a language is to use it. So I started looking for a project in rust and hopefully I was able to find a project which was writing bindings for libevdev in rust. There are a few blogs which talk about bindings but there were certain aspects that this blogs didn’t cover and I had to do some digging myself to get the answers. This aim…
The semester got a whole lot busy after my last post. Hence I was not able to write. Now Since the semester is over you can expect some posts. This post describes my work implementing DRI3 helper code for PRIME hardware. I was all set to start implementing DRI3 features for VDPAU state tracker but then I noticed that my hardware i.e. PRIME was not supported in DRI3 helper. So I started working on…
This post has been pending for some time now. I have been working on VDPAU state tracker for the past 2 months and have implemented luma keying and bicubic scaling and currently working on lanczos scaling. I will be writing about image scaling algorithms and my implementation of bicubic shader in this post. Image Scaling We are given a image at a particular resolution say 300x300 in the form of a…
It’s been 1.5 months since my last post. I have been busy this whole time also tried working on a post on bicubic scaling, but its going nowhere. You get a hell lot busy once the semester starts. Nevertheless I have been able to take out some time to work on mesa though the progress has been slow. One reason for me being busy was the internship season in the college, I had to prepare for coding…
TGSI stands for Tungsten Graphics Shader Infrastructure. The development of TGSI was started by tungsten graphics and hence the name. So what the heck is TGSI? Let’s find out together. When we write a code and compile it, the compiler converts it into a intermediate representation which is suitable for optimisation before it is translated to machine code. TGSI is a intermediate representation to…
I have been working on VDPAU lately and need a test application to test the changes, so instead of using mplayer I decided to make one of my own. I was not able to find any documentation to do it, although I was able to implement by getting some inspiration(read copying) from mplayer code. I will dicuss about it in this post. For tl;dr people here is the source code for the application. After…
I have been working with VDPAU this whole time and have gained a good insight into its working, So here’s a post describing my experience. VDPAU is a API similar to OpenGL. It stands for Video Decode and Presentation API for Unix. And as the name suggests it deals with decoding and processing of video using the hardware. VDPAU allows applications to use acceleration hardware present in the GPU.…
While I was working, I was not able to find a good post regarding development environment for mesa, so I decided to write a post myself. Mesa is written in C for most part and uses git for version control and autotools to build. It will be a familiar environment for most people. Download source code Mesa hosts its mater git repository on freedestop.org . To get a local copy of source code do cd ~…
I have been working on video post processing on mesa for the past two weeks, So I thought I could also write about it and it might help someone who wants to contribute to mesa. Hence, I will be doing a series of post regarding mesa, linus grahics stack ,video processing and more. This is the first post in a series of posts to come. It will serve as a introduction to mesa and the linux graphics…
It’s been 2 months since my last post. A lot happened during these 2 months form GSoC rejection to involvement in mesa, not to forget the end-sems in between. So lets start from the begining, I made some more contribution to gnome-maps and libchamplain (a mapping widget library used by gnome-maps) as part of my GSoC proposal. It was fun interacting with developers like Jonas Danielsson, Jiri…
I made my first contribution to FOSS to gnome-maps . The feeling that the code you wrote reaches hundreds of thousands of people is great. It makes me feel proud even when I write about it. I am little late for this post as I made my first contribution on 1 March anyways gnome-maps allows you to search for a route from source to destination and you can choose the points via which you want to go.…
Recently I moved from ubuntu 15.10 to fedora 23, which was first time I was trying a new OS which was not based on Debian. Installing fedora was new experience as fedora had a installer which a lot different from the debian based distros. This is very good walk through to install fedora 23 which I followed. After installation the first major difference is gnome desktop environment. The gnome…
Reveal.js is a javascript framework to create beautiful presentations. It allows us us to create presentations in form of html pages which include a broad range of features. I like the the framework mostly because it allows to create presentation related to web development and also show the excecution of code then and there. Though some of you may feel that it is tedious to create presentation…