0:14 → 0:22
ModeratorWelcome. Niklas tells us about graphics support with Wayland, what has happened there lately,
0:22 → 0:28
Moderatorwhich, if I have understood correctly, is quite a lot. Thank you, welcome.
0:30 → 0:42
NiklasYes, welcome to my talk "Are We Wayland Yet: Nvidia Edition".
0:43 → 0:46
NiklasI'm actually surprised how many people showed up for it.
0:46 → 0:51
NiklasMentally, I just imagine that half of them are the people with a lot of schadenfreude
0:51 → 0:56
Niklasand the other people are the masochistic NVIDIA users.
0:58 → 0:58
NiklasGood.
1:00 → 1:04
NiklasSo, a short warning for the structure of the lecture.
1:04 → 1:06
NiklasOne half are slides, which are completely harmless.
1:07 → 1:12
NiklasBut I also show a few videos that can contain glitches or out-of-order frame problems, among other things.
1:13 → 1:15
NiklasCan be perceived as flickering.
1:15 → 1:19
NiklasI would say not relevant for epileptics, but I can't assess that.
1:19 → 1:24
NiklasThat's why I'll let you know when these clips are shown and also let you know when they're over.
1:24 → 1:30
NiklasAnd the other shots I show of various Wayland configurations and drivers,
1:30 → 1:37
Niklascontain gameplay footage of Witcher 3 on the one hand and excerpts from game trailers of Cyberpunk 2077 on the other.
1:38 → 1:44
NiklasBut neither of them contains any scenes of violence or **** or anything else relevant to the protection of minors.
1:44 → 1:49
NiklasThat means you don't have to, in my opinion, not hold your eyes when these parts appear in the video.
1:51 → 1:52
NiklasFirst of all, briefly about me.
1:52 → 1:55
NiklasMy name is Niklas, I'm a tech lead at Alugha.
1:55 → 1:58
NiklasThis is a video hosting and translation platform from Mannheim.
1:58 → 2:00
NiklasI just finished my Master of Science two years ago
2:00 → 2:02
Niklasat the University of Heidelberg.
2:03 → 2:09
NiklasIn my spare time, I administer the Mastodon instance rheinneckar.social and the Mobilizon instance rheinneckar.events.
2:09 → 2:13
NiklasYou can also find me there on rheinneckar.social as @niklaskorz@rheinneckar.social.
2:14 → 2:20
NiklasAnd I also have a website with a blog that has very little activity, but every now and then something actually comes.
2:20 → 2:24
NiklasOn the one hand, niklaskorz.de in German, and on the other hand, korz.dev (with a "v") in English.
2:25 → 2:28
NiklasAnd if you are interested in Rust and NixOS and come from this area,
2:28 → 2:34
Niklaswe organize the Nix Your Bugs & Rust Your Engines Meetup every two to three months in Heidelberg and Mannheim.
2:35 → 2:37
NiklasYou are welcome to drop by.
2:37 → 2:40
NiklasWe are also happy to accept suggestions for talks there.
2:40 → 2:43
NiklasWhat is relevant for this talk?
2:43 → 2:49
NiklasI'm not a developer of a Wayland compositor, and I'm not a developer of a graphics driver.
2:49 → 2:52
NiklasSo I don't work on Mesa, nor do I work for NVIDIA.
2:55 → 2:56
NiklasFortunately, good.
2:56 → 3:02
NiklasAnd I know that cat videos here are very, eh cat videos too, but I only show pictures, cat pictures are very welcome.
3:02 → 3:06
NiklasSo briefly my two black cats, Tommy and Loki.
3:07 → 3:13
NiklasThey helped to ensure that I didn't go crazy during all these tests for NVIDIA drivers and Wayland.
3:14 → 3:20
NiklasSo, now we have already seen at the beginning, the title of the lecture is "Are We Wayland Yet: Nvidia Edition".
3:20 → 3:25
NiklasSome of you may already be able to guess what kind of website this is an allusion to.
3:26 → 3:29
NiklasNamely, the website arewewaylandyet.com.
3:29 → 3:38
NiklasThis lists various applications and features that people consider important or necessary for them to switch from X11 to Wayland.
3:38 → 3:48
NiklasThere are things like screen sharing, nightlight, even HDR, even if HDR was not yet green at the last update date, namely 2022.
3:48 → 3:55
NiklasBut the crucial thing about this website is, even though almost everything on this website is green, one thing is much greener.
3:56 → 3:56
NiklasThe last section.
3:57 → 3:59
NiklasBut you did not mention NVIDIA.
4:00 → 4:11
NiklasThe reason why this ends with this sarcastic anecdote is that NVIDIA is already pretty well known for how poorly Wayland works under their drivers.
4:12 → 4:21
NiklasIn part, because they have refused to support certain protocols that have been widely implemented and supported in the Wayland community.
4:22 → 4:25
NiklasBut also on the other hand, because the development of Wayland has focused on
4:26 → 4:40
Niklasthat you are more likely to approach the open driver, Mesa, i.e. the various graphics drivers of the open Mesa project, because you can change the source code of the graphics drivers at the same time as you design and implement the Wayland protocols.
4:41 → 4:45
NiklasIt's not quite as bad as it was two or three years ago.
4:45 → 4:47
NiklasThat's also the reason why I'm giving this talk now.
4:47 → 4:48
NiklasA lot has happened.
4:50 → 4:55
NiklasBut let's start with the question, why would I want to use Wayland in the first place?
4:56 → 4:59
NiklasSo it may be that I, as an NVIDIA user, am very happy under X11.
5:00 → 5:07
NiklasIt is sometimes even the case that X11 has worked much better under NVIDIA graphics cards than under AMD graphics cards over the last 20 years.
5:08 → 5:13
NiklasBut it can also be the other way around, I am a happy Wayland user or I recognize the advantages of Wayland.
5:13 → 5:15
NiklasI can simply change the graphics card manufacturer.
5:15 → 5:20
NiklasWhy should I throw money down NVIDIA's throat if they don't want to support the whole thing?
5:20 → 5:22
NiklasIt can be much easier. I don't have to do that to myself.
5:23 → 5:24
NiklasLet's start with the first point.
5:26 → 5:34
NiklasPersonally, Wayland has an advantage that stands out for me and was also the reason why I keep trying to use my NVIDIA graphics card with Wayland.
5:35 → 5:40
NiklasWith Wayland, we can set a different scaling rate depending on the monitor.
5:40 → 5:49
NiklasSo in my case, that means I have a 27-inch screen with 4K resolution and my secondary monitor is a 24-inch screen with Full HD resolution.
5:49 → 5:56
NiklasAnd I want a 150 percent, i.e. one and a half times the text and
5:56 → 6:05
NiklasApply element scaling and no upscaling at all on the secondary monitor, so just normal, simple scaling of the text and element contents.
6:06 → 6:11
NiklasUnder X11 I can change the text size or the DPI size.
6:11 → 6:19
NiklasIn my experience, it worked particularly well under X11 that I can control 150 percent scaling via the DPI value.
6:19 → 6:24
NiklasBut there I have the problem again that my secondary monitor is also scaled up 150 percent.
6:26 → 6:33
NiklasThis can be avoided if, for example, you somehow have the secondary monitor rendered to one and a half times the resolution and then scale down again via xrandr.
6:33 → 6:43
NiklasBut it's quite a waste of computing power and B, it's not as sharp as if we can render it directly in simple scaling and then have a different scaling rate per monitor.
6:43 → 6:48
NiklasNow I've already said that I want to work with one and a half times the scaling on my 4K monitor.
6:48 → 6:55
NiklasFor many window managers and compositor developers, this is a bit of a nightmare, who say, this is not integer scaling, it can't be sharp at all.
6:56 → 6:58
NiklasYou don't want to use fractional scaling at all.
6:58 → 7:02
NiklasThat always bothers me a bit.
7:02 → 7:04
NiklasI then try to look past it.
7:04 → 7:08
NiklasBut at some point Wayland realized that it doesn't have to be that way.
7:08 → 7:12
NiklasAnd Wayland now also supports fractional scaling at the protocol level.
7:12 → 7:21
NiklasSo a) we can say in all window managers, or say compositors, including KDE, GNOME and Sway, that we want one and a half times the scaling.
7:21 → 7:23
NiklasWe can do this per monitor.
7:23 → 7:26
NiklasAnd recently, this is even being passed on to the individual developers.
7:26 → 7:28
Niklasto the individual applications.
7:28 → 7:37
NiklasThat is, not like before, somehow the application is first rendered 200% upscaled and then scaled down, as I did with my secondary monitor,
7:37 → 7:40
Niklasbut they can use this scaling directly.
7:40 → 7:47
NiklasIn addition, you can't avoid Wayland if you want to use such newfangled display techniques as High Dynamic Range.
7:47 → 7:52
NiklasSo these are screens with a wide dynamic range that can get very bright.
7:52 → 7:54
NiklasThere are no plans
7:54 → 7:56
Niklasunless you volunteer to implement the whole thing yourself,
7:56 → 7:58
Niklasmaybe to bring that into X11 somehow.
7:58 → 8:03
NiklasYou'll need to switch to Wayland if you want HDR output on an HDR screen.
8:03 → 8:10
NiklasAnd last but not least, why Wayland was designed in the first place was the safety aspect.
8:10 → 8:16
NiklasUnder X11 it is like this, as an application you can first intercept all keyboard inputs globally.
8:16 → 8:19
NiklasThis is useful if you want to define global hotkeys.
8:19 → 8:22
NiklasIt's all the more useful if you want to develop a keylogger.
8:22 → 8:25
NiklasThe other thing is, you can record the whole screen under X11 as an application.
8:25 → 8:29
NiklasThat's great if you're an OBS studio.
8:29 → 8:33
NiklasAgain, it's all the better if you're malware.
8:33 → 8:37
NiklasUnder Wayland, the latter was solved by integrating Pipewire.
8:37 → 8:41
NiklasYou can request the application from the compositor or the desktop environment.
8:41 → 8:45
NiklasI want to record the whole screen or I want to record this window.
8:45 → 8:48
NiklasAnd then the user is asked, is the application allowed to do this at all?
8:48 → 8:50
NiklasAnd if so, which area is it allowed to include?
8:50 → 8:53
NiklasAnd then we covered the security aspect of it again.
8:53 → 8:56
NiklasGlobal hotkeys are still a bit of a problem.
8:56 → 8:59
NiklasThis is partly solved on a pro-compositor basis.
8:59 → 9:02
NiklasBut we are slowly moving in the right direction.
9:02 → 9:06
NiklasConversely, we have now decided, all these reasons are enough for us.
9:06 → 9:08
NiklasWe want to use Wayland.
9:08 → 9:10
NiklasBut why should I do that with NVIDIA at all?
9:10 → 9:13
NiklasThe most common reason, which was also the reason for me at first, is probably
9:13 → 9:15
Niklasyou already have this hardware.
9:15 → 9:19
NiklasSo you say, a) I don't have the money to buy a new graphics card.
9:19 → 9:22
NiklasOr b) I don't feel like even bothering with a hardware change.
9:23 → 9:25
NiklasAnd the software should be based on me.
9:25 → 9:27
NiklasAnd there is software that works.
9:27 → 9:29
NiklasX11.
9:29 → 9:33
NiklasOr if you want to go further and say you're married to NVIDIA,
9:33 → 9:35
Niklasthen I just switch to Windows and use WSL.
9:35 → 9:38
NiklasAnd the whole thing has been clarified.
9:38 → 9:40
NiklasBut I had a hardware upgrade last year.
9:40 → 9:44
NiklasThat means I would have had the opportunity to say, I'm going to AMD now.
9:44 → 9:47
NiklasI didn't do that. For the following reasons.
9:47 → 9:50
NiklasFirst of all, I come out with my graphic preference.
9:50 → 9:52
NiklasI like ray tracing. I think it looks good.
9:52 → 9:56
NiklasAnd under AMD it is just not nearly as performant as under NVIDIA graphics cards.
9:56 → 10:00
NiklasAlso related to the topic is energy efficiency.
10:00 → 10:04
NiklasUnfortunately, it is the case in the current GPU generation, i.e. AMD and NVIDIA,
10:04 → 10:07
Niklasthat NVIDIA graphics cards are much more energy efficient.
10:07 → 10:10
NiklasThis means that they have significantly higher computing power for the same power consumption.
10:10 → 10:15
NiklasOr vice versa, with the same computing power, a much lower power consumption than AMD GPUs.
10:15 → 10:19
NiklasAs far as I know, this is mainly due to the manufacturing process.
10:19 → 10:21
NiklasBecause NVIDIA has made it, now in the last generation
10:21 → 10:24
Niklasto the 5-nanometer manufacturing process.
10:24 → 10:26
NiklasAMD hasn't arrived there yet.
10:26 → 10:32
NiklasBut I hope that this can be settled in the next generation solely because of the will to compete.
10:32 → 10:38
NiklasIf you are dealing with machine learning or other large-scale parallelized calculations,
10:38 → 10:41
Niklasthen you couldn't avoid CUDA.
10:41 → 10:45
NiklasCUDA has become the de facto industry standard for GPU calculations,
10:45 → 10:50
Niklaseven though we have actually had real standards for years, namely OpenCL.
10:50 → 10:52
NiklasAnd most recently, Vulkan Compute.
10:52 → 10:56
NiklasBut which have the disadvantage that they wanted to find a generalized solution,
10:56 → 11:01
Niklaswhile CUDA and now AMD's ROCm offer a graphics card-specific solution,
11:01 → 11:05
Niklaswhich makes it possible to implement much better optimizations.
11:05 → 11:10
NiklasCUDA has spread throughout the industry because it has been represented for much longer.
11:10 → 11:13
NiklasROCm may still be there, Vulkan Compute may still be optimized.
11:13 → 11:18
NiklasBut for the current process, my experience is that with CUDA you can get the most computing power for
11:18 → 11:23
Niklasgets the least energy intake.
11:23 → 11:31
NiklasAnd last but not least, if you've ever dealt with TVs in 4K, 120Hz and HDR,
11:31 → 11:34
Niklaswhich is probably more of a niche and enthusiast topic,
11:34 → 11:40
Niklasthen you may have noticed that the current HDMI standard, namely HDMI 2.1,
11:40 → 11:46
Niklashas somehow become such a really closed crutch. Namely, the HDMI forum prohibits AMD,
11:46 → 11:51
NiklasHDMI 2.1 in their open AMD kernel drivers.
11:51 → 11:55
NiklasAnd since we have the closed drivers on the userland side for AMD,
11:55 → 12:00
Niklasbut only the open source drivers on the kernel side, that means for AMD users,
12:00 → 12:05
Niklasyou won't be able to use HDMI 2.1 on Linux anytime soon.
12:05 → 12:08
NiklasNvidia has solved the whole thing a bit differently.
12:08 → 12:12
NiklasNot only because they have proprietary drivers, that's of course a solution.
12:12 → 12:15
NiklasNo, they just have these specific things,
12:15 → 12:19
Niklaswhich they are not allowed to disclose because of contractual conditions or anything else,
12:19 → 12:21
Niklasmoved to the graphics card.
12:21 → 12:25
NiklasSince the Turing generation, i.e. the RTX 2000 graphics cards,
12:25 → 12:28
Niklasthere is a RISC-V processor in Nvidia GPUs,
12:28 → 12:33
Niklaswho is only responsible for removing all these sensitive things that were previously in the kernel driver,
12:33 → 12:35
Niklasinto the graphics card,
12:35 → 12:39
Niklasso that Nvidia can then integrate GPL code into the kernel without any problems,
12:39 → 12:41
Niklasthat addresses this RISC-V processor.
12:41 → 12:44
NiklasBut also not these details of the HDMI center,
12:44 → 12:48
Niklasmust make these details of the HDMI 2.1 protocol public.
12:48 → 12:50
NiklasA short addition to this.
12:50 → 12:53
NiklasIt is not relevant for you if you rely on DisplayPort.
12:53 → 12:57
NiklasDisplayPort is open. DisplayPort also supports 4K 120 Hz.
12:57 → 13:01
NiklasBut DisplayPort is unfortunately not installed in virtually any HDR 4K TV.
13:01 → 13:03
NiklasHere we are again.
13:03 → 13:05
NiklasSo.
13:05 → 13:09
NiklasNow let's see what works and what doesn't work.
13:09 → 13:13
NiklasOn the one hand, in everyday desktop use and depending on the compositor.
13:13 → 13:15
NiklasOn the other hand, in the gaming sector.
13:15 → 13:17
NiklasWe've already mentioned that gaming is a big deal,
13:17 → 13:19
Niklaswhy people might choose Nvidia.
13:19 → 13:22
NiklasBe it because of ray tracing or because of energy efficiency,
13:22 → 13:25
Niklasif we have a GPU that is permanently busy.
13:25 → 13:29
NiklasAnd then let's take a quick look at the open drivers,
13:29 → 13:32
Niklasnamely the Nouveau driver, which is integrated into the Mesa project
13:32 → 13:35
Niklasand is also integrated into the Linux kernel.
13:35 → 13:39
NiklasFirst of all, we have the question we are facing,
13:39 → 13:41
Niklashow does the image get on the screen at all,
13:41 → 13:42
NiklasTo understand, what does that do?
13:42 → 13:44
NiklasTo understand what a compositor does
13:44 → 13:48
Niklasand what the problems could be with regard to Nvidia drivers.
13:48 → 13:52
NiklasAs a single application, we get from the compositor buffer,
13:52 → 13:54
Niklasone or more, where we draw our things,
13:54 → 13:57
Niklasbe it a game, be it our graphical application, etc.
13:57 → 14:00
NiklasThen we have to coordinate with the compositor somehow,
14:00 → 14:05
Niklasbecause the compositor wants to integrate the image of the application into the final image.
14:05 → 14:08
NiklasAnd for that we have to grab the buffer data everywhere,
14:08 → 14:12
Niklasto the big picture, and then bring that big picture back to the screen.
14:12 → 14:16
NiklasAnd before this is then brought to the screen by the driver or the graphics card,
14:16 → 14:18
Niklaswe still have such an intermediate step.
14:18 → 14:23
NiklasThe graphics driver or a color profile can be applied to the graphics card.
14:23 → 14:26
NiklasFor example, on the driver or user side, it can be said,
14:26 → 14:30
NiklasI would like to change this color curve so and so to have fewer shades of blue etc.
14:30 → 14:34
NiklasAnd then we finally have an image on our screen.
14:34 → 14:40
NiklasThe first part, i.e. create this buffer and assign it to the applications,
14:40 → 14:42
Niklasso that we then have a memory area on the GPU,
14:42 → 14:47
Niklaswhere we can draw in, sometimes has or is now always the case,
14:47 → 14:52
Niklashas adopted the Generic Buffer Management API, or GBM for short.
14:52 → 14:57
NiklasIn the Mesa project, this is the API that gives us access to the interfaces of the graphics card,
14:57 → 15:01
Niklasto allocate memory areas, release, allocate etc.
15:01 → 15:06
NiklasTheoretically, this is very specific to the hardware at the kernel level,
15:06 → 15:10
Niklasbut Mesa offers a generalized interface in the form of GBM,
15:10 → 15:14
Niklasso that we only need to interact with one API as a Wayland compositor
15:14 → 15:17
Niklasand don't have to do something different for each graphics driver.
15:17 → 15:21
NiklasThis has been supported for a long time, as it is part of the Mesa project
15:21 → 15:24
Niklasand almost all Linux drivers are part of the Mesa project,
15:24 → 15:27
Niklasexcept in the proprietary Nvidia driver.
15:27 → 15:31
NiklasHe refused to implement Generic Buffer Management at first
15:31 → 15:34
Niklasand instead, in 2015, they presented their own approach,
15:34 → 15:38
NiklasEGL streams, which is an extension of the EGL graphics standard,
15:38 → 15:41
Niklasand in contrast to GBM, it has the advantage of
15:41 → 15:46
Niklasthat it already takes buffer management plus synchronization into account,
15:46 → 15:50
Niklasbecause, as I said, we have to coordinate with the compositor somehow.
15:50 → 15:52
NiklasThat's one thing that GBM doesn't do.
15:52 → 15:54
NiklasBut the community said, we already have GBM,
15:54 → 15:57
Niklasand this has been the case for, I think, six years at that time.
15:57 → 15:59
NiklasThat means we have wide hardware support
15:59 → 16:02
Niklason many different versions of our graphics driver
16:02 → 16:06
Niklasand we know GBM works everywhere production-proven,
16:06 → 16:07
Niklasexcept on Nvidia's website.
16:08 → 16:10
NiklasBecause you just don't want to implement it.
16:10 → 16:15
NiklasNevertheless, EGL streams has found support in KDE and Xwayland for a short time,
16:15 → 16:16
Niklasalso in GNOME.
16:16 → 16:19
NiklasIn the meantime, however, it has been removed from Xwayland again,
16:19 → 16:23
Niklasbecause fortunately, Nvidia has been supporting since October 2021
16:23 → 16:26
Niklasalso finally GBM, after they realized
16:26 → 16:28
Niklasthat the community is not ready to
16:28 → 16:32
Niklasmaintain this isolated solution only for Nvidia.
16:32 → 16:36
NiklasWe've already said that synchronization is part of EGL streams,
16:36 → 16:37
Niklasbut not from GBM.
16:37 → 16:41
NiklasWhat did this synchronization do before?
16:41 → 16:44
NiklasOn the Mesa side, that was Implicit Sync.
16:44 → 16:46
NiklasI won't go into the details now,
16:46 → 16:48
Niklashow Implicit Sync and Explicit Sync work.
16:48 → 16:52
NiklasAs already mentioned, I am not a graphics driver developer myself.
16:52 → 16:56
NiklasBut before that, we had the situation that Implicit Sync was responsible for
16:56 → 16:59
Niklasthis rendering between applications, filling the buffers
16:59 → 17:02
Niklasand then take over the forwarding to the compositor,
17:02 → 17:04
Niklaswas not supported by Nvidia.
17:04 → 17:05
NiklasOne of Nvidia's reasons was to
17:05 → 17:06
NiklasThat's why they also supported,
17:06 → 17:09
NiklasEGL streams, among others,
17:09 → 17:13
Niklasthat it wouldn't fit their driver architecture.
17:13 → 17:14
NiklasOf course, we can't rate it.
17:14 → 17:16
NiklasWe have no insight into Nvidia's drivers.
17:16 → 17:18
NiklasBut then they sat down,
17:18 → 17:21
Niklasto develop a new protocol with the community,
17:21 → 17:24
Niklaswhich also applies to the Mesa driver and thus also to AMD GPUs
17:24 → 17:28
Niklascan bring some improvement in stability and performance,
17:28 → 17:30
Niklasnamely Explicit Sync.
17:30 → 17:31
NiklasExplicit Sync is still very new.
17:31 → 17:34
NiklasI've been following this for two years now.
17:34 → 17:35
NiklasAll merge requests that are included in it are not yet ready.
17:36 → 17:39
NiklasThat is, we have merge requests in the Wayland protocol,
17:39 → 17:42
Niklaswe have merge requests in Xwayland, one per compositor.
17:42 → 17:44
NiklasThey all have to coordinate somehow.
17:44 → 17:46
NiklasThen with the mesa project for the driver etc.
17:46 → 17:47
NiklasSo a big, complex story,
17:47 → 17:49
Niklaswhich dragged on for two years.
17:49 → 17:51
NiklasBut last month, in May,
17:51 → 17:54
Niklashave finally been used in almost all compositors
17:54 → 17:56
Niklasand in all graphics drivers
17:56 → 17:59
Niklasfinalized and merged the implementation for Explicit Sync.
17:59 → 18:00
NiklasIf you want to take advantage of this,
18:00 → 18:03
Niklasas a Mesa user you are lucky, that is already stable.
18:03 → 18:05
NiklasSo with AMD and Intel you can already use Explicit Sync
18:05 → 18:08
Niklaswith Mesa 24.1.
18:08 → 18:13
NiklasCurrently only with GNOME, soon also with KDE and Zway.
18:13 → 18:16
NiklasAs an Nvidia user, you still have to use the beta driver.
18:16 → 18:18
NiklasThis is also the one I use for my demos here,
18:18 → 18:20
Niklasnamely in version 555.
18:20 → 18:22
NiklasIf you are interested in what this looks like in detail
18:22 → 18:23
Niklaswith Implicit and Explicit Sync
18:23 → 18:25
Niklasand what that means for you,
18:25 → 18:28
Niklasyou can read through this article, which I have linked.
18:28 → 18:32
NiklasIt goes into much more detail than I could on this slide.
18:32 → 18:34
NiklasSo, we had already said,
18:34 → 18:37
Niklasbetween the graphics driver and the display on the screen
18:37 → 18:40
Niklaswe can still make color adjustments somehow.
18:40 → 18:42
NiklasAnd this is used, among other things, to
18:42 → 18:44
Niklasimplement the Nightlight or Nightshift feature.
18:44 → 18:47
NiklasSo that they say, I want to have fewer shades of blue in the evening,
18:47 → 18:50
Niklasso that I can sleep better or something etc.
18:50 → 18:52
NiklasThe technical solution for this is called Gamma LUT,
18:52 → 18:54
NiklasGamma Lookup Table.
18:54 → 18:55
NiklasSince we define a table,
18:55 → 18:57
Niklashow to adjust these individual color values
18:57 → 19:00
Niklasfrom the graphics card or driver.
19:00 → 19:01
NiklasAnd that has the advantage of
19:01 → 19:03
Niklasif we were to record the screen anyway,
19:03 → 19:05
Niklasbecause the actual buffer is not changed,
19:05 → 19:07
Niklasonly when it is transmitted to the screen itself,
19:07 → 19:09
Niklasthen we get the original picture.
19:09 → 19:11
NiklasSo, we don't have a distorted image on a screenshot
19:11 → 19:13
Niklasor a screen recording.
19:13 → 19:16
NiklasSince October 2023, Nvidia has also finally supported Gamma LUT.
19:16 → 19:19
NiklasI wonder at times what took so long,
19:19 → 19:22
Niklasbecause for two years now you have been reading in the bug tracker again and again,
19:22 → 19:24
Niklasyes, it's on the roadmap, yes, we're working on it,
19:24 → 19:26
NiklasBut there never came a time
19:26 → 19:28
NiklasAnd then suddenly it was there.
19:28 → 19:32
NiklasAnd if we want to play, we'll come back
19:32 → 19:35
Niklasand let's not get around Xwayland either.
19:35 → 19:37
NiklasIn the perfect world, all applications
19:37 → 19:39
Niklasalready use Wayland under Linux,
19:39 → 19:41
Niklasbut especially in games, which often depend on Wine or Proton,
19:41 → 19:43
Niklasbecause they don't have a native Linux version,
19:43 → 19:45
Niklaswe have to fall back on Xwayland.
19:45 → 19:46
NiklasThat means we have an X server,
19:46 → 19:48
Niklasthat runs in the background
19:48 → 19:50
Niklasand our Wayland compositor copies the buffers
19:50 → 19:53
Niklasfrom this X server into the final image.
19:53 → 19:55
NiklasAnd that sounds good at first,
19:55 → 19:57
Niklasbut had the problem under Nvidia,
19:57 → 20:00
Niklasthat the whole thing only took place with software rendering at first.
20:00 → 20:02
NiklasThat's pointless for games at first,
20:02 → 20:03
Niklasdoesn't do us any good.
20:03 → 20:04
NiklasIndividual GUI applications okay,
20:04 → 20:05
NiklasBut we said yes,
20:05 → 20:06
NiklasAmong other things, I want to use Nvidia,
20:06 → 20:07
Niklasbecause I can play well underneath.
20:07 → 20:09
NiklasI can't if I don't have GPU acceleration
20:09 → 20:10
Niklasfor Xwayland.
20:10 → 20:13
NiklasIt was finally solved in July 2021.
20:13 → 20:15
NiklasThis means that gaming now works quite well
20:15 → 20:17
Niklasunder Wayland with Nvidia thanks to Xwayland
20:17 → 20:20
Niklasand you will then also have access thanks to Proton
20:20 → 20:23
Niklason features such as ray tracing, on DLSS, etc.,
20:23 → 20:26
Niklasso everything you would get under Windows.
20:26 → 20:31
NiklasHardware video decoding is strictly speaking
20:31 → 20:35
Niklasno Wayland feature.
20:35 → 20:38
NiklasIt affects X11 and Wayland users alike,
20:38 → 20:40
Niklasbut for the sake of completeness I want to mention it,
20:40 → 20:43
Niklasbecause for me, it's part of a well-rounded desktop experience.
20:43 → 20:46
NiklasAnd here again we have a similar situation to Wayland,
20:46 → 20:47
Niklasthat we have different protocols,
20:47 → 20:49
Niklasthat are not supported by all drivers.
20:49 → 20:52
NiklasOn the one hand, Intel has introduced VA API,
20:52 → 20:55
NiklasNvidia has presented VDPAU
20:55 → 20:58
Niklasand while AMD supports both,
20:58 → 21:00
NiklasIntel and Nvidia are sticking to their own solutions.
21:00 → 21:04
NiklasFirefox has chosen to support only VA API.
21:04 → 21:07
NiklasChromium somehow doesn't support anything out of the box,
21:07 → 21:08
Niklaswhich is a bit of a shame.
21:08 → 21:10
NiklasYou can play around in build flags,
21:10 → 21:11
NiklasBut I've read several times
21:11 → 21:14
Niklasthat this doesn't really work well on AMD or Nvidia.
21:14 → 21:16
NiklasSo my recommendation,
21:16 → 21:19
Niklastake a look at the Nvidia VA API Driver project.
21:19 → 21:25
NiklasThis implements the VA API on the proprietary NVDEC API
21:25 → 21:29
Niklasand then you also get hardware-accelerated video decodings in Firefox.
21:30 → 21:32
NiklasIf you use Chrome, don't.
21:32 → 21:34
NiklasYou can't use uBlock anymore from next week anyway,
21:34 → 21:36
NiklasSo what else do you want?
21:37 → 21:38
NiklasA little patch for the future,
21:38 → 21:41
Niklasthere is finally a standard for video decoding,
21:41 → 21:43
Niklasthat is not only Linux-specific,
21:43 → 21:45
Niklasbut is also applied to Windows,
21:45 → 21:47
Niklasthat Firefox can and wants to implement,
21:47 → 21:48
Niklasnamely volcano video.
21:48 → 21:51
NiklasSo hopefully you won't have to install anything additional in the future,
21:51 → 21:53
Niklasso that you can play on both platforms
21:53 → 21:55
NiklasHardware-accelerated video decoding.
21:56 → 21:59
NiklasNow we have talked through many technical and historical details.
22:00 → 22:02
NiklasBut then the question always arises,
22:02 → 22:04
Niklasnow I want to switch to Wayland as an NVIDIA user,
22:04 → 22:06
NiklasWhat should I use?
22:06 → 22:08
NiklasWe'll look at a few compositors, does that mean,
22:08 → 22:11
Niklasi.e. the one that puts the images together in the test environment at the end
22:11 → 22:14
Niklasand brings it to the graphics driver, which then draws it on the screen.
22:14 → 22:18
NiklasAnd we look at KDE, i.e. Kwin,
22:18 → 22:21
NiklasGNOME, the compositor is called Mother,
22:21 → 22:24
NiklasSway, Sway is both the window manager and the compositor
22:24 → 22:26
Niklasand GameScope.
22:26 → 22:28
NiklasI'm not talking about Hyprland today,
22:28 → 22:29
NiklasI thought about testing,
22:29 → 22:32
Niklasbut since the situation is currently a bit deadlocked
22:32 → 22:35
Niklasbetween Hyperland and the free desktop community,
22:35 → 22:38
Niklasalthough Hyprland depends on Wlroots,
22:38 → 22:41
NiklasI can't recommend Hyprland in good conscience currently.
22:43 → 22:46
NiklasKDE is a full-featured desktop that
22:46 → 22:47
Niklasjust in case someone comes from Windows,
22:47 → 22:48
Niklasyou will settle in quickly,
22:48 → 22:50
Niklasbecause that's partly oriented towards it.
22:50 → 22:52
NiklasAnd it has the longest support, as far as I know
22:52 → 22:53
Niklasfor NVIDIA under Wayland.
22:53 → 22:55
NiklasOn the one hand, it supports at that time
22:55 → 22:57
NiklasI don't know if it's still in it today,
22:57 → 22:58
NiklasEGLStreams and on the other hand,
22:59 → 23:01
Niklasand it was already without this gamma lookup table
23:01 → 23:02
NiklasNightlight,
23:02 → 23:03
Niklasunfortunately about the workaround,
23:03 → 23:05
Niklasthat you just used a shader
23:05 → 23:08
Niklasand so that the whole thing has to be falsified in the buffer again.
23:08 → 23:11
NiklasAnd from 6.1, that's coming out soon,
23:11 → 23:12
Niklasis currently in beta,
23:12 → 23:14
NiklasExplicit Sync is also supported.
23:14 → 23:17
NiklasThat is, we finally have a proper synchronization of the buffers,
23:17 → 23:19
Niklasthat are rendered in the applications
23:19 → 23:21
Niklasand be represented by the compositor.
23:21 → 23:23
NiklasAnd it is said to have some graphic glitches
23:23 → 23:25
Niklasand solve frame-pacing problems,
23:25 → 23:28
Niklasthat you are currently experiencing with Wayland and NVIDIA.
23:28 → 23:31
NiklasWe'll also look later to see if that's the case.
23:31 → 23:34
NiklasI installed the beta driver especially for this
23:34 → 23:37
Niklasand at least tested on GNOME,
23:37 → 23:40
Niklaswhether Explicit Sync solves all problems.
23:40 → 23:42
NiklasUnfortunately not yet.
23:42 → 23:46
NiklasAnd GNOME is the second one we're looking at.
23:46 → 23:49
NiklasGNOME also supports NVIDIA over GBM,
23:49 → 23:51
Niklasalready partly via EGL streams at that time.
23:51 → 23:53
NiklasExplicit Sync can already be used productively.
23:53 → 23:55
NiklasSo there is already a release version of GNOME
23:55 → 23:57
Niklaswith Explicit Sync.
23:57 → 24:00
NiklasAnd recently, there have been a few improvements
24:00 → 24:01
Niklasin GNOME,
24:01 → 24:04
Niklasthat have made it into the current release.
24:04 → 24:08
NiklasNamely, if you use an NVIDIA GPU as a dedicated GPU
24:08 → 24:12
Niklasand have an Intel GPU or something like that as an integrated GPU in the laptop,
24:12 → 24:16
Niklasthen the graphics buffer still has to be removed from the NVIDIA GPU
24:16 → 24:19
Niklasthrough the Intel or AMD driver.
24:19 → 24:21
NiklasAnd that was a pretty slow process,
24:21 → 24:23
Niklaswhich has now been accelerated under GNOME,
24:23 → 24:25
Niklasif that's relevant to you.
24:25 → 24:27
NiklasWith Sway, you have to make
24:27 → 24:29
NiklasYou have to be careful.
24:29 → 24:31
NiklasSway is, if you don't know it,
24:31 → 24:33
Niklasthe Wayland counterpart to i3, a tiling window manager.
24:33 → 24:37
NiklasBut Sway doesn't officially support a proprietary NVIDIA driver.
24:37 → 24:42
NiklasAnd you are also not allowed to report bugs in the Sway issue tracker
24:42 → 24:44
Niklasand don't ask any questions there.
24:44 → 24:46
NiklasIf you have any questions about Sway and Wayland,
24:46 → 24:48
Niklasfeel free to write to me, ask on Mastodon,
24:48 → 24:51
Niklasbut does not go into the official communication channels.
24:51 → 24:53
NiklasThat is not welcome.
24:53 → 24:55
NiklasRelated to this, you can't start Sway at all
24:55 → 24:57
Niklasamong the proprietary drivers,
24:57 → 25:00
Niklaswithout specifying the Unsupported GPU parameter.
25:00 → 25:02
NiklasA few years ago, it was still called
25:02 → 25:04
NiklasI will not buy NVIDIA again.
25:07 → 25:09
NiklasIf you actually want to use Sway,
25:09 → 25:11
Niklasa little warning,
25:11 → 25:13
NiklasHardware cursors are not supported.
25:13 → 25:15
NiklasSo hardware cursor is such an acceleration technique,
25:15 → 25:18
Niklasthe graphics driver renders the image directly,
25:18 → 25:20
Niklaswhat you have uploaded, etc.
25:20 → 25:24
NiklasYou can deactivate it with WLR_NO_HARDWARE_CURSORS=1 as an environment variable.
25:24 → 25:27
NiklasAnd you get various graphic glitches.
25:27 → 25:30
NiklasIn my experience, this works a bit better,
25:30 → 25:33
Niklasif you use the Vulken renderer under Sway.
25:33 → 25:35
NiklasBut maybe that's just placebo
25:35 → 25:37
Niklasand I was lucky.
25:37 → 25:39
NiklasIronically, in the recordings,
25:39 → 25:41
Niklaswhich I will show here as a demo,
25:41 → 25:43
Niklasyou see few graphic glitches,
25:43 → 25:45
Niklasthan I had seen before.
25:45 → 25:47
NiklasAnd that worries me a bit,
25:47 → 25:49
Niklas'Cause I thought, can I actually show Sway here,
25:49 → 25:51
Niklasthe way it works?
25:51 → 25:53
NiklasAnd then suddenly it went and then I don't know now
25:53 → 25:55
Niklaswhat you will see at home.
25:55 → 25:57
NiklasAnd finally, we also take a look at Gamescope.
25:57 → 25:59
NiklasThis is Valve's own compositor,
25:59 → 26:01
Niklaswhich is based on the Wlroots library,
26:01 → 26:03
Niklasoriginally developed by Sway
26:03 → 26:05
Niklasand is used on the Steam Deck.
26:05 → 26:07
NiklasThat said, it's very focused on gaming,
26:07 → 26:09
Niklasalready supports HDR,
26:09 → 26:11
Niklassince the current OLED Steam Deck generation
26:11 → 26:13
Niklasalready has HDR displays.
26:13 → 26:16
NiklasAnd it already supports Explicit Sync.
26:16 → 26:18
NiklasThis means that, theoretically, most people would have to
26:18 → 26:20
NiklasNvidia problems will be fixed.
26:20 → 26:22
NiklasUnfortunately, they are not.
26:22 → 26:25
NiklasOkay, now comes the first demo,
26:25 → 26:27
Niklasnamely a few videos
26:27 → 26:33
Niklasto the proprietary drivers,
26:33 → 26:36
Niklaspartly with Explicit Sync, partly without.
26:36 → 26:38
NiklasAnd what I do first,
26:38 → 26:42
NiklasI'm now showing the video with the frame pacing issues.
26:42 → 26:45
NiklasSo if someone is somehow sensitive to flickering
26:45 → 26:47
Niklasor anything else,
26:47 → 26:49
NiklasMaybe look away for a moment.
26:49 → 26:51
NiklasI'll let you know when it's over.
26:55 → 27:03
NiklasSo, the game Witcher 3 is shown here.
27:03 → 27:05
NiklasAnd what we're seeing here is,
27:05 → 27:08
Niklaswhat happens when the compositor
27:08 → 27:10
Niklasthe frames that the game generates,
27:10 → 27:12
Niklasi.e. renders the graphics card for the game,
27:12 → 27:14
Niklasin the wrong order.
27:14 → 27:16
NiklasThat's not what you usually call
27:16 → 27:18
NiklasScreen tearing knows when V-Sync is disabled,
27:18 → 27:21
Niklasbut it jerks quite strangely.
27:21 → 27:23
NiklasNvidia has found a workaround,
27:23 → 27:26
Niklaseven if Explicit Sync is not supported.
27:26 → 27:27
NiklasThey're doing something now,
27:27 → 27:29
Niklaswhere more buffers are copied around.
27:29 → 27:30
NiklasThis means that we then have
27:30 → 27:32
Niklasa noticeable loss of performance.
27:32 → 27:35
NiklasBut in the future we will no longer need
27:35 → 27:38
Niklasif Explicit Sync is supported in all compositors.
27:38 → 27:42
NiklasSo, that was the frame-pacing and out-of-order problem.
27:42 → 27:44
NiklasThat's over now.
27:44 → 27:47
NiklasAnd the other thing, where we can do a little bit
27:47 → 27:49
NiklasHeavy graphics glitches,
27:49 → 27:50
NiklasI'll show you now also briefly.
27:50 → 27:53
NiklasThat's under GameScope.
27:54 → 27:57
NiklasThat's already the case...
27:57 → 28:00
NiklasSorry for the cell phone movie recording.
28:00 → 28:02
NiklasI didn't feel like using the terminal
28:02 → 28:04
Niklasto start a Wayland grabber somehow.
28:04 → 28:06
NiklasAnd I can't run OBS Studio,
28:06 → 28:09
Niklasif GameScope is running as a desktop session.
28:09 → 28:12
NiklasHere we see that despite Explicit Sync
28:12 → 28:14
Niklasany synchronization problems
28:14 → 28:19
Niklasbetween GameScope and the final display.
28:19 → 28:21
NiklasAnd besides, I unfortunately had to find out
28:21 → 28:23
Niklasas soon as I want to start a game,
28:23 → 28:26
Niklaswe have to wait a short time until the volcano shaders are processed.
28:26 → 28:28
NiklasThat's one of those things, too.
28:28 → 28:31
NiklasBut unfortunately it doesn't go past the main menu of the game.
28:31 → 28:35
NiklasThat is, as soon as something had to be rendered three-dimensionally here,
28:35 → 28:37
Niklasunfortunately the game crashes.
28:37 → 28:40
NiklasOr even better, the compositor as a whole.
28:50 → 28:52
NiklasYes, and there it is gone.
28:53 → 28:57
NiklasAnd we end up back in the login screen.
28:57 → 29:00
NiklasI'm pretty sure this could be fixed soon.
29:00 → 29:03
NiklasBut as I said before, this is more of a field report.
29:03 → 29:06
NiklasLet me tell you what you can do with Wayland and NVIDIA now.
29:06 → 29:09
NiklasNot what it might look like in a year's time.
29:09 → 29:14
NiklasThat's the current state of play with GameScope and NVIDIA 555 drivers.
29:14 → 29:16
NiklasTo be fair, beta drivers.
29:16 → 29:20
NiklasBut even fairer, it's just as bad without the beta drivers.
29:20 → 29:22
NiklasThe other thing I've tested is,
29:22 → 29:25
Niklasnow we don't have any more heavy glitches,
29:25 → 29:27
NiklasSo everything is safe,
29:27 → 29:29
Niklasis KDE.
29:29 → 29:35
NiklasIn my experience, KDE works very well with NVIDIA drivers.
29:35 → 29:37
NiklasRewind.
29:37 → 29:39
NiklasA nice feature under KDE.
29:39 → 29:42
NiklasWe can say that X11 apps are not meant to be scaled up.
29:42 → 29:45
NiklasAnd if you, like me, only use X11, i.e. Xwayland, for games,
29:45 → 29:47
Niklasthen you don't want to have scaling at all.
29:47 → 29:49
NiklasThat's why it's a bit incomprehensible to me,
29:49 → 29:51
Niklasthat GNOME insists to this day,
29:51 → 29:53
Niklasthat Xwayland applications are always
29:53 → 29:56
Niklasneed to be adjusted with the scale factor.
29:56 → 29:59
NiklasSo we first go into the web browser.
29:59 → 30:02
NiklasWe already had some of this with older NVIDIA drivers
30:02 → 30:04
Niklasvarious graphic glitches.
30:04 → 30:06
NiklasThere is no longer any more.
30:06 → 30:08
NiklasSo we can do it without any problems, that's now also with the hardware video decoding,
30:08 → 30:10
Niklaswatch videos on YouTube.
30:10 → 30:12
NiklasWe can switch back and forth between full screen,
30:12 → 30:15
Niklaswithout any tearing or glitches.
30:15 → 30:18
NiklasWe can also look at WebGL.
30:18 → 30:20
NiklasWe can also look at WebGL.
30:20 → 30:23
NiklasWe can also look at WebGL applications.
30:23 → 30:25
NiklasExactly.
30:25 → 30:27
NiklasEverything works without any problems.
30:27 → 30:29
NiklasElectron apps like VSCode,
30:29 → 30:32
Niklashere, too, you can see a lot of tearing under Sway,
30:32 → 30:35
Niklasif you move things around where somehow buffers change a lot.
30:35 → 30:38
NiklasNo problem at all under KDE.
30:38 → 30:41
NiklasIn other words, both in terms of performance and synchronization
30:41 → 30:44
Niklaswe can do what we want here without being restricted.
30:48 → 30:51
NiklasI can't show Nightlight in the demo.
30:51 → 30:53
NiklasThat would have been here right now.
30:53 → 30:55
NiklasExactly.
30:55 → 30:58
NiklasAs I said before, Nightlight only affects
30:58 → 31:00
Niklaswhat is broadcast on the screen.
31:00 → 31:02
NiklasThat is, if I turn on the nightlight switch here in the demo,
31:02 → 31:05
Niklasyou just have to believe me that the picture was no longer as blue as before,
31:05 → 31:07
Niklasbecause it was like that on the screen.
31:09 → 31:13
NiklasSo, now let's take a look at Steam.
31:13 → 31:16
NiklasSteam, we already saw Gamescope, where Steam had strong glitches.
31:16 → 31:20
NiklasApparently there is some discrepancy between Nvidia's OpenGL drivers
31:20 → 31:24
Niklasand Steam itself, i.e. the renderer of Steam.
31:24 → 31:28
NiklasBecause we experience the same thing when we have the Steam WebView open.
31:28 → 31:30
NiklasBut at least we can,
31:30 → 31:32
Niklasso I hope you don't have to buy new games,
31:32 → 31:34
Niklasyou probably already have a huge library,
31:34 → 31:36
Niklasso we don't need the store.
31:36 → 31:38
NiklasYou can go to the library and start games here without any problems.
31:38 → 31:42
NiklasIn that case, I'll try Planet Crafter first.
31:42 → 31:44
NiklasThen we come to the menu, where we had failed earlier.
31:44 → 31:48
NiklasYou can load here, now we're in the game.
31:48 → 31:52
NiklasMy recommendation, which I also had to determine,
31:52 → 31:56
NiklasV-Sync under Nvidia on Wayland is currently pretty terrible,
31:56 → 32:00
Niklasbecause you notice a very strong input lag.
32:00 → 32:02
NiklasThis does not mean that you are now somehow forced to
32:02 → 32:04
Niklaswith screen tearing.
32:04 → 32:06
NiklasYou can leave V-Sync disabled in games,
32:06 → 32:10
Niklasas long as you don't allow V-Sync at the compositor level,
32:10 → 32:14
Niklaswhich is just a fairly new protocol change in Wayland,
32:14 → 32:16
Niklasyou won't have screen tearing.
32:16 → 32:18
NiklasIn addition, if you say,
32:18 → 32:22
Niklasbut I don't want the graphics card to run under continuous load,
32:22 → 32:26
Niklasyou can of course still limit the frame rate most of the time in the game.
32:26 → 32:30
NiklasAnd I think you can also use VKBasalt or Mangohud
32:30 → 32:34
Niklasfor applications that do not have an in-game FPS limiter,
32:34 → 32:36
Niklaschange the frame rate.
32:36 → 32:38
NiklasHere is another non-Steam game,
32:38 → 32:40
Niklasthat's a bit more graphics-heavy
32:40 → 32:42
Niklasand now comes with ray tracing,
32:42 → 32:44
Niklasnamely Witcher 3.
32:44 → 32:48
NiklasWe can easily launch the launcher.
32:48 → 32:52
NiklasHe's coming soon.
32:52 → 32:56
NiklasHelp a little.
32:56 → 32:58
NiklasThat's when we come in.
32:58 → 33:00
NiklasI had the feeling
33:00 → 33:02
Niklasthat the videos **** a bit.
33:02 → 33:04
NiklasBut I can imagine that this is game-specific,
33:04 → 33:06
Niklassince I'm in the game
33:06 → 33:10
Niklashad not seen any further problems of this kind.
33:10 → 33:12
NiklasAnd the really important thing,
33:12 → 33:14
NiklasI have already said,
33:14 → 33:16
NiklasKDE in this version 6.0
33:16 → 33:18
Niklasdoes not support Explicit Sync.
33:18 → 33:20
NiklasThat is, we now see the workaround here,
33:20 → 33:22
Niklaswhich Nvidia has built into the 555 driver.
33:22 → 33:24
NiklasNamely, we have here
33:24 → 33:28
Niklasno more out-of-order frame issues.
33:28 → 33:30
NiklasI didn't compare the performance now
33:30 → 33:32
Niklasbetween with and without Explicit Sync,
33:32 → 33:34
Niklasif someone wants to contribute a benchmark,
33:34 → 33:36
NiklasI'd like to see
33:36 → 33:38
Niklaswhether that really makes that much difference,
33:38 → 33:40
Niklashow it is advertised,
33:40 → 33:42
Niklasor whether in the end somehow
33:42 → 33:44
Niklasthe workaround that Nvidia was able to build into the driver,
33:44 → 33:46
Niklasis already sufficient for most use cases.
33:48 → 33:50
NiklasSo, then
33:50 → 33:52
NiklasLet's get to GNOME.
33:52 → 33:56
NiklasGNOME supports Explicit Sync.
33:56 → 33:58
NiklasSince we should,
33:58 → 34:00
Niklasso if we believe the promises,
34:00 → 34:02
Niklasthat Explicit Sync solves all problems,
34:02 → 34:04
Niklasactually also in Steam
34:04 → 34:06
Niklasno more problems.
34:06 → 34:08
NiklasBut first again
34:08 → 34:10
Niklasto the Basic Use Cases.
34:10 → 34:12
NiklasThere we can already see directly, the tab is crashed.
34:12 → 34:14
NiklasWhy is that?
34:14 → 34:16
NiklasIn the current Firefox version, there is
34:16 → 34:18
Niklasanother API usage problem.
34:18 → 34:20
NiklasNamely, Firefox is at this point
34:20 → 34:22
Niklasnot Explicit Sync compatible.
34:22 → 34:24
NiklasThis means that if you use drivers,
34:24 → 34:26
Niklasuse Explicit Sync,
34:26 → 34:28
Niklasand a compositor that uses Explicit Sync,
34:28 → 34:30
Niklaslike GNOME now,
34:30 → 34:32
Niklas43.1,
34:32 → 34:34
Niklascan it be,
34:34 → 34:36
Niklasthat Firefox crashes,
34:36 → 34:38
Niklasor that the tab crashes.
34:38 → 34:40
NiklasHopefully it will be fixed soon.
34:40 → 34:42
NiklasMaybe even before KDE
34:42 → 34:44
Niklaswith Plasma 6.1.
34:44 → 34:46
NiklasIf not, I think
34:46 → 34:48
Niklasthat the pressure will be high enough,
34:48 → 34:50
Niklassince, as far as I know,
34:50 → 34:52
Niklasalso affects AMD users.
34:52 → 34:54
NiklasBut it's good if Firefox doesn't crash right now
34:54 → 34:56
Niklasbecause of Explicit Sync,
34:56 → 34:58
Niklasthen we have the same good experience
34:58 → 35:00
Niklasas under KDE.
35:00 → 35:02
NiklasWe can switch full screen back and forth.
35:02 → 35:04
NiklasWe can also
35:04 → 35:06
Niklasin the tabs, exactly,
35:06 → 35:08
NiklasWe can scroll back and forth.
35:08 → 35:10
NiklasThere is no fragment or anything else at all.
35:10 → 35:12
NiklasWe can launch Electron apps.
35:12 → 35:14
NiklasWe had that as an example earlier.
35:14 → 35:16
NiklasAgain, as I said, it sometimes happens under Sway,
35:16 → 35:18
Niklasthat you see large graphic glitches.
35:18 → 35:20
NiklasUnder GNOME and KDE this is completely unproblematic.
35:26 → 35:28
NiklasThen we come back to the Steam test.
35:28 → 35:30
NiklasExactly.
35:30 → 35:32
NiklasAnd we see
35:32 → 35:34
Niklaswe have the exact same graphics glitch again
35:34 → 35:36
Niklasas under KDE.
35:36 → 35:38
NiklasDespite Explicit Sync.
35:38 → 35:40
NiklasMakes sense.
35:40 → 35:42
NiklasWe saw Gamescope earlier.
35:42 → 35:44
NiklasWe already had this graphics glitch in the menu.
35:44 → 35:46
NiklasI would like to know what the reason is.
35:46 → 35:48
NiklasI'm sure that Valve will
35:48 → 35:50
Niklasis aware of the problem,
35:50 → 35:52
Niklasbut that it is simply currently probably
35:52 → 35:54
Niklasis not a priority based on their numbers,
35:54 → 35:56
Niklasbecause they see most Nvidia players anyway
35:56 → 35:58
Niklasuse X11, so why fix it now?
35:58 → 36:00
NiklasIn the game itself.
36:02 → 36:04
NiklasSince I have to restart the game,
36:04 → 36:06
Niklasbecause I noticed
36:06 → 36:08
Niklasthat I had the screen at 150% scaling
36:08 → 36:10
Niklasand then the game is also scaled up.
36:10 → 36:12
NiklasAn annoyance under GNOME.
36:12 → 36:14
NiklasBut once we're in the game,
36:16 → 36:18
Niklaseverything runs smoothly again.
36:18 → 36:20
NiklasI think we...
36:20 → 36:22
NiklasWell, now I was a bit too fast.
36:22 → 36:24
NiklasI think you can even see
36:24 → 36:26
Niklasa slightly higher frame rate
36:26 → 36:28
Niklasthan under KDE.
36:28 → 36:30
NiklasThat is, probably
36:30 → 36:32
NiklasExplicit Sync actually looks a bit different in this case.
36:32 → 36:34
NiklasSo we get better performance in the games.
36:34 → 36:36
NiklasAnd we don't have screen tearing again,
36:36 → 36:38
Niklaseven though V-Sync is disabled,
36:38 → 36:40
Niklasbecause V-Sync is forced at compositor-level.
36:42 → 36:44
NiklasNow I've already said,
36:44 → 36:46
Niklasthat Sway is more of a problematic thing,
36:48 → 36:50
Niklasbecause it is a) not officially supported
36:50 → 36:52
Niklasand b) therefore does not solve any problems,
36:52 → 36:54
Niklasthat affect Nvidia.
36:56 → 36:58
NiklasThat's now with the parameters,
36:58 → 37:00
Niklaswhich I presented earlier.
37:00 → 37:02
NiklasSo hardware cursors deactivated
37:02 → 37:04
Niklasand set the renderer to Vulkan.
37:04 → 37:06
NiklasAnd in this test run I had to find out
37:06 → 37:08
Niklasthat I had surprisingly few problems.
37:08 → 37:10
NiklasThere were actually no glitches,
37:10 → 37:12
Niklasthat I used in my test run the week before,
37:12 → 37:14
Niklaswhich I unfortunately did not record,
37:14 → 37:16
Niklas.
37:16 → 37:18
NiklasSo give it a try.
37:18 → 37:20
NiklasIt could also be race conditions,
37:20 → 37:22
Niklasthat only apply to your hardware,
37:22 → 37:24
Niklaswhich only refers to a specific
37:24 → 37:26
Niklasdriver version.
37:26 → 37:28
NiklasBut I can't say
37:28 → 37:30
Niklasthat Sway can be used in all your cases without any problems
37:30 → 37:32
Niklasapplicable.
37:34 → 37:36
NiklasI even had once,
37:36 → 37:38
Niklaseven if it is not the case here now,
37:38 → 37:40
Niklasin my gameplay recordings,
37:40 → 37:42
Niklasthat it was unproblematic at first
37:42 → 37:44
Niklasand then suddenly the image
37:44 → 37:46
Niklascompressed to half
37:46 → 37:48
NiklasAnd then it was somehow
37:48 → 37:50
Niklassuch a very narrow something,
37:50 → 37:52
Niklasuntil the application
37:52 → 37:54
Niklashas been smeared.
37:54 → 37:56
NiklasSo that means some problems again
37:56 → 37:58
Niklaswith Sway,
37:58 → 38:00
Niklaswhat exactly that is,
38:00 → 38:02
Niklaswhich I also do from time to time
38:02 → 38:04
Niklaswith Sway,
38:04 → 38:06
Niklasbut just not consistent.
38:06 → 38:08
NiklasGood
38:08 → 38:10
Niklasso much for the
38:10 → 38:12
Niklasproprietary drivers.
38:12 → 38:14
NiklasBut we don't have to
38:14 → 38:16
Niklasbe sure to use the proprietary drivers.
38:16 → 38:18
NiklasIn the Mesa project, there are already
38:18 → 38:20
Niklasfor a very long time
38:20 → 38:22
Niklasthe Nouveau driver.
38:22 → 38:24
NiklasThe Nouveau driver is
38:24 → 38:26
Niklasne free re-implementation of NVIDIA drivers.
38:26 → 38:28
NiklasThis means,
38:28 → 38:30
Niklassince there is no NVIDIA developer
38:30 → 38:32
Niklasworked on Nouveau
38:32 → 38:34
Niklasand NVIDIA itself
38:34 → 38:36
Niklasalmost no technical documentation
38:36 → 38:38
Niklasor provide details,
38:38 → 38:40
Niklasthat are necessary to
38:40 → 38:42
Niklasto communicate with the GPU,
38:42 → 38:44
Niklasthe complete driver
38:44 → 38:46
Niklasbased on Clean Room Reverse Engineering
38:46 → 38:48
Niklascan be created.
38:48 → 38:50
NiklasThis means that no people are allowed to work on it,
38:50 → 38:52
Niklasthat somehow ever contact
38:52 → 38:54
Niklasto the internals.
38:54 → 38:56
NiklasAnd no one is allowed to work on it,
38:56 → 38:58
Niklaswho somehow saw a leak of this code.
38:58 → 39:00
NiklasBecause then we lose this plausible deniability
39:00 → 39:02
Niklasand NVIDIA has somehow
39:02 → 39:04
Niklasto say a legal reason
39:04 → 39:06
Niklasyou actually use things,
39:06 → 39:08
Niklasthat you are not allowed to use at all,
39:08 → 39:10
Niklasbut through Clean Room Reverse Engineering
39:10 → 39:12
Niklasthe whole thing can be denied.
39:12 → 39:14
NiklasBut has the problem that it became more and more difficult
39:14 → 39:16
Niklasto reverse-engineer these things
39:16 → 39:18
Niklasand a sticking point in the matter
39:18 → 39:20
Niklasis to change the clock speed.
39:20 → 39:22
NiklasGPUs start with a very low clock speed
39:22 → 39:24
Niklasof about 200 MHz.
39:24 → 39:26
NiklasWe can't do much with that,
39:26 → 39:28
Niklasoutside of Basic Software Rendering
39:28 → 39:30
NiklasAnd even there you can already see
39:30 → 39:32
Niklasa lot of jerking.
39:32 → 39:34
NiklasThat is, after the boot process, we need to
39:34 → 39:36
Niklasmake a new cycle,
39:36 → 39:38
Niklasto somehow get into the gigahertz range
39:38 → 39:40
Niklasand actually being able to do something with the GPU.
39:40 → 39:42
NiklasIn numbers, this means roughly,
39:42 → 39:44
Niklaswithout this re-clocking, we only have
39:44 → 39:46
Niklas20% or 10-30% of the computing power,
39:46 → 39:48
Niklasthat would be possible with the graphics card.
39:48 → 39:50
NiklasThis has been the case since
39:50 → 39:52
Niklashas been a problem for about ten years,
39:52 → 39:54
Niklaswhich is why the Nouveau project is also a bit
39:54 → 39:56
Niklasfell asleep because it is difficult to
39:56 → 39:58
Niklasmotivate for development,
39:58 → 40:00
Niklaswhen you can't really do anything with this graphics card.
40:00 → 40:02
NiklasBut fortunately
40:02 → 40:04
Niklascame the year before last
40:04 → 40:06
Niklasa new announcement from Nvidia,
40:06 → 40:08
Niklasnamely the
40:08 → 40:10
NiklasOpen GPU Kernel Modules.
40:10 → 40:12
NiklasIn May 2022, Nvidia released
40:12 → 40:14
Niklasmade public,
40:14 → 40:16
Niklasthat they have been working since 2019
40:16 → 40:18
Niklasin their GPUs
40:18 → 40:20
Niklasthis RISC-V processor
40:20 → 40:22
Niklasof which we spoke earlier
40:22 → 40:24
Niklasintegrated.
40:24 → 40:26
NiklasThe whole thing is called
40:26 → 40:28
NiklasGSP,
40:28 → 40:30
Niklasi.e. GPU System Processor.
40:30 → 40:32
NiklasThis takes from the kernel driver
40:32 → 40:34
Niklascommands,
40:34 → 40:36
Niklaslike: I want to somehow control this output
40:36 → 40:38
Niklaswith the HDMI protocol,
40:38 → 40:40
Niklasbut the kernel driver doesn't need to know
40:40 → 40:42
Niklaswhat this protocol actually does.
40:42 → 40:44
NiklasIt just has to know that we want to put things on this output
40:44 → 40:46
Niklasand the details of the protocol are
40:46 → 40:48
Niklasabstracted in this RISC-V processor,
40:48 → 40:50
Niklasthat they are somehow tainted by the GPL
40:50 → 40:52
Niklasin the kernel or whatever.
40:52 → 40:54
NiklasAnother thing for which Nvidia has been reprimanded before,
40:54 → 40:56
Niklas'Cause they've tried to somehow
40:56 → 40:58
Niklascertain abstractions
40:58 → 41:00
NiklasIntroduce
41:00 → 41:02
Niklasthat make the whole thing
41:02 → 41:04
Niklasstay away from the GPL.
41:04 → 41:06
NiklasBut now we have a physical abstraction,
41:06 → 41:08
Niklasthat really protects you. Whether that's good or bad,
41:08 → 41:10
Niklasremains to be seen. I'd say it's good
41:10 → 41:12
Niklasas we have seen that Nvidia would not improve otherwise.
41:12 → 41:14
NiklasAnd now the Nouveau project has
41:14 → 41:16
Niklasfinally a documented GPU interface,
41:16 → 41:18
Niklaswith which they can do this re-clocking.
41:18 → 41:20
NiklasSince there is a
41:20 → 41:22
Niklashardware-related innovation, only from
41:22 → 41:24
NiklasTuring, i.e. if your Nvidia graphics card
41:24 → 41:26
Niklas2019 or later,
41:26 → 41:28
Niklasyou are well supported.
41:28 → 41:30
NiklasIf not, you have to
41:30 → 41:32
Niklaseither hope that your graphics card is already that old again,
41:32 → 41:34
Niklasthat the earlier Nouveau Code
41:34 → 41:36
Niklasfor re-clocking works,
41:36 → 41:38
Niklasor you have to stick with the proprietary graphics drivers.
41:40 → 41:42
NiklasThrough this new motivation,
41:42 → 41:44
Niklasthat re-clocking is possible,
41:44 → 41:46
Niklasthey finally started to
41:46 → 41:48
Niklaswith Vulkan drivers.
41:48 → 41:50
NiklasThis volcano driver is now
41:50 → 41:52
Niklasmerged into the Mesa project, since last year.
41:52 → 41:54
NiklasAnd since last November, it has even been
41:54 → 41:56
NiklasVulkan 1.3, i.e. the latest Vulkan standard,
41:56 → 41:58
Niklasfull compliant.
42:00 → 42:02
NiklasAnd Mesa 24.1 is
42:02 → 42:04
Niklascame out a few weeks ago.
42:04 → 42:06
NiklasThat means you could theoretically
42:06 → 42:08
Niklasuse the whole thing stably now.
42:08 → 42:10
NiklasOr?
42:12 → 42:14
NiklasBefore I show the demo of it,
42:14 → 42:16
Niklasa quick word about OpenGL.
42:16 → 42:18
NiklasMesa 24.1 is a driver,
42:18 → 42:20
Niklaswhich implements OpenGL based on Vulkan.
42:20 → 42:22
NiklasThat is, by now
42:22 → 42:24
Niklashave a Vulkan 1.3 compliant driver,
42:24 → 42:26
Niklasthe Nouveau driver is also automatic
42:26 → 42:28
NiklasOpenGL 4.6 and OpenGL ES 3.1 compliant,
42:28 → 42:30
Niklaswhich is a requirement for many compositors.
42:30 → 42:32
NiklasSo, then the final demo of the day.
42:36 → 42:38
NiklasWe use the Mesa 24.1 drivers,
42:38 → 42:40
Niklassince I'm using NixOS
42:40 → 42:42
Niklasand Mesa 24.1 had not yet been merged,
42:42 → 42:44
Niklasthat meant Mesa from scratch for me
42:44 → 42:46
Niklascompiling and all graphical applications
42:46 → 42:48
Niklasfrom scratch compilen, there was once Firefox underneath,
42:48 → 42:50
Niklastwo Electron, one WebKit GTK
42:50 → 42:52
Niklasand various other things.
42:52 → 42:54
NiklasAfter 8 hours, the whole thing was finally completed.
42:56 → 42:58
NiklasBut what I don't do for you.
42:58 → 43:00
NiklasSo.
43:08 → 43:10
NiklasI'll start again with KDE.
43:10 → 43:12
NiklasThis is now with the Nouveau drivers Mesa 24.1.
43:14 → 43:18
NiklasYou notice a bit of jerking,
43:18 → 43:20
Niklasthat is, the performance is not yet
43:20 → 43:22
Niklasarrived at the proprietary drivers,
43:22 → 43:24
Niklasbut we remember,
43:24 → 43:26
NiklasHardware video decoding is complicated.
43:26 → 43:28
NiklasThis is decoded on the CPU.
43:28 → 43:30
NiklasThat means we have a bottleneck here,
43:30 → 43:32
Niklasfor which Nouveau can't do anything for the time being.
43:32 → 43:34
NiklasOf course, they will work to
43:34 → 43:36
NiklasSupport video decoding,
43:36 → 43:38
Niklasbut it may not be the best use case for Nouveau.
43:38 → 43:40
NiklasEven if it is a practical use case,
43:40 → 43:42
Niklasbecause many people want to watch videos.
43:42 → 43:44
NiklasBut what we are actually interested in
43:44 → 43:46
NiklasOnce again briefly about the actual application.
43:46 → 43:48
NiklasElectron also works without any problems.
43:48 → 43:50
NiklasHere, too, I notice a bit of performance losses.
43:52 → 43:54
NiklasBut does Steam work?
43:54 → 43:56
NiklasSo does the Steam WebView work?
43:56 → 43:58
NiklasThat's the real question.
43:58 → 44:00
NiklasAnd yes, it renders without any problems.
44:00 → 44:02
NiklasWe can finally buy new games,
44:02 → 44:04
Niklaswithout being afraid,
44:04 → 44:06
Niklasthat somehow, no idea,
44:06 → 44:08
Niklashave clicked on the 4x DLC pack.
44:10 → 44:12
NiklasSo, if that's your main use case,
44:12 → 44:14
Niklasthen you are well advised to go with Nouveau.
44:14 → 44:16
NiklasWhat about games?
44:16 → 44:18
NiklasWe are still under KDE,
44:18 → 44:20
Niklasso memory, no explicit sync,
44:20 → 44:22
Niklasbut the Nouveau drivers support Implicit Sync,
44:22 → 44:24
Niklassince they are part of the Mesa drivers.
44:26 → 44:28
NiklasAnd unfortunately, the game crashed.
44:30 → 44:32
NiklasThat made me skeptical at first,
44:32 → 44:34
Niklasit was called Vulkan 1.3 compliant,
44:34 → 44:36
Niklasso I wanted to leave the terminal again
44:36 → 44:38
NiklasStart application that use Vulkan.
44:38 → 44:40
NiklasFirst of all, OpenGL works for sanity check.
44:40 → 44:42
NiklasIn short, that's over, exactly,
44:42 → 44:44
Niklasget nixpkgs,
44:44 → 44:46
Niklasyes, OpenGL works, without any problems,
44:46 → 44:48
NiklasI am good.
44:52 → 44:54
NiklasSo, then, exactly,
44:54 → 44:56
Niklasvkcube, which is the reference application,
44:56 → 44:58
Niklasto test Vulkan implementation,
44:58 → 45:00
Niklascrashes directly with a
45:00 → 45:02
NiklasSegmentation Fault.
45:02 → 45:04
NiklasSo if it cannot be determined
45:04 → 45:06
Niklaswhether we have Vulkan compliance,
45:06 → 45:08
Niklasif Vulkan is simply not loadable or something else.
45:08 → 45:10
NiklasAnd then another WebGPU application,
45:10 → 45:12
Niklaswe get a
45:12 → 45:14
NiklasDevice-out-of-memory error.
45:14 → 45:16
NiklasSo as of today Mesa 24.1
45:16 → 45:18
NiklasVulkan cannot be used
45:18 → 45:20
NiklasNouveau, even if he
45:20 → 45:22
Niklasperfect on paper
45:22 → 45:24
NiklasSpec-compliant.
45:26 → 45:28
NiklasAnd last but not least,
45:28 → 45:30
Niklasat the end of this presentation,
45:30 → 45:32
Niklaswhat about Sway?
45:34 → 45:36
NiklasBecause Sway supports
45:36 → 45:38
NiklasNouveau official, that is,
45:38 → 45:40
Niklasif you use a Nouveau driver,
45:40 → 45:42
Niklasyou can report bugs in the issue tracker
45:42 → 45:44
Niklasand you are allowed to ask questions.
45:44 → 45:46
NiklasSo, if we see glitches here now,
45:46 → 45:48
Niklasit is no longer our problem.
45:48 → 45:50
NiklasWe'll probably get caught in the crossfire somehow,
45:50 → 45:52
Niklasbecause the Sway developers will say,
45:52 → 45:54
Niklasno, the driver is to blame, report that to Mesa.
45:54 → 45:56
NiklasThe Mesa developers will say,
45:56 → 45:58
Niklasno, the compositor is to blame, report that to Sway.
45:58 → 46:00
NiklasBut it works surprisingly well overall.
46:00 → 46:02
NiklasIt works even more performantly than KDE.
46:02 → 46:04
NiklasWhat amazed me,
46:04 → 46:06
Niklasalso when playing videos,
46:06 → 46:08
Niklasit also works smoothly,
46:08 → 46:10
NiklasBut it went very well overall.
46:10 → 46:12
NiklasWe can also use Electron apps again,
46:12 → 46:14
Niklasand WebGL also works smoothly,
46:14 → 46:16
Niklaswe can use Electron apps again,
46:16 → 46:18
Niklaswe can drag VSCode stuff back and forth,
46:18 → 46:20
Niklaswithout graphic glitches,
46:20 → 46:22
Niklashere also with less stuttering than in KDE.
46:22 → 46:24
NiklasAnd the question,
46:24 → 46:26
Niklascan we start games?
46:26 → 46:28
NiklasWe can actually answer ourselves,
46:28 → 46:30
Niklasthat the answer is no,
46:30 → 46:32
Niklasbecause the Vulkan libraries have not
46:32 → 46:34
Niklasbetween Sway and KDE.
46:34 → 46:36
NiklasUnfortunately not.
46:36 → 46:40
NiklasBut if you only depend on OpenGL
46:40 → 46:42
Niklasand absolutely want to use Sway,
46:42 → 46:44
Niklasthen you can do that with Nouveau, as of today,
46:44 → 46:46
Niklasvery well.
46:46 → 46:48
NiklasSo, that's all,
46:48 → 46:50
NiklasWhat I wanted to show today.
46:50 → 46:52
NiklasAnd if you have any questions,
46:52 → 46:54
Niklasrepresents this
46:54 → 46:56
Niklaseither...
46:56 → 46:58
NiklasThese are the ones I have prepared if you have no questions. Back.
46:58 → 47:00
NiklasFeel free to ask them here and now,
47:00 → 47:02
Niklasor if you remember them later,
47:02 → 47:04
Niklascan you write me by e-mail, gpn22@korz.dev
47:04 → 47:06
Niklaswith "v" at the back, not ".de",
47:06 → 47:08
Niklasor write to Mastodon
47:08 → 47:10
Niklas@niklaskorz@rheinneckar.social
47:22 → 47:24
ModeratorHats off!
47:24 → 47:26
ModeratorI don't want to know
47:26 → 47:28
ModeratorHow long
47:28 → 47:30
Moderatoryou sat at this lecture.
47:30 → 47:32
ModeratorThank you so much for that!
47:32 → 47:34
ModeratorWho has questions?
47:34 → 47:44
AudienceFirst of all, thank you for this wonderful lecture.
47:44 → 47:48
AudienceIn fact, a week ago I met with a friend who wanted to switch to Linux.
47:49 → 47:52
AudienceAnd he wanted pain, chose Alpine Linux, just like me.
47:52 → 47:57
AudienceAnd yes, we had the problem that the proprietary driver doesn't run like that.
47:57 → 48:00
AudienceWe had a coding session of somehow ten hours.
48:00 → 48:06
AudienceI didn't quite get it right, but I now had two questions that also build on that.
48:07 → 48:13
AudienceFirst of all, a quick question of understanding, Explicit Sync, does it only affect Wayland or also X11?
48:15 → 48:22
NiklasAs far as I know, it only affects Wayland and also X11 applications under Wayland, i.e. Wayland and Xwayland.
48:22 → 48:25
AudienceOkay, and then the other question, which is perhaps more interesting.
48:25 → 48:28
AudienceYou talked about CUDA and the AMD equivalent.
48:29 → 48:30
AudienceYou hadn't mentioned HIP now.
48:31 → 48:31
AudienceI had found that once.
48:31 → 48:38
AudienceThis is this translation language that probably compiles natively for AMD and for Nvidia somehow.
48:39 → 48:40
AudienceWhat about that?
48:41 → 48:45
NiklasSo since I left university, I don't write GPU computing code myself anymore.
48:45 → 48:48
NiklasThis means that I mainly use libraries that already exist.
48:48 → 48:51
NiklasThat means that the first thing that is relevant for me is which library is best supported.
48:51 → 48:52
NiklasMostly CUDA.
48:52 → 48:56
NiklasI used HIP in at least one lecture.
48:57 → 48:59
NiklasIn contrast to CUDA, it is very C++-specific,
49:00 → 49:04
Niklasbecause, as far as I know, the kernels are developed directly in the C++ code.
49:04 → 49:08
NiklasOf course, CUDA is also C++ specific, because we have to write C++.
49:08 → 49:12
NiklasBut we can then also load it again as a CUDA kernel in other applications.
49:13 → 49:14
NiklasI'm curious to see where the journey will go.
49:15 → 49:18
NiklasI don't know if HIP is a better solution than Vulkan Compute.
49:19 → 49:20
NiklasI'm too out of it now.
49:26 → 49:30
AudienceYou mentioned screen tearing and V-Sync.
49:30 → 49:31
AudienceWhat about G-Sync?
49:32 → 49:35
NiklasG-Sync is now supported out of the box.
49:35 → 49:35
AudienceWhat does out of the box mean?
49:36 → 49:40
NiklasAs far as I know, you have to, so I did it, you have to set an environment variable.
49:42 → 49:45
NiklasI can also show it briefly when I find my browser.
49:48 → 49:54
NiklasSo I have set the __GL_GSYNC_ALLOWED=1 and __GL_VRR_ALLOWED=0 for OpenGL.
49:54 → 49:58
NiklasI'm not absolutely sure if they're necessary, but G-Sync definitely works with them.
49:58 → 50:00
NiklasAnd FreeSync is now also supported.
50:00 → 50:01
NiklasSo G-Sync compatible.
50:01 → 50:06
NiklasAnd even under AMD graphics cards, you can now use variable refresh rate under Wayland without any problems.
50:09 → 50:16
AudienceTo what extent are there problems on older Nvidia GPUs compared to newer ones?
50:16 → 50:21
AudienceWell, I think you had already mentioned an example with this new RISC chip.
50:21 → 50:27
AudienceBut are there any other problems that occur mainly with older GPUs, but not with newer ones?
50:28 → 50:30
NiklasWith older GPUs, it is sometimes the case that the GPUs are no longer as good.
50:30 → 50:34
NiklasIt is sometimes even the case that you should only use Nouveau or maybe even Nouveau.
50:35 → 50:40
NiklasThis is because Nvidia no longer supports older GPUs that are supported by Nouveau.
50:40 → 50:45
NiklasAs far as I know, Nouveau can be used if you have a graphics card before the 900 series.
50:46 → 50:50
NiklasAnd be used again with reclocking if you have a graphics card from the 2000 series.
50:50 → 50:57
NiklasThis means especially if you have the GTX 970, 980 or GTX 1050 to 1080 in this 900,
50:57 → 51:00
Niklasthen you are dependent on the proprietary drivers.
51:00 → 51:06
AudienceThank you very much for the lecture.
51:06 → 51:12
AudienceWhat didn't quite come across yet, as far as I know, is the Vulkan driver, which is now new to the Mesa project,
51:12 → 51:15
Audiencefor now focuses only on feature completeness and is just not yet optimized.
51:15 → 51:18
AudienceThat's why I tried it out this week, it was also quite funny.
51:19 → 51:23
AudienceIt worked better for me, but still had very strong performance losses.
51:23 → 51:25
AudienceBut that will very likely get better in the future.
51:26 → 51:30
NiklasExactly, so of course it is logical that you first come to full compliance.
51:30 → 51:38
NiklasNow that compliance with Vulkan 1.3 has been achieved, the first thing to do is to fix bugs, such as these segmentation faults, and work on performance.
51:39 → 51:42
NiklasI don't know if we can assume that we have a 1-to-1 performance in the long term,
51:42 → 51:47
Niklasbut I'm sure we can get into the range of 80% performance of proprietary drivers in the next two years.
51:51 → 51:54
ModeratorOkay, no more questions from the audience?
51:56 → 51:58
ModeratorThen thank you very much.
51:58 → 51:58
ModeratorThank you very much.
51:58 → 52:02
ModeratorI wish I had the time to deal with a topic so intensively at some point.
52:03 → 52:05
ModeratorThank you so much for your work and effort.
52:05 → 52:07
ModeratorThank you very much.