03:53tpkarras: hey. long time IRC user, first time I used IRC in 15 years
03:53tpkarras: forgive me if I'm rusty
03:53tpkarras: I own a NVIDIA RTX 4090 computer. I run windows
03:54tpkarras: I would like to learn how to be able to contribute to development
03:55tpkarras: I have coded PHP projects and have a lot of experience in command line debian, I have dabbled with Java And
03:55tpkarras: as well...
03:57tpkarras: off-topic but is goguma a better IRC client then what I'm using?
03:57tpkarras: *than
03:59mangodev[d]: one good way i can think of to contribute right off the bat is to be a tester
04:00tpkarras: does it work with the 4090 though?
04:00mangodev[d]: since a good amount bugs are found through user bug testing
04:00mangodev[d]: tpkarras: depends on what you mean by "it"
04:00tpkarras: sorry, the driver
04:01mangodev[d]: ohh i forgot this is the nvk channel
04:01mangodev[d]: my bad
04:01mangodev[d]: well
04:01mangodev[d]: nouveau
04:01mangodev[d]: this is the nouveau and nvk channel
04:01mangodev[d]: though zink also gets roped into here every now and then
04:01tpkarras: I know I can use proprietary NVIDIA drivers but I really don't want to if I install Linux
04:01tpkarras: I am impressed with how AMD and Intel are making drivers
04:01tpkarras: open source
04:01mangodev[d]: i can agree as someone using nvk on linux
04:02mangodev[d]: it's nicer in some areas
04:02tpkarras: but not NVIDIA who wants to keep everything in house
04:02mangodev[d]: but there's still stability fixes and performance improvements that need to be made
04:02tpkarras: can I post a link to my GitHub profile?
04:03tpkarras: I'm asking because again, this is my first time using IRC in 15 years
04:03mangodev[d]: yeah, understandable
04:03mangodev[d]: the problem is that effectively the entire codebase is not in those languages
04:04tpkarras: I'm down to learn
04:04mangodev[d]: it's a mix of C, Python for compile stuff, C++ if you're intel and weird, and Rust for newer drivers like NVK
04:05tpkarras: I made Mirror2RearUltra which involved a lot of Reflection work
04:06mangodev[d]: object-oriented programming doesn't have a ton of place in the codebase afaik
04:06mangodev[d]: *maybe* in some of the rust areas, but
04:06mangodev[d]: 1. rust makes up a minority of the codebase
04:06mangodev[d]: 2. rust's OOP paradigm is moderately different from C++
04:06mangodev[d]: 3. i'm unsure how treatment around OOP is with mesa devs
04:07mangodev[d]: afaik, it's generally not preferred, but i may try asking an active mesa dev on how object-oriented programming is treated in the codebase, and actually active areas to contribue
04:07mangodev[d]: *contribute
04:07tpkarras: @mangodev[k] do you mind if I post a link to my GitHub?
04:08tpkarras: oops
04:08tpkarras: @mangodev[d]
04:12mangodev[d]: tpkarras: i'm not an admin here
04:12tpkarras: I'm just asking because I'm not sure of what is allowed or not allowed
04:12tpkarras: I would like to share what I've done
04:13mangodev[d]: i hope gfxstrand[d] doesn't mind a ping, she's pretty much the project leader afaik
04:13mangodev[d]: i forget if she's an admin here or not, but she can definitely help with stuff to do with nvk and maybe nouveau
04:14mangodev[d]: although i highly doubt most people will be able to contribute to the part of nouveau that matters right now
04:14mangodev[d]: unless you have prior experience in reverse engineering and nvidia hardware
04:15tpkarras: I looked through the chat logs, there needs to be more people interested in developing this than I.
04:15tpkarras: I have some experience, not a lot but some
04:15tpkarras: fiddling around with IDA64
04:15tpkarras: don't know how to use it but I do have it
04:15mangodev[d]: i'd love to contribute to NVK, which is the baby right now
04:16tpkarras: https://github.com/tpkarras
04:16mangodev[d]: i think Zink would be the best driver to contribute to, as it helps a ton of drivers at once, and has a lot of work to be done on it
04:16mangodev[d]: it's written in plain C afaik
04:16tpkarras: if you're interested in taking a dive
04:17tpkarras: @mangodev[d] so what's the thing written in plain C?
04:17mangodev[d]: zink
04:17tpkarras: I might want to take a look
04:17mangodev[d]: it's what NVK uses for OpenGL support
04:17mangodev[d]: a ton of other drivers use it too though
04:18tpkarras: what can and can't Zink do with a RTX 4090?
04:19mangodev[d]: off the top of my head
04:19mangodev[d]: turnip and kosmickrisp already use it
04:19mangodev[d]: windows and android platforms can use it
04:19tpkarras: to get an idea of where to look
04:19mangodev[d]: tpkarras: zink is an opengl→vulkan conversion layer
04:19mangodev[d]: it does work on prop. nv, but it can be a little finnicky there (last time i tried)
04:20mangodev[d]: although i've heard of people using it on windows
04:20mangodev[d]: and is one of the few mesa drivers with windows support
04:20mangodev[d]: if you have a Windows for ARM laptop, you can try contributing to the DX12 driver
04:20mangodev[d]: but that's 99% microsoft devs
04:21mangodev[d]: it's kind of just a microsoft project implanted in the middle of mesa
04:21mangodev[d]: might as well bring up mediafoundation, but that's 100% microsoft, as they're the only ones that know how to use it and what to improve with it
04:21mangodev[d]: it is undocumented on the mesa docs
04:22mangodev[d]: if you have a rooted phone, you may be able to test turnip
04:23mangodev[d]: and *maybe* panvk
04:23mangodev[d]: panvk is stupidly active, gfxstrand is also the lead dev there to my knowledge
04:24mangodev[d]: she takes breaks from bashing her head on NVK to bash her head on PanVK instead
11:37butterflies[d]: mangodev[d]: Turnip doesn't need rooting to be used
11:37butterflies[d]: quite a number of android gamers using it for emulation purposes
11:40rgiuse: Ola
11:43rgiuse: I fixed a problem for the GK208B Nvidia Card (GT710): the initialization was broken the card support scdc channel but the implementation is missing.
11:44rgiuse: diff '--color=auto' -ur a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c
11:44rgiuse: --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c 2025-11-30 23:42:10.000000000 +0100
11:44rgiuse: +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c 2026-01-16 19:03:51.175827296 +0100
11:44rgiuse: @@ -106,6 +106,7 @@
11:44rgiuse: const struct nvkm_ior_func_hdmi
11:44rgiuse: gk104_sor_hdmi = {
11:44rgiuse: .ctrl = gk104_sor_hdmi_ctrl,
11:44rgiuse: + .scdc = gm200_sor_hdmi_scdc,
11:44rgiuse: .infoframe_avi = gk104_sor_hdmi_infoframe_avi,
11:44rgiuse: .infoframe_vsi = gk104_sor_hdmi_infoframe_vsi,
11:44rgiuse: };
11:56rgiuse: This patch fix the card initialization and fix audio problem on mine card GK208B
11:56rgiuse: the code path is shared by nouveau/nvkm/engine/device/base.c- .name = "GK110",
11:57rgiuse: nouveau/nvkm/engine/device/base.c- .name = "GK110B",
11:57rgiuse: nouveau/nvkm/engine/device/base.c- .name = "GK208B",
11:57rgiuse: nouveau/nvkm/engine/device/base.c- .name = "GK208",
12:00rgiuse: This patch revert the old behaviour if the implementation is missing don't broke anymore but emit a DBG log message:
12:00rgiuse: diff '--color=auto' -ur a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
12:00rgiuse: --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c 2025-11-30 23:42:10.000000000 +0100
12:00rgiuse: +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c 2026-01-17 01:27:34.150245394 +0100
12:00rgiuse: @@ -819,9 +819,11 @@
12:00rgiuse: ret = nvif_outp_hdmi(&nv_encoder->outp, nv_crtc->index, true, max_ac_packet, rekey,
12:00rgiuse: mode->clock, hdmi->scdc.supported, hdmi->scdc.scrambling.supported,
12:00rgiuse: hdmi->scdc.scrambling.low_rates);
12:00rgiuse: - if (ret)
12:00rgiuse: + if (ret < 0) {
12:00rgiuse: + NV_ERROR(drm, "Failure setting HDMI: %d\n", ret);
12:00rgiuse: return;
12:00rgiuse: -
12:00rgiuse: + }
12:00rgiuse: +
12:00rgiuse: /* AVI InfoFrame. */
12:00rgiuse: args->version = 0;
12:01rgiuse: args->head = nv_crtc->index;
12:01rgiuse: diff '--color=auto' -ur a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c
12:01rgiuse: --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c 2025-11-30 23:42:10.000000000 +0100
12:01rgiuse: +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c 2026-01-17 01:20:03.670240977 +0100
12:01rgiuse: @@ -253,8 +253,7 @@
12:01rgiuse:
12:01rgiuse: if (!ior->func->hdmi ||
12:01rgiuse: args->v0.max_ac_packet > 0x1f ||
12:01rgiuse: - args->v0.rekey > 0x7f ||
12:01rgiuse: - (args->v0.scdc && !ior->func->hdmi->scdc))
12:01rgiuse: + args->v0.rekey > 0x7f)
12:01rgiuse: return -EINVAL;
12:01rgiuse:
12:01rgiuse: if (!args->v0.enable) {
12:01rgiuse: @@ -266,6 +265,11 @@
12:01rgiuse:
12:01rgiuse: ior->func->hdmi->ctrl(ior, args->v0.head, args->v0.enable,
12:01rgiuse: args->v0.max_ac_packet, args->v0.rekey);
12:01rgiuse: +
12:01rgiuse: + if (args->v0.scdc && !ior->func->hdmi->scdc)
12:01rgiuse: + OUTP_DBG(outp, "SCDC enabled: %d, ior->func->hdmi->scdc not implemented (ior): %p",
12:01rgiuse: + args->v0.scdc, ior);
12:01rgiuse: +
12:01rgiuse: if (ior->func->hdmi->scdc)
12:01rgiuse: ior->func->hdmi->scdc(ior, args->v0.khz, args->v0.scdc, args->v0.scdc_scrambling,
12:01rgiuse: args->v0.scdc_low_rates);
12:03rgiuse: the problem was tracked by https://bugzilla.kernel.org/show_bug.cgi?id=219561
12:04rgiuse: and https://gitlab.freedesktop.org/drm/nouveau/-/issues/402
12:07rgiuse: This problem broke nouveau in many old nvidia card.
12:34marysaka[d]: Could you send them on the mailing lists?
13:52rgiuse: I'm trying. Configuring mutt to sent an useful email patch in the mailing list is an interesting task!
13:54rgiuse: Is the correct mailinglist address nouveau@lists.freedesktop.org?
17:49rgiuse: Sent