 Okay. Hi, everyone. Thanks for coming. So we are the people from Nouveau who are actually at FOSDEM today. So there's Carol Herp, the new hire from Red Hat, working full-time on Nouveau. Then there's Pierre Moro, who is also working on Nouveau, but from the community aspect. I mean, as a community member, it doesn't get paid for it, but it's something that he's been doing also related to his PhD in graphics, ish. And I'm Martin Perez. I'm an Intel developer, but I also am allowed to work on my spare time on Nouveau. So this work has nothing to do with Intel. So this is the legal disclaimer. I'm safe now. Okay. And I'm going to hand over the mic to Carol. So, yeah, short summary about what we want to talk about. First, I will give a short summary introduction about Nouveau. Then I will head on to talk about Pascal support and what we were working on regarding power management. Pierre wants to talk about users-based stuff like graphics and compute and so on. And then Martin wants to finish up with community stuff and the conclusion we have about things. Yeah, so Nouveau is like the open-source driver for NVIDIA GPUs on Linux. And because it's usually used as a default driver for NVIDIA GPUs, we want to provide a good out-of-box experience for the end-user using their machines. And what we actually also want to have is that users are able to use it for games and also compute workloads, which sometimes works and for some games it doesn't work out so well. We want to work on this. So we support most of the NVIDIA GPUs since all of those since 1998. We have 2D and 3D acceleration working on GPUs since 2003. And non-officially we support up to OpenGL 4.5. There are some trademark issues so we aren't able to expose this yet. And there's also like the work, somebody worked on DirectX9 support through Wine. So it's also nice. And we are able to do accelerated video decoding on GPUs between 2004 and 2013. So talking about Pascal now, it's like the current generation of desktop GPUs which were released 2 years ago. And it's so far the most locked down NVIDIA GPUs. So we really can't do much on those because you need sign from a sign stuff or lots of stuff. So what we currently support thing is mode setting which you kind of need for display stuff and all the basic graphics to get something on the screen. So this is nice that this works. We also have 2D and 3D acceleration. But we kind of had to wait for one year or more for this because we need signed firmware to really do it in efficient enough way so users can actually use this. And we are also able to read out like the temperature on those GPUs. Just one thing. The reason why we have to wait is because they are signed PMOS so only NVIDIA can put them out. So that is why. Yeah. Otherwise on GPUs before that we wrote the firmware ourselves and we can just use our firmware but not on Pascal and also not on Maxwell. But those issues now are more likely now. They are more related to Pascal in general. We can't change the fan speeds. We can't reclock the GPUs. We can't change the video bias which we need to figure out what the bits and the video bias are there for. So we basically just switch something and see what difference it makes for the NVIDIA driver so we can't do this. And we are also not able to read out the current power consumption which we need for power capping stuff like this. So adding on to power management. Ludpaul from where it was working on clock gating which is kind of a feature to turn off certain parts of the GPU to reduce the power consumption which is a nice thing for laptops which is also a little bit important for performance because you can have higher clocks and more performance this way. We hope to get it landed for Kepler in a few weeks or days. Martin was working on fan management stuff over the last years. Kind of like obviously we needed to have higher fan speeds on temperature. It supported pretty well on most GPUs and there were those kind of rare GPUs where there's a weird fan calibration we have to do and since now we don't really were able to figure it out Martin did some good work on this but he says it makes no sense. But it's important because there are some users with really loud fans and it's super annoying. And we hope that NVIDIA is about to release some documentation on this so maybe we get with a working solution for this soon. Ben, Roy and I were working on the clocking stuff. We supported for Tesla and Kepler GPUs pretty well and there's some ongoing work on Fermi which I hope will be visible to users this year. There was some pretty good stuff done this year so it's nice. I was also working on thermal throttling which is kind of needed like if we come to a good performance on GPUs it might be that the GPU is getting pretty hot so it's nice to be able to reduce the clocks in those cases and for on-demand clocking we also need to figure out on the GPU how much of the GPUs you use and what loads there are so I was also working on this. Power monitoring is important in case you have like your self-built system or whatever and you really have to be aware of the power consumption of the GPU so what we have to do is we have to figure out what it's like the official power consumption on the GPU and we have to be like kept us that we don't go above this so I was also working on this. So now I'll be talking about user space and mainly the graphics part and OpenCL as well what's been happening in the past year or so. So I'm not going to talk about Tesla because Tesla hardware was released in 2007-2009 and is only capable of OpenGL 3.3 so there has been no progress to higher version of OpenGL because of that but on the other hand, Fermi hardware and more recent hardware they can handle higher versions of OpenGL and OpenGL 4.1, 4.3 and 4.5 have been landing in the past years. However, since OpenGL 4.4 to advertise their support you need to pass the conformance test use from Kronos and you need to submit results from that conformance in order to advertise 4.4 and that hasn't been done for Nouveau so we don't advertise 4.4 and 4.5 so by default you will get OpenGL 4.3. Just on this topic there's been a collaboration between Kronos and Exor foundation so as open source drivers could submit conformance tests or results without paying because usually you would be paying thousands of dollars which we do not have as well we're just open source developers so this is a good shout out to Kronos because that's very appreciated and that's it. And conformance test use is also now open source so we can run it. So most of it at least should be open source. Regarding Vulkan so Carol has been working on the NERD2 NVIRA transition pass which so Intel has been working on SPERV to NERD so if we can get NERD2 NVIRA which is the intermediate representation we use in Nouveau then we'll be able to invest SPERV which is needed for Vulkan support and also for OpenGL 4.6 before you could use SPERV through an extension but in 4.6 it's a core feature so we need that support and hopefully there might be some basic Vulkan driver this year there is some work that needs to be done in the kernel part and then it's implementing the API. So now on to computers we're going to talk a bit more about SPERV so as I said SPERV is being used in Vulkan and OpenGL but it's also now used in OpenCL so before in OpenCL 1.2 and 2.0 you have to use an extension to use it but in 2.1 it's now a core feature so I've been working on adding SPERV support to Clover which is the OpenCL implementation in MESA so if currently there is only one driver with which you can use Clover which is the Radian driver possibly Radian SI as well which is currently using the LLVM Intermediate representation for representing the kernels but I've been switching it to SPERV so that makes interesting SPERV directly also easier so if you want to test that out there are two versions to the mailing list already and there is a third version that's been working on you will need those softwares on the slide and I'll put a more detailed explanation on how to do things and add the link to the event webpage so you can more easily get that working on your computer if you want to try it out but I've also been working on OpenCL support for Nuvo through SPERV as well so instead of going from SPERV to NER and then to NVIR I've been working on translating SPERV directly to NVIR so what's the current status for that so most arithmetic relation bits operations are supported as well as atomics and conversions operations you can call functions and you can use basic control flow like if, else, statements and loops ImageReport is a work in progress it's not there yet but getting there there's some more memory operations that need to be implemented and what's still missing it's mainly group operations and a lot of OpenCL specific operations even though Carol already implemented a few of them so OpenCL also has conformance testutes which is open source so currently I've been running the test basic which test basic operations you can do in OpenCL try to have a broad of a view of what's possible and you have 36 out of 95 tests that passes but 27 of the failing ones are image related so once the image supports lands the passing rate should get improved by quite a bit and if you want to try that out it's about the same prerequisite as for the pervy stuff in Clover with difference on the branch which isn't pushed out yet but I'll do that soon and regarding hardware status Tesla needs some more love on the memory management but otherwise other families should work Maxwell and Pascal might need a little bit more tweaking but basic stuff should work there and now I'll let Martin talk about the community okay I'm surprised that we are really on the time that we are expecting surprising so yeah, well I'm going to talk about the current members and the history that we've had with NVIDIA which is very interesting so right now we have three Red Hat developers working on Nouveau it's a huge improvement we used to have only Benskegs working on it for I don't know the past 10 years and then Liudpol got hired I think it was last year he's been working not full-time on Nouveau but he's been helping quite oh yeah she, sorry and yeah there's been well good work there and then Carol has been hired this year last year oh yes you're right darn it it's 2018 now okay last year a couple of months ago yeah so now he's working full-time on reclocking, MESA or computer related stuff it's not super clear it's generally working on what is needed to be worked on which is good it's exactly what we need but we also have community members so not everyone is listed but that's the main ones so RISCid, I'm not sure how to pronounce this it's Australian so he's been working on the tooling so IGT or ShaderDB so that's pretty good hopefully Nouveau is going to get yeah IGT working quite well on it and he's been also working on thermal management he really wants to get he has a laptop with a Pascal GPU and he would like to get it to work as well as possible then Ilia American is a top star MESA developer he's been working on the hardest features for OpenGL and he's really doing an excellent job unfortunately we had Samuel Pitoise last year or two years ago working and doing a lot of development for Nouveau but he got hired by Valve and he's not working mostly on Radeon but he's still here for reviews and things like this so it's still nice to have him so there's Pierre Moro me, I'm doing mostly fan management and power management that's what I've been doing for the past eight years but fan management is the only thing that actually works the rest is well not even for everyone but yeah so I mean that's unfortunate but this is what fan management and power management is how many ways do you need to dig a hole well apparently for fan management about ten ways in ten years that would be good Roy Split is also working on DVFS or reclocking related stuff and compile optimizations so yeah Roy started at the same time as me so in 2010 still working on it and well maybe you someone in the room would be interested in the stream to join us but I'm going to talk a bit later about this so now on to the relationship we have with NVIDIA so in 2013 we had the first real contact really for Nouveau the first real real contact was when they said that they would not hand the rest but not help us but in 2013 which is already good in 2013 they brought some documentation with them at XDC and yeah it was NDA free so we could just use it any way we want and we got an email contact with email questions and it's been working it's not fast but it's been working so that is nice and they are willing to improve the out-of-the-box experience on Nouveau which is the same objective that we have in 2015 they had a new NVIDIA developer who got hired just to work on Nouveau or most of it, most of his time and he had his support for the Tegra K1 X1 and X2 in Nouveau which is really nice because it even led to a product that was based on Nouveau that I don't think a lot of people know and that is very interesting because we would not have thought about this but good and he also wrote the Secure Boot for Maxwell which is all this Firmware signed Firmware procedure how to upload it and how to get everything ready it's black magic of course and it's highly un-debuggable for the right information so that was very valuable unfortunately he left last year the company and since then the contributions have been way lower I mean it's to be expected as the organization reorganizes to provide the same output but apparently 2018 is a new hope because we started by getting a new documentation done for the VBIOS table and I'm going to talk about this a bit after yeah so this is going to be very useful and I also asked them for help on the weird fan management issue because I just couldn't figure it out it really is nuts okay so about almost the last slide Maxwell two GPUs are Pascal are the most locked GPUs that you can think of probably you can't do anything without a Firmware so accelerated graphics it takes us about about a year to get so when you've got a release of a certain GPU it's going to take about a year for us to get the Firmware ready and that's consistent throughout the last three years so hopefully it's going to improve then the fan management well really we can't do anything unless the Firmware is provided there's multiple engines and one of them is really crucial for power management and this crucial Firmware we do not have except for a couple of platforms, the Tegra ones so we are pretty much stuck for fan management reclocking, power reading and then the last one is really important the VBIOS reverse engineering we cannot do if the way we've been doing reverse engineering of these VBIOS is by as Carol said we just change bits in 64 kilobyte binary we just look at what output we get and so that's what we've been doing since forever to reverse engineer what the BIOS was about and well we can't do that anymore starting from Maxwell too so how do we add support? so luckily they don't change a lot of things so you can start guessing things you can look at numbers like this 3000 here looks like the clock it could be a clock but then we can't verify what is going to be the limits and if it really is that and nothing else so that's why we really need documentation from NVIDIA now on the BIOS like full documentation of the BIOS it's not going to be perfect because of course documentation is never but at least we will have a better clue of what is going on but related to the BIOS documentation they release the website that allows you to sign your Firmware and apparently even some NVIDIA developers didn't even know about it and we heard about it last week so there's something going on it looks like in July 2017 so it's not new it's not new okay so what Arthur said that six months ago the website got introduced and it doesn't know what it is about I think it's mostly used by overclockers and stuff like this just changing the video bias to get higher clocks and so on so I think that's the main reason yeah so for us it still is going to be a pain because we used to test I mean I have scripts that automatically change numbers and then update I mean and reload the BIOS and then reload the driver and start X again and get some values and then go down and I do this like every four seconds for weeks at a time so if I need to ask the system to sign stuff all the time there's no way it's going to work but anyway, no way is improving it's still the default driver on all distributions the GL driver is in pretty good shape with OpenGL 4.4 and 4.5 coming as soon as we can get the CTS failures down to zero performance need to improve for 4K displays and it's unfortunate without reclocking it's not going to be possible so we have a lot of work there but the power efficiency for laptop users is going to improve thanks to the reclock gating patches that I reviewed last week so hopefully they're going to land and yeah so please join the fun because we are an interesting team distributed everywhere there's a lot of challenges in basically every aspect and if you're a student then you could join us through the Google server of code for the Xorg foundation and less vacation of code and yeah we'll make sure that we have products for projects for you see the corporate guy here now then that is it any question I want to tell a little bit about the g-talk stuff I took some time and I just I think throw out like 10 project ideas on the website so if somebody is interested look there there are lots of ideas so we are quite sure it is it is possible to extract a firmware from the binary driver but I think the people who was looking into this was like yeah I don't like no idea where it is and it's like stored in a way it's not fun to extract so there are ways but and even if we do extract it in a hacky way we can't redistribute it so that's a problem we cannot redistribute the binary so what are you saying is that we could have a script that extracts it from the proprietary driver and then deploys it on your yeah exactly so we actually have this for video decoding and unfortunately it's not easy to generalize it for these PMOS they are not stored in the same way and obviously they've been trying to hide it it may even be not signed encrypted but the key somewhere else the thing is it's obfuscated that's for sure any other question ask us later yeah you can come to us and we'll stay outside so you can answer your question