06:01fdobridge: <gfxstrand> WTF! NVK+Zink just passed the EGL tests
06:10fdobridge: <gfxstrand> GLES2 and no hangs...
06:10fdobridge: <gfxstrand> Actually... two faults. But those might be EGL tests that are supposed to fault.
06:10fdobridge: <gfxstrand> I should go to bed and check the results in the morning.
12:15fdobridge: <zmike.> somewhat sure the buffer age ones were the only ones that failed
12:15fdobridge: <zmike.> they were historically hard to fix though
12:32fdobridge: <karolherbst🐧🦀> some user want to use nvk with their `GeForce GT 610`
12:32fdobridge: <karolherbst🐧🦀> :blobcatnotlikethis:
12:39fdobridge: <magic_rb.> how much of what makes a modern GPU is the 610 generation missing at this point?
12:40fdobridge: <rhed0x> biggest problem is probably the GSP?
12:40fdobridge: <Sid> nah
12:41fdobridge: <karolherbst🐧🦀> speed mostly
12:41fdobridge: <karolherbst🐧🦀> it's a slow GPU, and I mean slow
12:42fdobridge: <Sid> the problem is missing hardware support for vulkan too, iirc
12:42fdobridge: <Sid> but
12:42fdobridge: <karolherbst🐧🦀> maybe around 5% of the RTX 1650?
12:42fdobridge: <Sid> I could be wrong
12:42fdobridge: <magic_rb.> i used to have a 650 ti boost in my desktop and a 610 i think in my laptop, used to play stalker ogse on proprietary drivers using wined3d back in the day, those were the days lmao
12:42fdobridge: <Sid> GTX*
12:42fdobridge: <karolherbst🐧🦀> and that's with full clcoks
12:42fdobridge: <karolherbst🐧🦀> the 650 is probably 10x as fast
12:42fdobridge: <magic_rb.> oh ok oof
12:43fdobridge: <karolherbst🐧🦀> ehh.. not 10x, but like 7x 😄
12:43fdobridge: <Sid> yeah Fermi doesn't have hardware support for vulkan
12:43fdobridge: <Sid> so
12:43fdobridge: <Sid> .-.
12:43fdobridge: <magic_rb.> so its like the gt610 just being slow even in its own generation
12:43fdobridge: <karolherbst🐧🦀> but in any case
12:43fdobridge: <karolherbst🐧🦀> we can't change the clocks on fermi
12:43fdobridge: <karolherbst🐧🦀> sooo...
12:43fdobridge: <karolherbst🐧🦀> and fermi booted with like 50mhz 😄
12:43fdobridge: <rhed0x> i thought fermi still could be reclocked
12:43fdobridge: <karolherbst🐧🦀> nah
12:43fdobridge: <karolherbst🐧🦀> well
12:43fdobridge: <karolherbst🐧🦀> it could if we would have the code for it
12:43fdobridge: <karolherbst🐧🦀> which we don't
12:44fdobridge: <magic_rb.> how much of it would have to be done in software? as in, what missing? cause i never actually understood why is hardware support required for vulkan/opengl4.6/dx12
12:44fdobridge: <Sid> that's a question for karol
12:44fdobridge: <Sid> or maybe faith
12:44fdobridge: <karolherbst🐧🦀> it's uhm..
12:44fdobridge: <Sid> or maybe mike
12:44fdobridge: <zmike.> @gfxstrand is there a reason why `borderColorSwizzleFromImage` is not supported? zink requires this
12:44fdobridge: <rhed0x> vulkan requires specific features and if the hardware cant do those, theres not much you can
12:44fdobridge: <rhed0x> vulkan requires specific features and if the hardware cant do those, theres not much you can do (edited)
12:44fdobridge: <karolherbst🐧🦀> something with how texturing is done on fermi really sucks
12:45fdobridge: <karolherbst🐧🦀> even in gl we don't enable bindless textures on fermi
12:45fdobridge: <magic_rb.> whats a bindless texture
12:46fdobridge: <rhed0x> normally you need to bind textures before every draw with bindless textures you can basically access all of them in the shader without binding them every time
12:46fdobridge: <rhed0x> normally you need to bind the textures you want to use before every draw with bindless textures you can basically access all of them in the shader without binding them every time (edited)
12:46fdobridge: <magic_rb.> oh okay that makes sense, i really should actually learn graphics programming and how gpus work, never managed to find the motivation and/or time
12:46fdobridge: <magic_rb.> and im still not studying for the damn exam
12:47fdobridge: <magic_rb.> 😭
12:53fdobridge: <!DodoNVK (she) 🇱🇹> Which WineD3D now uses
12:54fdobridge: <nanokatze> 610 and 650 are very different gens and 610 doesn't support lots of features
12:54fdobridge: <nanokatze> 610 is GF and 650 is GK
12:54fdobridge: <magic_rb.> Fermi vs Kepler or subgens of fermi
12:54fdobridge: <magic_rb.> I only know the marketing terms as of now
12:54fdobridge: <nanokatze> fermi vs kekler yes
12:54fdobridge: <magic_rb.> Ah makes sense
12:55fdobridge: <nanokatze> thank you gpu vendors very cool
12:56fdobridge: <nanokatze> not sure why people brought up bindless textures, a gpu without those could still be useful, e.g. dxvk doesn't require that feature
12:56fdobridge: <nanokatze> but yes that's definitely old and slow
12:58fdobridge: <ahuillet> ?
12:59fdobridge: <nanokatze> this was the question
12:59fdobridge: <nanokatze> this was one of the responses
12:59fdobridge: <nanokatze> to me it read like "fermi doesn't have bindless, therefore you can't implement vk on it"
12:59fdobridge: <magic_rb.> that is what i read too
13:00fdobridge: <Sid> fermi doesn't have hardware support for some stuff required for vk
13:00fdobridge: <Sid> which is why you can't implement vk on it
13:00fdobridge: <nanokatze> which though
13:00fdobridge: <Sid> whether or not bindless is a part of it, I do not know
13:00fdobridge: <Sid> ¯\_(ツ)_/¯
13:00fdobridge: <nanokatze> I'm not sure that's true
13:00fdobridge: <nanokatze> whether it's worthwhile to implement vk on that is its own question though
13:01fdobridge: <magic_rb.> afaik you can always do it on the cpu side, it might just be slow as hell
13:01fdobridge: <nanokatze> well, it's kinda implied that you'd do your damnest hardest to use the gpu the way it's meant to be used™️
13:02fdobridge: <Sid> well, right now there's not a single vulkan driver for fermi
13:02fdobridge: <Sid> so all the best :D
13:03fdobridge: <!DodoNVK (she) 🇱🇹> <https://youtu.be/vxNnUvdotA8?t=8m21s>
13:16fdobridge: <nanokatze> so why was the "?" 🐸
13:28fdobridge: <redsheep> I don't know about the texturing, but in the past Faith explained that lack of certain ordering guarantees with Fermi and Kepler make vulkan memory model practically impossible. If the hardware is hard to reclock, slow in the first place, and could never get to vulkan 1.3, that doesn't seem worth the effort for either one.
13:32fdobridge: <nanokatze> probably another compounding factor is that there's only 0.5 people in existence that would actually use it
13:44fdobridge: <pac85> What does the Kepler isa look like?
13:44fdobridge: <pac85> Is it anything like the modern one?
14:13fdobridge: <gfxstrand> I'm pretty sure you can implement Vulkan on Fermi. The question is whether or not it's worth it.
14:13fdobridge: <karolherbst🐧🦀> well..
14:14fdobridge: <karolherbst🐧🦀> how much sense would it make without bindless images?
14:15fdobridge: <rhed0x> the trick is to bait @triang3l into doing it 🐸
14:17fdobridge: <zmike.> nobody has the time to review those comments
14:21fdobridge: <nanokatze> @ Rhedox react with pregnant frog to zmike's comment
14:24fdobridge: <gfxstrand> I've implemented Vulkan on plenty of non-bindless hardware. It's not that hard.
14:26fdobridge: <pac85> Would that involve like assigning slots to descriptors during pipeline creation?
14:26fdobridge: <rhed0x> do i look like someone with discord nitro?
14:26fdobridge: <!DodoNVK (she) 🇱🇹> 🔺 is only an ATI/AMD expert right now
14:27fdobridge: <pac85> Anyway I'd decide based on the number of users interested maybe
14:28fdobridge: <marysaka> I still have my GT 440 around but why would we want a Vulkan driver on Fermi anyway...?
14:31fdobridge: <magic_rb.> For the same reason as on an gen, if enough people want to use it. Id want good support on my 1060 but i know its not gonna happen probably ever.
14:31fdobridge: <magic_rb.> Idk how many people there are that are still on fermi/kepler, since not even nvidia proprietary supports those
14:31fdobridge: <magic_rb.> And the question is whether software vulkan/opengl would be faster anyway on modern cpus lol
14:33fdobridge: <ahuillet> no, absolutely not
14:33fdobridge: <ahuillet> that one is easy :)
14:33fdobridge: <redsheep> While the steam hardware survey is imperfect I think it's notable that the only Fermi and Kepler cards still popular enough to get listed are the gt 710 and 730, which vary on being Fermi or Kepler.
14:33fdobridge: <magic_rb.> :)
14:33fdobridge: <redsheep> I don't think either gen is worth thinking about much.
14:35fdobridge: <triang3l> Aside from bindless, how huge would shader compiler differences be? As far as I understand, Fermi has a completely different scheduling model, it's more like just scalar, though I don't know
14:38fdobridge: <triang3l> But yeah, non-bindless is trivial, especially if each shader stage has its own binding spaces, in which case it maps directly to Vulkan pipeline layout compatibility
14:40fdobridge: <triang3l> though I don't know if that's the case on Nvidia
14:41fdobridge: <triang3l> at least on Nvidia because there's virtual memory you don't have to care about whether each descriptor is statically used also, but that's ez anyway still
14:41fdobridge: <redsheep> Has anyone tested performance now that the control flow MR is in main? That would be expected to cut down on some of the stalling, right?
14:42fdobridge: <triang3l> at least on Nvidia because there's virtual memory you don't have to care about whether each descriptor is statically used also, but that's ez anyway still (though for optimization you'd still like to skip them) (edited)
14:42fdobridge: <triang3l> at least on Nvidia because there's virtual memory you don't have to care about whether each descriptor is statically used also, but that's ez anyway still (though for optimization you'd still like to skip updating unused ones) (edited)
15:05fdobridge: <gfxstrand> 🤷🏻♀️ They're all supported by codegen so probably not intractable.
15:05fdobridge: <gfxstrand> As long as it's still PTX-like, it's probably fine.
15:06fdobridge: <gfxstrand> It should get us better re-convergence which should help shaders with loops a bit.
15:06fdobridge: <gfxstrand> It fixed Genshin Impact's rendering issues.
15:09fdobridge: <redsheep> Ok I can't reboot for that now but I'll probably see if it moved the needle tonight
15:16fdobridge: <georgeouzou> I'm playing with VK_EXT_descriptor_buffer. All buffer / texture descriptors seem to work ok, but texel buffers need some tricks to work. Lowering texelfetch to load_global_constant works but it's a little ugly as I am doing all format conversions in nir shader code
15:20fdobridge: <gfxstrand> Yup! Welcome to EDB hell.
15:20fdobridge: <!DodoNVK (she) 🇱🇹> Extended Dynamic Buffer?
15:21fdobridge: <pac85> Ext descriptor buffer prob
15:23fdobridge: <magic_rb.> Do new vulkan versions drop extensions? Or is additive only. As if extensions keep getting added for random stuff, itll just get way too bloated to implement
15:23fdobridge: <magic_rb.> Do new vulkan versions drop extensions? Or is it additive only. As if extensions keep getting added for random stuff, itll just get way too bloated to implement (edited)
15:24fdobridge: <magic_rb.> Do new vulkan versions drop extensions? Or is it additive only. Because if extensions keep getting added for random stuff, itll just get way too bloated to implement (edited)
15:25fdobridge: <georgeouzou> Some might get promoted to core
15:26fdobridge: <georgeouzou> And then deprecated
15:27fdobridge: <triang3l> Is there any theoretical possibility of implementing it "as intended", by the way? I forgot what the issue was… can you treat descriptors as indices for non-EDB, and as views for EDB, or is that boundary crossed somewhere in an inconvenient way?
15:29fdobridge: <georgeouzou> Texture Descriptors live in a huge table . That can be instead be used as a descriptor buffer , but some things like meta code is hard to implement I think
15:29fdobridge: <triang3l> From what I understand, the extensions that are deprecated are some really cursed stuff normally, like GLSL shaders, while promotion is a special kind of the "deprecation state", but not actually deprecated
15:30fdobridge: <georgeouzou> The proprietary driver seems to use indices to the table instead
15:30fdobridge: <triang3l> But I think you may be able to not bother exposing promoted extensions as extensions on older versions, though I think [everyone would dislike that] among application developers
15:31fdobridge: <georgeouzou> The proprietary driver seems to use indices to the table instead for the descriptor_buffer extension (edited)
15:31fdobridge: <triang3l> Ah, nowhere to place meta descriptors?
15:32fdobridge: <triang3l> and having to maintain two versions of meta shaders for EDB and non-EDB?
15:33fdobridge: <triang3l> pain, though Nvidia's DMA engine is powahful AFAIK, but not sure how much in reality
15:33fdobridge: <georgeouzou> You cannot switch tables without a cache flush and shader instructions use indices to a table for texture instructions
15:34fdobridge: <georgeouzou> I may miss something but this is what I understood
15:35fdobridge: <georgeouzou> You cannot switch tables without a cache flush and texture instructions use indices to a table to sample/fetch (edited)
15:35fdobridge: <georgeouzou> You cannot switch tables without a cache flush and texture instructions use indices to the descriptor table to sample/fetch (edited)
15:46fdobridge: <gfxstrand> I've been rolling it around in my brain for a while.
15:46fdobridge: <gfxstrand> I think binding the actual heap is possible but tricky
15:49fdobridge: <zmike.> disregard, this is just the profile being wrong...
15:54fdobridge: <gfxstrand> And... it randomly dies on KHR-GLES3.core.constant_expressions.basic_clamp_float_vertex for no obvious reason. 😩
15:56fdobridge: <gfxstrand> I kinda wonder if I'm fighting that old fencing issue
16:00fdobridge: <triang3l> VM_BIND some 2^20 - 10^6 descriptors in all descriptor buffers to the same BO containing meta descriptors :happy_gears:
16:00fdobridge: <triang3l> or still has inconvenient overhead?
16:01fdobridge: <gfxstrand> Yeah, that's roughly the plan I had.
16:01fdobridge: <triang3l> though switching the meta descriptor sub-heaps would be _pain_ maaaybe
16:01fdobridge: <gfxstrand> For the sub-heap, we'd probably allocate as late as possible and DMA them in
16:02fdobridge: <gfxstrand> As long as you're stalling every 100'th blit and not every blit, it's fine.
16:04fdobridge: <georgeouzou> Thats the plan!
16:04fdobridge: <!DodoNVK (she) 🇱🇹> Is descriptor_buffer possible pre-GCN?
16:05fdobridge: <triang3l> Not even update after bind is due to tiny binding count limits 😿
16:05fdobridge: <triang3l> although the concept of update-after-bind descriptors is probably possible if you patch command buffers right before submitting :blobcatnotlikethis:
16:05fdobridge: <gfxstrand> Yeah, pre-GCN is stuck on the good ol' Vulkan 1.0 binding model.
16:05fdobridge: <gfxstrand> Yeah, patching seems very not worth it
16:06fdobridge: <dadschoorse> pre-GCN doesn't matter
16:06fdobridge: <gfxstrand> That's what I keep trying to tell people about pre-Turing but then someone wants NVK to run on a 610. 🙃
16:07fdobridge: <triang3l> I just want to play the Quake 2 remaster, Doom 64, and Serious Sam Fusion 2017 :xenia_cry:
16:07fdobridge: <dadschoorse> pascal and even maxwell are still usable perf-wise, pre-gcn isn't
16:07fdobridge: <pac85> Would it be possible to slap the meta descriptors in the heap itself? The meta descriptor would be reintepreted as a garbage descruptor if it where to be touched but I presume the hw doesn't care what's in it so long as nobody tries to use that particular descriptor right?
16:07fdobridge: <triang3l> on a boomer graphics card
16:08fdobridge: <mohamexiety> not on nouveau though, and iirc even on properietary it's not very usable on linux because dxvk/vkd3d destroy perf too much
16:08fdobridge: <dadschoorse> dxvk on pascal isn't bad
16:09fdobridge: <magic_rb.> My 1060 is still completely fine, 1080 medium settings, works for most gamrs
16:09fdobridge: <magic_rb.> My 1060 is still completely fine, 1080 medium settings, works for most games (edited)
16:10fdobridge: <nanokatze> EXT buffer device address is deprecated
16:10fdobridge: <triang3l> I'll have to patch something anyway because DISPATCH_INDIRECT is totally broken in the kernel driver version from 2018 :blobcatnotlikethis:
16:10fdobridge: <mohamexiety> oh. I see, what I heard gave me the impression it was much worse than that
16:10fdobridge: <triang3l> I'll have to patch something anyway because DISPATCH_INDIRECT argument buffer relocation is totally broken in the kernel driver version from 2018 :blobcatnotlikethis: (edited)
16:11fdobridge: <mohamexiety> my pascal is a 1030 so not the best judge of... anything, really here :blobcatnotlikethis:
16:11fdobridge: <magic_rb.> Yeah it may dip, it may run at not 60 but like, still very much usable for the witcher, dying light 1/2, arma, probably even baldurs gate
16:11fdobridge: <triang3l> but yeah, relaxing the descriptor validity requirement from statically used to dynamically used would also require some handling
16:12fdobridge: <triang3l> like holding a list of descriptors referencing each texture/buffer and invalidating them when the latter is destroyed
16:12fdobridge: <nanokatze> it's more or less fine for drivers, you should be worried about people working on VVL
16:12fdobridge: <triang3l> like holding lists of descriptors referencing each texture/buffer and invalidating them when the latter is destroyed (edited)
16:13fdobridge: <magic_rb.> Whats vvl
16:13fdobridge: <nanokatze> vulkan validation layer
16:13fdobridge: <mohamexiety> validation layers
16:13fdobridge: <nanokatze> they should rename it to just layer because it's a single layer now
16:14fdobridge: <nanokatze> hasn't been layers in years
16:14fdobridge: <triang3l> I don't even know what to do with "emulated" buffer device address with implicit sync btw
16:14fdobridge: <nanokatze> just don't
16:14fdobridge: <triang3l> since lots of BOs potentially not actually touched by the shaders will be referenced in every submission
16:15fdobridge: <nanokatze> accept that buffer device address wins and memescale loses
16:15fdobridge: <nanokatze> (loses buffer device address)
16:15fdobridge: <triang3l> since lots of BOs potentially not actually touched by the shaders will be referenced in every submission, and vkFreeMemory will probably have to wait a lot spuriously (edited)
16:16fdobridge: <pac85> Poor triangle
16:16fdobridge: <pac85> But everyone is right
16:16fdobridge: <nanokatze> ye, everyone is always right
16:17fdobridge: <triang3l> maybe on windows :nope_gears:
16:17fdobridge: <pac85> Poor triangel (edited)
16:17fdobridge: <pac85> STOP IMMEDIATELY
16:17fdobridge: <nanokatze> yes do it
16:17fdobridge: <triang3l> though it has implicit sync for mapping BOs
16:18fdobridge: <pac85> Why
16:18fdobridge: <triang3l> maaaybe that's even the only real way of GPU>CPU sync on Vista, I don't even know
16:18fdobridge: <nanokatze> those entire 1/3 memescale users will enjoy it
16:18fdobridge: <nanokatze> on windows
16:18fdobridge: <triang3l> though it has implicit sync for mapping BOs at least (edited)
16:18fdobridge: <pac85> One of them is triangel
16:18fdobridge: <nanokatze> those entire 0.5 memescale users will enjoy it (edited)
16:18fdobridge: <triang3l> Xi3 Piston users
16:19fdobridge: <nanokatze> I had to actually look wtf that is
16:19fdobridge: <nanokatze> I had to actually look up wtf that is (edited)
16:19fdobridge: <pac85> OK let's trigger nano
16:19fdobridge: <pac85> Vulkan a ps3 when
16:19fdobridge: <triang3l> a Steam Machine that apparently lost Volvo's blessing :blobcatnotlikethis:
16:19fdobridge: <pac85> SPUs as asynchronous compute queue
16:20fdobridge: <nanokatze> :shocked:
16:20fdobridge: <!DodoNVK (she) 🇱🇹> I actually have a HD 4350 in a basement
16:21fdobridge: <pac85> :frog_ancient:
16:21fdobridge: <nanokatze> that'd be your only option for compute
16:22fdobridge: <triang3l> mandatory LDS caching for global accesses :blobcatnotlikethis:
16:22fdobridge: <pac85> So you'd have 3 ISAs for vertex fragment and compute
16:22fdobridge: <triang3l> mandatory LDS caching for global memory accesses :blobcatnotlikethis: (edited)
16:22fdobridge: <triang3l> mandatory manual LDS caching for global memory accesses :blobcatnotlikethis: (edited)
16:22fdobridge: <pac85> So you'd have 3 different ISAs for vertex fragment and compute (edited)
16:22fdobridge: <nanokatze> it doesn't have to be mandatory, you can implement smt/coroutines + software cache, I read a cell rt paper from 2005 that did that
16:22fdobridge: <nanokatze> very un-unified
16:22fdobridge: <nanokatze> extremely even\
16:23fdobridge: <pac85> Extremely uneven*
16:24fdobridge: <!DodoNVK (she) 🇱🇹> And an even older GPU in the first PC I used
16:24fdobridge: <pac85> I thought you where like younger than me
16:24fdobridge: <pac85> Why do you have ancient hw
16:26fdobridge: <gfxstrand> I still kinda want to see someone implement Vulkan for the PS3 using the cell processors for compute shaders.
16:26fdobridge: <!DodoNVK (she) 🇱🇹> I guess limited money (I used that HD 4350 back in my 2017 PC with a Q6600)
16:26fdobridge: <pac85> Vulkan on a ps3 when (edited)
16:26fdobridge: <mohamexiety> we may kinda get something similar to this if someone writes a Vulkan implementation for some of the upcoming NPUs
16:26fdobridge: <pac85> Ah
16:27fdobridge: <mohamexiety> some architectures are similar to the Cell in a way
16:27fdobridge: <triang3l> And the Nvidia GPU for the graphics pipeline? That'd be double impressive
16:27fdobridge: <pac85> Oh yeah amd announced something that looked a lot like cell
16:27fdobridge: <triang3l> but not sure if it even has stuff like integers, probably not?
16:27fdobridge: <!DodoNVK (she) 🇱🇹> Next article: Trans Hacker Implements a Low-Level Graphics API on Supercomputer Level Game Console
16:30fdobridge: <triang3l> OpenGL shaders via blending, intermediate framebuffers and LUTs on PS2's GS?
16:31fdobridge: <!DodoNVK (she) 🇱🇹> The PS2 GS got dropped fairly early
16:33fdobridge: <gfxstrand> @valentineburley do you want to take over maintenance6? I think most of what needs to be done is switching to the 2 versions of descriptor entrypoints (no need to copy+paste, we have fallbacks for that) and running `*maintenance6*`. The block compatible array images stuff should already work.
16:42fdobridge: <!DodoNVK (she) 🇱🇹> How about `fragmentShadingRateClampCombinerInputs`?
16:49fdobridge: <gfxstrand> Someone has to implement fragment shading rate first. 🙃
16:49fdobridge: <gfxstrand> Just kicked off a tip-of-tree CTS run. Wish me luck!
16:52fdobridge: <gfxstrand> Or not. Machine died instantly. :blobcatnotlikethis:
16:55fdobridge: <gfxstrand> @airlied I keep hitting these
16:55fdobridge: <gfxstrand> https://cdn.discordapp.com/attachments/1034184951790305330/1222227421273653359/backtrace?ex=661572fd&is=6602fdfd&hm=dd86b8798cf8cafd52deb9d6cb559f8fadd06b09f2ce29740d2adaec1086fddd&
17:07fdobridge: <!DodoNVK (she) 🇱🇹> Is there a way to tell if a Vulkan driver (like :triangle_nvk:) meets the Vulkan .json profile requirements? 🍩
17:08fdobridge: <rinlovesyou> https://github.com/KhronosGroup/Vulkan-Tools/blob/main/vulkaninfo/json_validation_process.md ?
17:09fdobridge: <!DodoNVK (she) 🇱🇹> I didn't know this existed in vulkaninfo
17:09fdobridge: <rinlovesyou> yee hope this is helpful
17:13fdobridge: <valentineburley> Sure, I'll try to in a bit. What fallbacks do you mean? (I haven't really looked into it yet, just want to make sure I'm not misunderstanding something)
17:13fdobridge: <valentineburley> Thank you!
17:14fdobridge: <!DodoNVK (she) 🇱🇹> Actually this just tests the validity of the .json file I think
17:21killmlana: hello, was wondering if anyone else is encountering issues with hdmi digital output with the latest nouveau version for NV176 (GA106) Amphere.
17:26fdobridge: <rhed0x> i have a bunch of issues with display port, idk about hdmi
17:36killmlana: ohhh what kind of issues, currently i am not getting audio output from the jack in my monitor, yeah sorry it's connected via display port as well. The jack on my mobo works fine.
17:38DodoGTA: killmlana: Do you have GSP enabled?
17:44fdobridge: <rinlovesyou> yeah displayport audio not working is known, although i haven't tested it without gsp yet
17:44fdobridge: <rinlovesyou> also rip
17:57fdobridge: <gfxstrand> In the common code, we have implementations of most old entrypoints in terms of the 2KHR version so all you need to do is convert NVK to the newest version of the entrypoint.
18:15fdobridge: <valentineburley> Great, thanks. I'll check it out as soon as I can.
18:23fdobridge:<gfxstrand> throws in a few `BUG_ON` to see if I can figure out where it's going off the rails.
18:23fdobridge: <gfxstrand> _throws in a few `BUG_ON` to see if she can figure out where it's going off the rails._ (edited)
19:11fdobridge: <airlied> must be some race somewhere in pte allocations
19:11fdobridge: <airlied> it at least isn't on bar mappings, do you hit if often?
19:15Lyude: btw dakr airlied - I can take a look at your current rust patches on the ML today or tomorrow if y'all want
20:37fdobridge: <airlied> @gfxstrand can you use addr2line I think it is to work out what line in nvkm_vmm_iter is crashing?
20:38airlied: dakr: ^ can you look at the backtrace gfxstrand posted above and see if you have any clues
20:38fdobridge: <airlied> @gfxstrand usual questions how often, and anything special to reproduce it more?
20:39dakr: Lyude, sure, that's appreciated.
20:40dakr: airlied, sure, will have a look.
20:41fdobridge: <gfxstrand> I pulled a fresh CTS and I'm hitting it pretty quickly on my setup. Unfortunately, if there's one thing I've learned about my setup, it's that it's unreproducible. 😂
20:53fdobridge: <airlied> yeah I still haven't gotten my 36 thread CPU 😛
20:54fdobridge: <redsheep> Wonder if my 32 thread CPU would hit it. I've still never tried out the cts
21:20fdobridge: <gfxstrand> To the "Hos often?" question, it's kinda random. Sometimes I can do a bunch of runs back-to-back and be fine. Then sometimes it'll fall over in less than 3 min
21:24fdobridge: <gfxstrand> Hit it in 23 seconds but it didn't hit my `BUG_ON()`
21:25fdobridge: <airlied> yeah need to work out which ptr indirection is getting a NULL
21:26fdobridge: <samantas5855> How come nova started getting attention?
21:26fdobridge: <samantas5855> Is it usable
21:27fdobridge: <airlied> it got attention because the intent to develop it was announced
21:29fdobridge: <gfxstrand> `/home/faith/projects/linux/nvk/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:544 (discriminator 1)`
21:29fdobridge: <gfxstrand> @airlied It seems to happen pretty often with tip-of-tree CTS and deqp-runner. @dwlsalmeida is hitting it as well so I know it's not just me this time. 😅
21:30fdobridge: <gfxstrand> ` if (ref && NVKM_VMM_PDE_INVALID(pgd->pde[pdei])) {`
21:30fdobridge: <airlied> okay so pgd is probably null
21:31fdobridge: <gfxstrand> Let me BUG_ON that
21:31fdobridge: <airlied> I'll throw some tip CTS runs at my machine today and see if I can spot it
21:44fdobridge:<gfxstrand> really should figure out a better kernel development flow than re-installing a full fedora set of signed modules every time.
21:47fdobridge: <karolherbst🐧🦀> what's the proper way to run the VK CTS headless? I kinda seem to mess up on my pi...
21:51fdobridge: <airlied> it should just run headless
21:52fdobridge: <airlied> only the wsi tests should care about a head, and they won't run if one isn't there
21:52fdobridge: <gfxstrand> `-Dplatforms=` and no WSI tests will run
21:52fdobridge: <karolherbst🐧🦀> mhh.. maybe the v3dv driver is just weird there then
22:06fdobridge: <gfxstrand> Ugh... This `addr2line` makes no sense
22:07airlied: objdump -S can also be used to narrow stuff down
22:07fdobridge: <gfxstrand> Oh, it's because I didn't actually install the modules
22:07fdobridge: <gfxstrand> Silly initram
22:18fdobridge: <gfxstrand> @airlied `pgd == NULL`
22:18fdobridge: <gfxstrand> `drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:544` (ish)
22:29fdobridge: <gfxstrand> Why is the page table NULL and what are we not validating? IDK.
22:32fdobridge: <gfxstrand> It's an unmap going sideways. That much is clear
22:34fdobridge:<gfxstrand> is very confused by the locking in this fiel
22:34fdobridge: <gfxstrand> _is very confused by the locking in this file_ (edited)
22:38fdobridge: <gfxstrand> More specifically, it's an unmap in a sparse region going sideways
22:39fdobridge: <gfxstrand> Maybe it's a large sparse map and someone is garbage collecting the PTEs?
22:39fdobridge: <gfxstrand> That sounds plausible.
23:16fdobridge: <airlied> so it.pt[it.lvl] is NULL, any idea what lvl is?
23:16fdobridge: <gfxstrand> I can get that for you
23:19airlied: dakr: ^ more info, you might know that code better
23:19airlied: it might be worth just bailing on a NULL ptr and seeing if it has any unwarranted side effects
23:21fdobridge: <gfxstrand> It bothers me a bit that the sparse unmap code and the unmap code are so different.
23:21fdobridge: <gfxstrand> Like, they should be pretty much the same except for setting the VOL bit.
23:43fdobridge: <gfxstrand> @airlied , dakr: `it.lvl = 2`
23:44fdobridge: <gfxstrand> That's definitely in the middle of the tree