Episode: 838
Title: HPR0838: Martin Peres @ XDC
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0838/hpr0838.mp3
Transcribed: 2025-10-08 03:18:59

---

This is Marcus. This is my fourth interview at the XORG Developers Conference. This is
with Martin Perez. He works on the new Vogue driver for the video cards.
Okay, this is number four, I think, and it's either an XDC, XDS, or ZORG cough, two thousand
years. Yeah. Right, everyone that seems to have a different thing. So, anyway, I am with
Martin Perez, who is a French student. Martin, tell us a little bit about yourself.
Yeah, so my name is Martin Perez. I'm a student. I just graduated from a security-oriented
engineering school. I'm starting a PhD in a library. It's a research lab in Bordeaux in France,
and I'll be working on Green IT, a Green IT. Green IT, what's that? It's out to use less resources to
provide the same service. So, resources could be energy, like electricity, so consumers,
for the same service, or it could also be radio frequencies, like achieving the same bandwidth,
but with just the same amount of bandwidth. She would do as much interference or just use
less power on them. Yeah, and trying to find the up-optimized way to root the messages across,
yeah. Yeah, it could be a lot of things, but I don't know yet really what I'll be working on,
because I'll start just in a few weeks. Okay, so right now you're mainly working on the
new world driver, right? Is this kind of yours? What's your work on? Well, I work on new world,
but I also work on an Arduino IDE called Arduino IDE, Arduino IDE. It's Arduino is a platform for
based on an AVR, maybe we should check it out. It's open source, it's open hardware, and you can
basically do some basic electric electronic things. Do you like a little, like $100,
$100, a little single-board computer? No, no, no, it's way cheaper than that. It's about 20 bucks,
and what I did, for instance, was to use this Arduino to actually control the
my music player. So I have a screen, an LCD screen that is just writing the name of the song,
yeah, the title, the artist, and the progression. I can use a thumb joystick to go a next precedent,
volume up, down, I have a blackberry, a blackberry and a black ball that I use to, well, almost nothing,
but it's just cool. That's cool. So is it the music player on your machine? Yeah, I'm like,
I shoot up, and there is, yeah, I use the USB connection to it. Nice, that's cool, I like that.
Send comments to the player and get information from it. Yeah, very cool, you're through and through
I like it. That's cool, yeah. Okay, Arduino IDE, how do we know it's, yeah, it's the Arduino IDE,
but we are using the, the official one is made in Java, but we wanted to write it in
cute from Nokia. Yeah, I approve. Not a job of answering.
Okay, let's see. So, but so right now, you're a geek through and through, which is good,
and you're working on X stuff. Yeah, so in X, what are you working on? In X, I'm working on
Nuvo driver. Nuvo is a driver for an open source driver for NVIDIA cards. It supports
cards starting from Riva 128, so it's pretty much the fourth chipset ever released from NVIDIA.
I mean, almost no one has the previous ones. And it goes up to the latest one,
and the T9. So, what it does is, it's used to, well, it does to the mod setting, so you can just
plug your screen and have something rendered on it. Well, that's cool, but not enough. Also,
we have some 3D stuff. It works on, let's say, it works well on G4-7 and later.
I'm working especially on power management. This is to change the frequencies of the card,
but I also work on fan management. I mean, if the temperature rises... You can change the
fan speeds? Oh, yeah. Oh, really? Yeah. That's cool, I didn't know that. Yeah, we have to.
Yeah, by the way, you can't just blow up. I can see myself a geek, but I just don't know these
things. I'm so ashamed. I should know these things. It's fun.
Yeah, what's left? Oh, memory timings. Also, this is a bit. I mean, yeah, if you just do
something wrong, just a little bit, the card will crash right away. How many
clock frequencies does this card really can you step on from like, I don't know.
Okay, let's say there is a call clock that is just a rendering clock. There's the shutter clock
for, well, shutters, memory clock, and then the other ones, so I'll just... I'll say, it could be for
video decoding, or now on Fermi, we have so many clouds that I can't even track them.
There are like 10 or more clocks. Does each engine have its own clock? Or are they kind of all
chunked together? On Fermi, every card has every sub engine has its clock almost. Are they
capable on a per engine basis? Kind of. Are they kind of like in groups of... Yeah, the clock
trees are a bit strange. But yeah, I haven't started working on it yet. I'm still working on
GeForce 8 up to Fermi, because I only have one Fermi, so... Could you help them or do the reverse
engineer effort on that right? So you don't have to have a documentation, you're having to figure all
this out. Yeah, we have no documentation, so basically we can check what the proprietary driver does.
We can, I'd say, capture every interaction, the blob and the proprietary driver.
Every access that the blob does, we know it. Well, yeah, it's great, but when you have millions
of lines, yeah, you still need to find what's the interesting line that you want to, that you need
basically. But it's not that bad. I mean, at first you're overwhelmed, but after you're trying to
learn how to make your way through it. Okay, so it's like everything else in the beginning,
you're completely lost, have no idea. Yeah, like in the sea of lines.
Eventually, you keep at it. Yeah, and we have some gigs that really help newcomers. Yeah, yeah.
How'd you get into X?
That's a good question. I mean, I started programming when I was 12,
and I programed using Q-Basic. When you say 12, that was only 11 years ago. You're only 23.
Yeah, okay, so 12 years ago. Yeah, I'm still student.
Yeah, I was just doing some little programs, but what I didn't want just to write programs,
I wanted to learn what the system was, and how things worked. That's really what I love.
So, well, I used to make games with a cousin of mine. It was interesting, but what kind of games?
Well, there were some basics that were doing some 3D. It was called 3D game creator,
or Doug by Doug Basic Pro. It was great, but it was to abstract. So, yeah, I started learning
C when I was, well, I think two years later, two or three years later, so when I was 15,
and well, I loved it. I mean, even though I had to read books to get things to work properly,
it was really interesting, and then after a while, well, two years later, or three years later,
I was in a Windows kernel. I wanted to understand more and change the network stack,
so as every outgoing connection would be tunerized, so as it will pass through the firewall
of my university. So, when you did that, you settled all through the tunnel. Did you have access
to the shortcut? No, of course not. So, you have to set up hooks for that. So, yeah, for Windows,
it's basically there is a SSD TV. It's a table which makes correspond the IOCTL,
a number, the system call number, to a function to call, and yeah, you just changed the
stable, so as you put your function instead of the normal one, and yeah, and you need to write a
drive also. Okay, yeah. So, it's fun, but as it was closed, I mean, it was hard to get it working,
basically, wrote five different firewalls, but that's all I was able to do. It was great.
Oh, oh, there was something fun that I was able to create rules like every time we'd like to
access to the google.com, you would be already directed straight away to somewhere else.
Really? Yeah, it was interesting, fun, but didn't achieve what I wanted, so that's not good.
And yeah, then I went to Linux because it was open and a home. Well, I knew Ubuntu, but I didn't
really like it because it was working too well, maybe, I don't know. It was, yeah, too
fortunate to get in and part-around in the guts. Yeah, so a friend of mine made me discover
Arch Linux and I sticked to it since then, so I've been an archer for four years now.
And I loved it, even though it wasn't really working well, because the hardware I had was crappy,
especially graphic cards. Yeah, I sticked to it because it was my operating system, and it's so cool
when you want to learn a system and you can just build your, build your, and yeah, I was a
Windows gig at the time, not proud of it, but yeah. Sorry. Yeah, I had experience with Linux, I mean,
even with my father, I tried a Red Hat, a newly version of Red Hat, and yeah, it was interesting,
but I mean, didn't get you a lot. Yeah, it's as a user, I didn't see the point. I mean,
there were less programs and everything, but I really understood what was open source
when I really went to Arch Linux. And even though all my code that I wrote was always open source,
because I don't know, it was just, I felt it was natural to help people, so every time I learned
something, I wanted to share it. And I still do, obviously, but now I know the TPL and all the
licenses. Yeah, well, that's cool. So the graphic card on my computer didn't work well. I was using
the proprietary driver. It was a radion card, so it was FGNRX, didn't work at all for six months,
so I was stuck with Visa. So no graphic acceleration. And after six months, it started working.
And well, it was great. I started using Compass. And yeah, it was interesting, but I moved to the
red, the open source driver and lost everything, but it was interesting. It lost everything.
Well, I just had to the acceleration. Yeah. So that was what really got me started into X,
because I was basically testing every release. And then I started using the
master brand, the git branch of radion and kernels. I was testing and testing them as soon as possible.
But yeah, it was working too well. So it's only when my school offered me a laptop,
with an Nvidia card that I really wanted to work on, on driver. I mean, and the Nvidia driver
was working well, but I just wanted to be able to upgrade to new kernels before Nvidia. Yeah,
I released the drive on here, and I didn't want to get stuck to Visa. So yeah, I installed
new one. Well, it worked better than I expected. I mean, I had a three-year tour, but I had to
the acceleration. It was kind of good looking, not too bad, actually, on KDE. And yeah, about
nine months later, I wanted to change the code. So as I would not have artifacts with KDE,
I didn't succeed in doing so. No, it's, yeah, it's difficult. But the CDO of PathGale got me started into
the project that was oriented into providing GPGPU from open drivers.
So I basically started by hacking LibDRM. It's the library that is abstracting the DRM interface
and in the kernel. So DRM is just to, I don't know, make sure that the programs don't touch things
they shouldn't. Yeah, that's true. And also, yeah, it provides a simpler interface,
yeah, to the hardware. And kind of abstracted one. You can touch on it a little bit.
Yeah, I live DRM. And yeah, I basically wrote a version of LibDRM for the driver of PathGale,
that is called PSCNV. Well, it didn't work well, but at least I was able to get X working and
JLX gears. It was, yeah, it was great. Yeah. But yeah, it didn't work well. So
then as I failed to do that too, the PathGale CDO just ended me over some documentation on
on power management. And that was pretty simpler to get started with. And I got
I was able to change the clocks pretty fast. Did you have to figure out how to do that?
No, I have dogs actually. Okay. Yeah, it was taken from, what was the name of it?
A tool that was written in GPL. So they have access to the code. But we wanted it to have it
in Nuvo, but Nuvo is MIT code, MIT license, so it's more BSD. We couldn't just take the GPL code
and put it into MIT. So they basically wrote the documentation and I implemented it.
Yeah, and it started working pretty fast. I mean, a few days. Oh, right. Yeah. And I got
recalculating. I was like, oh my god, it's too great. Yeah. I mean, having more performance,
it's great. So what I did after that was that it was exactly one year ago.
Well, I kept on improving it to make it stable. Also, I started working on fan management,
memory, timing management, VBRs, the video PRs, reverse engineering. What else?
There are also some changes to do in the kernel because NVR cards are a bit strange, so
yeah, it's hard to explain it, but I need to work with the HW human team.
It's the team. The hardware man. Yeah. Yeah. So basically how to set fan speed and so on. Yeah,
when you have I2C chips to do that. Yeah, so I think I covered how I went to X and what I did.
Yes, yes, she did. Let's see. So I guess the next thing on the list is anything cool,
or like you guys have been able to do. I know your presentation was about
your clock gaining and stuff that you've been able to do. Yeah. I presented my presentation
was more about what the novel community can do, so our new latest work is a video recording
for MP1 and 2, so it's basically useless. But it's the first implementation we have.
So you showed the first video and it was choppy every time. Yeah, it was choppy because it was
it's a benchmark from Amplier. So yeah, it was choppy. I think Amplier was just decoding
a bunch of frames, then render them, then decoding render, so it's not really like a pipeline,
it has more accurate threads. The idea worked well. And if the decoding is done in hardware
and the rendering also, it was quite... Because the second demo that you did was really, really
smooth. Yeah, it was really, really fast. That was the point. And that was all done in the hardware
event. Yeah, everything done in hardware. That was very cool. You also was a quick demo,
or dynamic quick-locking? That's the latest work. I mean, just figuring out the usage of the GPU
is hard. That sounds crazy, but yeah, it's hard. Actually, we've known how to get some information
for that for a long time ago. Yeah, I mean, six months, maybe. But every chipset is different,
so we have kind of asked for people to run a program that I wrote a week ago.
So as we can find some signals like, is the GPU idle or not? And this signal, you can monitor
it using an hardware engine. It's basically just a counter. And well, if you pull this counter
from time to time, like every 100 milliseconds, you can know how much time it was idle and
yeah, how much time was active. And using this, it's just trivial, just write a small
kernel thread that would just pull this counter and then re-clock according to the usage.
Like, if you're using more than 8% of the GPU, just go to the highest performance level,
and then if it hasn't been used for, I don't know, five seconds, start down-locking.
Yeah. Okay. And anyone can use that program?
Yeah, the program to reverse engineer, yeah, it's the point. So is it quite collect the
data and send it to you guys? Yeah, it doesn't send it. But yeah, it just throws it on,
yeah, a printf, it's on the screen. Yeah, it's just, yeah, and then you can just copy and send.
Okay. So that's the point. Okay. So anyone listening, again, the listeners listening to this,
anyone who has a Nvidia card, you basically get your program and then run it, yeah, take the output
and send it to you guys. Yeah. I'll ask, I'll push it call soon, when I'm sure that I can't,
in a few, in a matter of a few minutes, and add more signals, because there's not just one,
there are at least 20 that we know. But some of them are trivial to reverse engineer or to find
some of them are really tricky. And so I'll just check if there's something I really want to get,
like it would be great to know the memory bandwidth usage, this kind of information would be
interesting. So as I could add support for it and then ask for people to run a program.
Otherwise, people would have to run it several times. Yeah, I want to be a user friendly.
Or what's the name of the program? I can really remember. I think it's NV8 counter.
Okay. I'll get that from you. I'll put it in the show notes. So anyone interested?
Yeah. Actually, we have one repository with everything, every tool that we use to reverse engineer,
or we also add the dot, the, yeah, the documentation that we wrote, the register, register map,
there are loads of them. Yeah, and how to parse your video piers. Also, it's interesting to know
what's inside your card. Yeah, you can even get your piers, or even buyers. Oh, okay.
Yeah, sorry. The video buyers? Yeah, the video buyers. And you can even upload a fake one,
like without flashing the card. So, oh, yeah, it's a Captain Michael. Yeah, in the memory. Yeah,
if you upload the, the buyers before the end of your driver is loaded. Yeah. Well,
you basically have control of the card. If you want to, I don't know, upload the card without
having to, I'll say, use Nouveau. Yeah, you can just change your piers and buyers. Yeah,
you've been on with it. Good to know. Yeah, it's the kind of funny thing that we can do.
Okay.
See, where do you see things going? Yeah, tricky question.
I think, well, with all the, I am industries going on, I mean, it's
kind of exploding. We used to have only X86 processes, but now we get
many, many different ones because we want more autonomy from our embedded systems.
There is a market for ARM, and for the moment, Windows is working, kind of working on it,
but really? Windows on ARM? What? Windows mobile. Oh, yeah, I'm told you forgot about
Windows mobile. Yeah, that's fine. Yeah. Is it Windows? Sorry, I'm very sorry, but yeah.
But the drivers are not really available for it or, well, I mean, we used to have all the binary
things, binary programs shipped. But now, if they want to do that, they will have to,
well, have so many different, we have so many flavors of ARM, X86. So, I think
open source will become more and more mainstream. I mean, if people want to create a new processor,
they just need to change the Linux kernel and get everything. So, that's cool. In this sense,
I think the Linux kernel is going to continue rising and being broadly used. And so, for us,
Nouveau, I don't know. I mean, at least XOG will continue on every chipset.
Yeah, Wayland. Well, it was Nokia. They wanted to use it for MIGO.
Yeah, there is a market for that. So, I'm pretty sure people wouldn't use it,
especially since they don't have to code an operating system again.
Yeah, as for Nouveau, well, as long as Nvidia is doing some desktop cards, we'll be there, I think.
They are, it's getting trickier and trickier to get support for the cards because they, yeah,
they don't really, it used to be simple. Everything was in hardware. So, we basically just sent
some information and the cards started working by itself. Now, we have to write microcodes for
many, many things, almost everything. So, it's trickier, but as long as we have
a Nokia Reverser, or we can do it. Yeah. So, is it hard to get into Nouveau? Or, yeah.
Well, it depends. There are some tasks that anyone can do, especially document documentation,
but yeah, I mean, if you want to do it. No one wants to do it. Yeah, no one wants to do it. Actually,
that's not good, but yeah. Well, there is some simple work that we don't do because we
keep it for you guys. Yeah. We have some more important issues, I think. We need to do.
I've been only working on Nouveau for a year now, but yeah, I kind of understand what needs to be done,
and what I want to do with newcomers is to be there, mentor. So, as they can ask me,
stupid question, and not bother the really good guys. Yeah. So, so you're volunteering to be a
mentor for anyone who wants to get into, who's curious about Nouveau or wants to get into? Yeah.
As long as they want to stay, because I get a lot of people coming and just try to be interested
for three days, and then after three days, I just don't hear from them anymore. That does kind of,
I'm curious what that, I know it's common, I'm curious how much, because you'll get people who
will be interested, and you'll hear from them, and as soon as they learn that they're not going
to be able to make massive changes in 20 minutes. I think 95% of the people I get in touch with
don't continue. Yeah. Now, this isn't, this is not the scare away people. Yeah, it's not
that I scare them. I think they just like, or they're not aware of that they really need to be,
what's the word, independent. I mean, you have to think by yourself, don't think that we can tell
you everything. I mean, you have to think by yourself, try out an error is the way you learn,
expect it frustrated, it's not, oh yeah, it's easy, it's not easy at all. But it's really good
when you have some code working, or even when you see someone, a friend of yours that is using
your code without even knowing it. I mean, yeah, it's great. So what happened there, you have a
friend of yours who was using your code? Yeah, yeah, I had an intern in the same research lab I'm
working at the moment. And yeah, it's using new, we didn't know that. And just by watching the
kernel logs, I could say, oh, those lines, yeah, it's me. Yeah, I wrote that. And yeah, I know what's
wrong with your hardware. And I'm working on it. That's cool. So did you have a problem you were able
to help him with? It didn't know we had a problem, but we had it. But yeah, and actually,
now I'm in contact with the art community and the developers of art, because yeah, I can help them
make art and it's a better distribution. And this is great. I mean, it just install things and
it works. Yeah, that's yeah, what everyone wants. Here, I've heard quite a few people here talking about
Arch Linux distro. So yeah, maybe you should try it. I actually run it on my desktop at work. Oh,
yeah, I think I did a bad install though, because I hate it. I hate Pac-Man, I hate you art, but I
think I just have a bad setup. Maybe I just need to wipe it. It's too simple, I think maybe.
I had to give it a fresh look. Try to good. Yeah, so, okay, so definitely people can help
if they're interested. What is the Nuvo IRC channel or mailing list? Where's that at?
3.0.net? Yeah, 3.0.3.0. And the channel is just Nuvo. Nuvo, you know, N-O-U-V-E-A-U.
It's actually new in French. It was named after a spelling mistake that was corrected by the
program. Auto correct. Yeah, auto correct. So, yeah, the Stefan Martius, the guy who
started Nuvo, he actually wrote N-V and the auto correct changed it to Nuvo. But yeah,
it has been kept because it's funny. Yeah. Well, it's the new N-V driver. So, yeah,
what was there? There was something in some slide that was Nuvo underscore Vue. Vue. Yeah, it means
Nuvo. It's the Nuvo driver, the Nuvo 3D driver for old cars. So, Nuvo. So, that was
you didn't speak French for laughing, but as soon as someone French for some tolls,
yeah. So, yeah. First time I saw that, I said, no way. It was already confusing.
Cool. So, all right, well, is there anything else you'd like to tell people who are listening to this?
Well, get passionate about something. No much of what. Do it with your heart.
And if it is a system related, I hope it is about Linux or a BSD distribution,
something open source. So, as you can learn and, I would say, make the nation of your learning and
work to everyone to get back to the community. Because, yeah, it's cool. It is cool. And you get
to meet some really cool people. Oh, yeah. Also, as you go to conferences, that are really,
really cool. I mean, my friends are not into computer science at all. So, every time I speak about,
well, Linux are only in real life, I only talk to three or four people. And the rest of them
would be on IOC or mailing lists. And so, to be able to meet you guys, it's like, wow,
that's great. It is cool. Yeah. I was raised into a small village. And, yeah, no one's
interested in computer science there. Same. Same. Yeah. I do have to. I got a plug
Xorg here if they wouldn't say. So, we're in Chicago right now, right? And there's probably, I don't know,
3040 Xorg developers here right now, I think. 36. Oh, you counted. No, I didn't count it, but it
was in the, I didn't easily. Oh, okay. All right. So, yeah, that's 36. It's a cool group of people.
I mean, you think X is these, I don't know what people think about X, but you think it's an
insurmountable project that getting to learn is impossible. The people who develop it are probably
just crack pots, you know, and just, yeah, no free time, don't need fun, yada, yada, yada. But
that's true. It's impossible to learn everything. Well, but it's not, it's not the problem. I mean,
you depend on other people. Yeah, that's, that's not bad. It's good. It is good. And the people
you depend on, on Xorg project, they're really cool people. Oh, yeah. Everyone here is just,
they're really fun. Yeah, they're a good bunch and they're very smart. Yeah, very, very smart.
That's true. So, it's, it's like a lot of the other open-source communities. Xorg community
is they're good group of people, they're fun, you know, they're smart, they're, it's just,
it's a fun group. Yeah, we need more people in the group. Yeah, and they're passionate. Yes,
even though they always, they're always speaking on project and say, it sucks. Yeah, but it's,
it's the night. Yeah, it's the right way. I mean, you need to just say it sucks and then you start
working on it. Yeah. This is the right way to do it. It is. It's just, yeah, flaming isn't,
doing anything. No, it's, it's not productive. Yeah, it's just grumble, flaming. It's like,
all the sucks, but you'll fix it. Yeah, this is open. Yep, that's how it works. Yeah,
very cool. Well, thank you, Martin. It's, uh, going on 27 minutes, I think. I don't,
I don't even, I don't even know if things count them down. Sorry, anyway, okay. Thank you very
much for your time. You're welcome. Thanks for listening to me. No, you bet. You bet. I hope to see
you again online and next year it's a conference in Germany or Ireland or wherever you'd be. Yeah.
So in Europe. Yeah, I hope so. Hopefully we'll see some people listening to this podcast. Yeah,
that would be cool. I mean, last time I went to the XDS, it was XDS last year. Uh, well, I just
had been working on Nuvo for, uh, well, actually a week. There is. You're only going on the week
last year? Well, I just had a couple of months. Yeah, but I was working on PSNV, not Nuvo. Okay.
So, yeah, PSNVs and, uh, and mix old projects. Okay. But it was related. There I go. Yep.
Okay. So I hope that you can come and make it to the first them. If you're a European,
uh, guy, just come to the first them and come see us, but yeah, see by yourself how cool this
project is. Yeah, you're right. And, uh, we shouldn't tell them, but, uh, at Toulouse last year,
we all, there's like a group of us that went to a bar and let's just say a good time was
had by all. So, yep. Yeah. Wait, they went to food, but they were like, uh, cool. So we might
have some French listeners. If you want to say anything, motivating to any of them, feel free.
Uh, well, the same, same thing. Yeah, attempting five of them. Yeah. National key doesn't matter.
Just motivation and, uh, passion. All right. My second app. Cool. All right. There we go.
You have been listening to Hacker Public Radio at Hacker Public Radio. Those are
we are a community podcast network that releases shows every week day on their free Friday.
Today's show, like all our shows, was contributed by an HPR listener like yourself.
If you ever consider recording a podcast, then visit our website to find out how easy it really is.
Hacker Public Radio was founded by the Digital.Pound and New Phenomenical and Computer Cloud.
HPR is funded by the binary revolution at binref.com. All binref projects are crowd-responsive
by lunar pages. From shared hosting to custom private clouds, go to lunarpages.com for all your
hosting needs. Unless otherwise stasis, today's show is released under a creative commons,
attribution, share alike, details or license.
