07:59 sgruszka: #mm
08:35 pq: DemiMarie, I have no idea. Don't you get a crash dump? If the GPU is actually stuck enough to need any kind of reset, then does that not mean that all debugging tools are also dead until reset?
08:36 pq: DemiMarie, think how you'd debug a hung CPU. Not a hung process, but a CPU.
08:51 MrCooper: some hangs are just shaders which never terminate, which is debuggable in principle
09:34 pq: I suppose you'd have to disable job timeouts to do that, which also makes your desktop prone to freeze if any screen update happens to depend on the stuck job?
12:19 mripard: jani: I'm aware of the issue with select vs depends on wrt to dependencies of the "upper" dependencies, but it's not clear to me how you would like to fix it
12:19 mripard: a visible symbol with default y that drivers would depends on?
13:45 pq: Would there be any difference in GLSL for any type of uniform, whether you access it directly or pass it through a function parameter? Can I trust that if the compiler accepts the code, then there is no performance penalty from passing the thing through a parameter? e.g. a 'uniform sampler3D foo' or 'uniform float bar[10]'
13:46 pq: ES SL 1.00, specifically
15:24 robert_mader: Hi - anyone around to quickly reassign a MR with timed-out CI pipeline to Marge? :) https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28313
15:27 robert_mader: Thanks!
15:32 DemiMarie: pq: So the main difference is obviously that on a CPU, *everything* is preemptable in bounded time.
15:37 pq: unless the CPU itself is stuck
15:40 pq: I also did not write the GPU reset doc.
15:43 pq: ISTR seeing cases where NMI stopped working, or at least stopped being able to send kernel log over built-in rs-232 on x86 pc
15:45 pq: does a PCI transaction failure still wedge the whole machine?
15:46 DemiMarie: No idea
15:46 DemiMarie: I think it may have on pre-Golden Cove Intel CPUs.
15:47 MrCooper: some GPU hangs are equivalent to an uninterruptible CPU instruction which never finishes
16:07 DemiMarie: MrCooper: if such a CPU instruction existed that would be considered an errata.
16:13 mattst88: pq: yeah, should be no overhead to passing a uniform (or any other parameter) to a function in GLSL
16:13 mattst88: 99% of the time all functions are inlined in GLSL
16:14 mattst88: I think ESSL 1.0 even requires that e.g. loops have to be unrollable, etc
17:38 DemiMarie: mattst88:
17:39 mattst88: DemiMarie:
18:25 DemiMarie: mattst88: Sorry, I think I accidentally sent something.
18:34 mattst88: np
20:54 pinchartl: emersion: I came across https://sr.ht/~emersion/pixfmtdb/
20:54 pinchartl: and I was wondering
20:54 pinchartl: what are your thoughts about a universal file format that could be used to store images in any KDFS-compatible format ?
20:55 pinchartl: would you be aware of something similar ?
20:56 emersion: hm, good question
20:56 emersion: i don't think i saw anything like this
20:57 emersion: note, KDFS isn't enough to fully describe the format actually
20:57 emersion: (https://github.com/KhronosGroup/DataFormat/issues/22)
20:57 emersion: (^ is an example)
20:59 emersion: (hm actually nevermind, that issue would not be relevant here!)
21:01 pinchartl: I don't think KDFS supports all the formats I care about indeed
21:01 pinchartl: but it's the closer to a universal description that I have come across, and it could be extended
21:01 pinchartl: so I may need to create a new file format...
21:02 pinchartl: my use case is dumping frames captured from cameras in a way that doesn't require any format conversion (just dumping the bytes from the buffer), with enough metadata to make it possible for tools to convert the frame to something else
21:03 emersion: pinchartl: maybe this? https://www.khronos.org/ktx/
21:04 pinchartl: I've seen that, but it uses VK formats, and is very texture-oriented
21:04 pinchartl: not a good fit to store raw bayer data for instance
21:04 pinchartl: although I suppose it could be used as a base and extended
21:05 emersion: it *can* use KDFS descriptors when VK_FORMAT_UNDEFINED is used, but yeah…
21:06 pinchartl: ah, I didn't know that. interesting
21:06 pinchartl: also, ideally the file format should support metadata similar to what can be encoded in DNG files with EXIF tags
21:06 pinchartl: can KTX do something like that ?
21:07 emersion: it has key/value data
21:07 emersion: https://registry.khronos.org/KTX/specs/2.0/ktxspec.v2.html#_file_structure
21:07 pinchartl: I'll give it another look
21:07 pinchartl: thanks
21:30 DavidHeidelberg: Can someone knowlegable with NIR implement TG4 for TGSI -> NIR?
21:30 DavidHeidelberg: NIR -> TGSI has the opcode implemented, but not the other way (painful for Nine using TGSI)
22:19 mareko: tgsi.rst describes it
22:34 mareko: DavidHeidelberg: https://gitlab.freedesktop.org/mareko/mesa/-/commit/bfffda680ab907efcba3fb504294ac0b4b0e49ef
23:02 DavidHeidelberg: mareko: this looks good, let me test! :)
23:05 DavidHeidelberg: mareko: not yet there, "NineTests: ../src/gallium/auxiliary/nir/tgsi_to_nir.c:1269: ttn_tex: Assertion "tgsi_inst->Src[samp].Register.File == TGSI_FILE_SAMPLER' failed.
23:05 DavidHeidelberg: `
23:07 DavidHeidelberg: When I tried to do it I haven't pass this assert :(
23:09 DavidHeidelberg: or should I start looking into Nine code (if you consider the thsi->nir part 99% correct?
23:34 mareko: no
23:36 DavidHeidelberg: btw. I added src_number++; in the last condition
23:37 mareko: not needed IMO
23:38 mareko: DavidHeidelberg: this one: https://gitlab.freedesktop.org/mareko/mesa/-/commit/5d95e903d61e1fa733eb95c1367d0d71d9940a88
23:39 DavidHeidelberg: better, NineTests: ../src/compiler/nir/nir.h:2695: nir_instr_as_load_const: Assertion `parent && parent->type == nir_instr_type_load_const' failed.
23:41 DavidHeidelberg: I looked for inspiration in src/gallium/auxiliary/nir/nir_to_tgsi.c handling, but without NIR knowledge implementing the logic is painful
23:46 mareko: DavidHeidelberg: can you print TGSI and the failing NIR instruction?
23:48 DavidHeidelberg: mareko: https://paste.sr.ht/~okias/d63faee8860d97c40acbe9e2580de48cf0fae9d1
23:50 mareko: DavidHeidelberg: and src[1]->parent_instr ?
23:52 DavidHeidelberg: mareko: what should I exactly print?
23:57 mareko: nevermind