00:00 anholt: and then, of course, what you really want is some sort of microcontroller that eats a short description of the jobs to dispatch to and does those jobs in sequence without bothering the main cpu and oh hey that's the VPU for rpis except that the vpu is still running a closed blob.
00:02 airlied: anholt: so on queue submit those the main thread unspool the cmd buffer to the kernel, or is it done in a second thread?
00:02 anholt: airlied: haven't traced through what v3dv's doing there.
00:02 anholt: main thread in the v3d case.
00:04 apinheiro: > anholt: would you be fast just executing memcpys instead of using the gpu :-P
00:04 apinheiro: airlied, we also evaluated this
00:04 apinheiro: the issue is when deciding to use this "memcpy codepath" or the gpu codepath that we have
00:04 apinheiro: on this specific case
00:04 bnieuwenhuizen: FWIW wrt the cmdbuffer chaining, some apps actually do submit ~100 cmdbuffers at once with the simulataneous use bit
00:04 apinheiro: with ~15k copies, that are really small
00:04 bnieuwenhuizen: (e.g. dota2)
00:04 apinheiro: it is really likely that a memcpy (so a cpu copy)
00:04 apinheiro: woudl be better
00:05 apinheiro: bnieuwenhuizen, well, but I think that dota2 is somewhat out of range for the rpi4
00:05 anholt: the tiny slow memory's gonna kill you for dota
00:06 bnieuwenhuizen: I dunno, pretty easy title to run, can probably get 100 FPS on a random APU
00:06 airlied: just need an arm port :-P
00:07 anholt: bnieuwenhuizen: well, rpi4's got 1/4 the memory bandwidth of a qcm soc I have handy, for example.
00:07 anholt: but they did give it the ability to scan out dual 4k monitors, if you can ever get around to rendering that much :)
00:07 airlied: apinheiro: it sounds like for smaller copues a memcpy might be less overhead than calling all the kernel ioctls
00:07 anholt: airlied: that means total synchronization, though, right?
00:08 apinheiro: airlied, yes exactly,
00:08 apinheiro: for this case of 15k small copies, it is really likely that just a memcpy would work
00:08 apinheiro: better
00:08 apinheiro: but again, the tricky part would be to decide when to use one or the other
00:08 airlied: anholt: yesh it would require syncing I suppose
00:09 apinheiro: specially because in this case we have 15 copies as 15k calls to vkCmdCopyBuffer with regionCount=1, so we would need to do the batching
00:34 robclark: airlied: don't really need an arm port.. https://imgur.com/a/5gt22hO <-- that is snapdragon arm laptop with crazy things that HdkR does
00:48 Lightkey: "crazy things that HdkR does" is a bit redundant. Though that is hardly impressive, ptitSeb got FTL: Faster Than Light running on the Pandora with his box86 emulator and that thing predates smartphones: http://repo.openpandora.org/?page=detail&app=ftl_ptitseb
00:52 robclark: Lightkey: it is freedreno compiled for x86 doing ioctl calls into aarch64 kernel fwiw, so no gl translation involved
01:00 pcercuei: Trying to use wlroots + cage, with not much success
01:00 pcercuei: I do:
01:00 anholt: on a related note, looks like I never landed that SSE code from someone doing hw accelerated diablo 2 emulation on the rpi.
01:00 pcercuei: XDG_RUNTIME_DIR=/tmp/foo WLR_DRM_DEVICES=/dev/dri/card1 cage glmark2-es2-wayland
01:01 pcercuei: on the ingenic-drm driver
01:01 pcercuei: It doesn't throw DRM-related errors, but it throw me a EGL-related error ("Error: eglChooseConfig() didn't return any configs")
01:02 pcercuei: Not sure what I'm doing wrong
01:02 pcercuei: glmark2-es2-drm works fine, so it's not that
01:08 pcercuei: ok, I think I need to recompile Mesa.
01:15 pcercuei: ok, it works now :)
01:44 jekstrand: jenatali: On the list of things that need to happen at some point: Moving the microsoft/clc_helper stuff to common code somewhere.
01:45 jekstrand: jenatali: I need it for "stuff" :)
01:45 jenatali: jekstrand: Yeah, I know, I've got a TODO on my backlog for it but haven't had time to get to it yet
01:45 HdkR: Lightkey: Yes, box86 is a very similar project, just for 32bit x86 applications
01:46 jenatali: jekstrand: Which stuff do you need? The clang invocation? SPIR-V linking? SPIR-V metadata parsing?
01:53 jekstrand: jenatali: OpenCL C -> SPIR-V
01:54 jenatali: Ack
01:54 jenatali: You could steal it from Clover too, but I'd like to merge with that too
01:59 jekstrand: jenatali: Short version is that I'm building a little OpenCL C compiler for Intel to build BVH kernels at compile time.
01:59 jenatali: Oh that makes a lot of sense
01:59 jekstrand: jenatali: So it's most of the same stuff as in clc_helpers.cpp
02:01 jenatali: jekstrand: Were you thinking all the way to NIR as a common library then?
02:01 jenatali: I guess probably not, since the NIR options would be unique
02:06 jekstrand: jenatali: I was thinking of dropping it in src/compiler/spirv
02:06 jekstrand: jenatali: It'd have to be a separate library with separate deps, though.
02:07 jenatali: Makes sense - if you want to go for it I'm happy to review it, otherwise I'll get to it... eventually
02:09 airlied: jekstrand: ah anv never recycles command buffers which explains why you don't see the loader magic issue
02:10 jekstrand: jenatali: I feel like we've had this conversation before but how much do you care about API stability in clc_compiler.h?
02:11 jenatali: jekstrand: It's not critical - both components will always have the same ship vehicle, it's just they live in separate codebases, so they can always be rebuilt together
02:12 airlied: ah radv hits the sme bug
02:20 jekstrand: jenatali: What's this vec hint buisiness?
02:21 jenatali: jekstrand: It can be queried from the API: https://www.khronos.org/registry/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_KERNEL_ATTRIBUTES
02:22 jenatali: We don't do anything else with it currently
02:25 HdkR: anholt: Surprising someone wanted to land SSE optimizations in the pi driver. I would have expected the driver to already be thunked to the host variant
02:25 HdkR: but I guess it could imporve the thunkless path
02:26 jekstrand: jenatali: Ah
02:27 jenatali: jekstrand: IIRC older versions of the CL API spec specifically call out a small handful of attributes that can be queried - I think it's just thread group size, thread group size hint, and vec hint
04:04 jekstrand: dcbaker: meson can't find clang. Any ideas?
04:11 jljusten: jekstrand: can't say I know anything about it, bit I wonder if --cross-file on https://docs.mesa3d.org/meson.html might help
04:18 jekstrand: No, libclang, not the compiler.
04:18 jekstrand: Well, yes the compiler, but in lib form.
04:19 dcbaker: With cmake or not cmake?
04:21 jekstrand: dcbaker: it's trying cmake
04:24 dcbaker: It needs to be capitalized on Linux because cmake
04:24 jekstrand: srsly?
04:24 jekstrand: *sigh*
04:24 dcbaker: Yes
04:26 dcbaker: I have an mr to use cmake for clang in clover that's open
04:26 jekstrand: dcbaker: link?
04:28 dcbaker: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8479
04:29 jekstrand: dcbaker: I see now.
04:29 jekstrand: dcbaker: It's claiming I'm trying to get invalid targets
04:30 dcbaker: Ahhh
04:32 jekstrand: dcbaker: Not even clangBasic is on the list
04:32 dcbaker: Uhhhh, that seems broken
04:33 jekstrand: Run-time dependency clang found: NO
04:33 jekstrand: ../meson.build:299:0: ERROR: Dependency Clang not found: CMake: invalid module clangBasic for Clang.
04:33 jekstrand: Try to explicitly specify one or more targets with the "modules" property.
04:33 jekstrand: Valid targets are:
04:33 jekstrand: ['LLVMDemangle', 'LLVMSupport', 'LLVMTableGen', 'llvm-tblgen', 'LLVMCore', 'LLVMFuzzMutate', 'LLVMIRReader', 'LLVMCodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter', 'LLVMMIRParser', 'LLVMGlobalISel', 'LLVMBinaryFormat', 'LLVMBitReader', 'LLVMBitWriter', 'LLVMBitstreamReader', 'LLVMDWARFLinker', 'LLVMExtensions', 'LLVMFrontendOpenACC', 'LLVMFrontendOpenMP', 'LLVMTransformUtils', 'LLVMInstrumentation',
04:33 jekstrand: 'LLVMAggressiveInstCombine', 'LLVMInstCombine', 'LLVMScalarOpts', 'LLVMipo', 'LLVMVectorize', 'LLVMObjCARCOpts', 'LLVMCoroutines', 'LLVMCFGuard', 'LLVMLinker', 'LLVMAnalysis', 'LLVMLTO', 'LLVMMC', 'LLVMMCParser', 'LLVMMCDisassembler', 'LLVMMCA', 'LLVMObject', 'LLVMObjectYAML', 'LLVMOption', 'LLVMRemarks', 'LLVMDebugInfoDWARF', 'LLVMDebugInfoGSYM', 'LLVMDebugInfoMSF', 'LLVMDebugInfoCodeView',
04:33 jekstrand: 'LLVMDebugInfoPDB', 'LLVMSymbolize', 'LLVMExecutionEngine', 'LLVMInterpreter', 'LLVMJITLink', 'LLVMMCJIT', 'LLVMOrcError', 'LLVMOrcJIT', 'LLVMRuntimeDyld', 'LLVMTarget', 'LLVMAArch64CodeGen', 'LLVMAArch64AsmParser', 'LLVMAArch64Disassembler', 'LLVMAArch64Desc', 'LLVMAArch64Info', 'LLVMAArch64Utils', 'LLVMAMDGPUCodeGen', 'LLVMAMDGPUAsmParser', 'LLVMAMDGPUDisassembler', 'LLVMAMDGPUDesc',
04:33 jekstrand: 'LLVMAMDGPUInfo', 'LLVMAMDGPUUtils', 'LLVMARMCodeGen', 'LLVMARMAsmParser', 'LLVMARMDisassembler', 'LLVMARMDesc', 'LLVMARMInfo', 'LLVMARMUtils', 'LLVMAVRCodeGen', 'LLVMAVRAsmParser', 'LLVMAVRDisassembler', 'LLVMAVRDesc', 'LLVMAVRInfo', 'LLVMBPFCodeGen', 'LLVMBPFAsmParser', 'LLVMBPFDisassembler', 'LLVMBPFDesc', 'LLVMBPFInfo', 'LLVMHexagonCodeGen', 'LLVMHexagonAsmParser', 'LLVMHexagonDisassembler',
04:33 jekstrand: 'LLVMHexagonDesc', 'LLVMHexagonInfo', 'LLVMLanaiCodeGen', 'LLVMLanaiAsmParser', 'LLVMLanaiDisassembler', 'LLVMLanaiDesc', 'LLVMLanaiInfo', 'LLVMMipsCodeGen', 'LLVMMipsAsmParser', 'LLVMMipsDisassembler', 'LLVMMipsDesc', 'LLVMMipsInfo', 'LLVMMSP430CodeGen', 'LLVMMSP430Desc', 'LLVMMSP430Info', 'LLVMMSP430AsmParser', 'LLVMMSP430Disassembler', 'LLVMNVPTXCodeGen', 'LLVMNVPTXDesc', 'LLVMNVPTXInfo',
04:33 jekstrand: 'LLVMPowerPCCodeGen', 'LLVMPowerPCAsmParser', 'LLVMPowerPCDisassembler', 'LLVMPowerPCDesc', 'LLVMPowerPCInfo', 'LLVMRISCVCodeGen', 'LLVMRISCVAsmParser', 'LLVMRISCVDisassembler', 'LLVMRISCVDesc', 'LLVMRISCVInfo', 'LLVMRISCVUtils', 'LLVMSparcCodeGen', 'LLVMSparcAsmParser', 'LLVMSparcDisassembler', 'LLVMSparcDesc', 'LLVMSparcInfo', 'LLVMSystemZCodeGen', 'LLVMSystemZAsmParser', 'LLVMSystemZDisassembler',
04:33 jekstrand: 'LLVMSystemZDesc', 'LLVMSystemZInfo', 'LLVMWebAssemblyCodeGen', 'LLVMWebAssemblyAsmParser', 'LLVMWebAssemblyDisassembler', 'LLVMWebAssemblyDesc', 'LLVMWebAssemblyInfo', 'LLVMX86CodeGen', 'LLVMX86AsmParser', 'LLVMX86Disassembler', 'LLVMX86Desc', 'LLVMX86Info', 'LLVMXCoreCodeGen', 'LLVMXCoreDisassembler', 'LLVMXCoreDesc', 'LLVMXCoreInfo', 'LLVMAsmParser', 'LLVMLineEditor', 'LLVMProfileData',
04:33 jekstrand: 'LLVMCoverage', 'LLVMPasses', 'LLVMTextAPI', 'LLVMDlltoolDriver', 'LLVMLibDriver', 'LLVMXRay', 'LLVMWindowsManifest', 'FileCheck', 'llvm-PerfectShuffle', 'count', 'not', 'yaml-bench', 'LTO', 'LLVMgold', 'llvm-ar', 'llvm-config', 'llvm-lto', 'llvm-profdata', 'bugpoint', 'dsymutil', 'llc', 'lli-child-target', 'lli', 'llvm-as', 'llvm-bcanalyzer', 'llvm-c-test', 'llvm-cat', 'llvm-cfi-verify', 'llvm-cov',
04:34 jekstrand: 'llvm-cvtres', 'llvm-cxxdump', 'llvm-cxxfilt', 'llvm-cxxmap', 'llvm-diff', 'llvm-dis', 'llvm-dwarfdump', 'llvm-dwp', 'llvm-elfabi', 'llvm-exegesis', 'llvm-extract', 'llvm-gsymutil', 'llvm-ifs', 'llvm-jitlink', 'llvm-link', 'llvm-lipo', 'llvm-lto2', 'llvm-mc', 'llvm-mca', 'llvm-ml', 'llvm-modextract', 'llvm-mt', 'llvm-nm', 'llvm-objcopy', 'llvm-objdump', 'llvm-opt-report', 'llvm-pdbutil', 'llvm-rc',
04:34 jekstrand: 'llvm-readobj', 'llvm-reduce', 'llvm-rtdyld', 'LLVM', 'llvm-size', 'llvm-split', 'llvm-stress', 'llvm-strings', 'llvm-symbolizer', 'llvm-undname', 'llvm-xray', 'obj2yaml', 'opt', 'Remarks', 'sancov', 'sanstats', 'verify-uselistorder', 'yaml2obj', 'intrinsics_gen', 'omp_gen', 'acc_gen', 'diagtool', 'clang', 'clang-format', 'clang-offload-bundler', 'clang-offload-wrapper', 'clang-scan-deps',
04:34 jekstrand: 'clang-rename', 'clang-refactor', 'clang-cpp', 'clang-check', 'clang-extdef-mapping', 'clang-apply-replacements', 'clang-reorder-fields', 'modularize', 'clang-tidy', 'clang-change-namespace', 'clang-doc', 'clang-include-fixer', 'find-all-symbols', 'clang-move', 'clang-query', 'pp-trace', 'clangd', 'libclang', 'clang-tablegen-targets']
04:37 dcbaker: What version of llvm/clang do you have?
04:37 zmike: is this the 2021 version of "mods are asleep, post cflags" ?
04:38 jekstrand: dcbaker: 11
04:39 dcbaker: I'm still using 10, I'll switch to 11 tomorrow and see if I see the same thing. Unless someone beats me to it
04:39 dcbaker: Sure looks like they've changed their cmake though
04:39 HdkR: 12 is in RC candidate status as well
04:40 dcbaker: Try clang-cpp and see if that's all you need
04:40 dcbaker: Or libclang
04:40 dcbaker: Maybe
04:40 dcbaker:is just making it up
04:40 airlied: on fedora it should link
04:42 jekstrand: No, it's definitely Clang
04:42 jekstrand: Unless there are two different packages to install
04:42 jekstrand: But clover builds fine so that can't be the problem
04:42 airlied: assumning you have clang-devel installed
04:43 airlied: oh if clover builds then it's just meson fun to cut-n-paste from clover :-P
04:44 jekstrand: airlied: Yeah, but I'm trying to cut-n-paste from dcbaker. He's supposed to be the expert. :P
04:45 dcbaker: Nah, but I played one on TV once
04:55 vsyrjala: "the (meson) expert" 0% on rotten tomatoes cause it was just some guy typing on a keyboard for two hours
05:07 jekstrand:has hacked it sort-of successfully, maybe
05:32 jekstrand: dcbaker: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9156
05:32 jekstrand: dcbaker: Please make it all better. :)
05:48 DrNick: huh. the Portal 2 Vulkan renderer uses DXVK
05:49 hifi: didn't the opengl renderer also use something similar that valve developed?
05:54 DrNick: oh, yeah, libtogl.so does have a lot of exported C++ classes with names starting with IDirect3D9
08:05 tzimmermann: danvet, do you have an idea where to begin with the udl dma fix?
08:10 danvet: tzimmermann, tbh no idea
08:10 danvet: tzimmermann, is it just a warning, or stuff fails?
08:10 tzimmermann: danvet, it fails
08:10 danvet: :-/
08:11 danvet: maybe ask airlied to escalate the regression
08:11 tzimmermann: x11 display for udl remains black
08:11 danvet: like it's all nice to cleanup dma-api and be annoyed about what drm drivers do, but breaking stuff for refactoring isn't ok
08:11 tzimmermann: danvet, yes
08:11 tzimmermann: but it's two late now
08:11 danvet: hm why?
08:12 tzimmermann: it's in v5.9-rc3 already
08:12 danvet: oh
08:12 tzimmermann: the problem is at https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/drm_prime.c#L630
08:12 danvet: we can't back it out?
08:12 danvet: yeah it's the wrong device
08:12 tzimmermann: we can revert, but i expect a flamewar
08:13 danvet: yeah hch isn't reasonable in this regard unfortunately :-(
08:13 danvet: which is why I think airlied and me should maybe send some mails around
08:13 danvet: but I have plenty of fireworks already
08:13 danvet:not in the mood for more
08:14 tzimmermann: danvet, don't worry. i just want to discuss the problem with you :)
08:14 danvet: tzimmermann, ok an idea
08:14 tzimmermann: by wrong device, youmean that the dev pointer points to the non-udl device?
08:14 danvet: drm_gem_prime_import_dev <- use this one
08:15 danvet: and for the device, simply chase parent device pointers until you spot something that's has a dma mapping attached (if we can detect that)
08:15 tzimmermann: with the other device?
08:15 danvet: yeah
08:15 danvet: even better if you can directly ask the usb subsystem for the host device
08:15 tzimmermann: good idea
08:15 tzimmermann: the usb controller should have dma support
08:15 danvet: but if that's not available, hack together something horrible with walking upwards until you hit a pci_device
08:15 danvet: yeah
08:16 danvet: if not, we can't import
08:16 danvet: I think at least
08:16 danvet: well actually no
08:16 danvet: if the host controller doesn't have dma support
08:16 danvet: we can still import
08:16 danvet: but only with dma_buf_vmap and cpu access only
08:17 danvet: and no dma_buf_attach
08:17 tzimmermann: that was my question: for udl, do we actually need to call the dma_map_sgtable ?
08:17 danvet: which unfortunately means a pile of rework all over drm_prime.c to support that
08:17 danvet: I dunno
08:17 tzimmermann: udl does not do any dma
08:17 danvet: if we never feed the sg_list into the usb stack, then no
08:17 danvet: and only vmap is needed
08:18 tzimmermann: that was my plan so far. but maybe the idea with using the controller's dma is a better one
08:18 danvet: I'm kinda wondering whether some of the spi tiny panel drivers have the same problem
08:18 tzimmermann: no idea
08:19 danvet: tzimmermann, I do think it would be good to have a hw-less import support in drm_prime.c
08:19 danvet: but it's some work
08:19 danvet: because we use the attachement pointer for import caching
08:19 tzimmermann: whereever i look, things fall apart :/
08:19 danvet: for udl?
08:20 tzimmermann: for everything: generic fbdev, vmap locking, now udl
08:20 tzimmermann: danvet, well at least i have an idea for a fix. thanks a lot
08:21 danvet: I do think it's substantially more robust now, but yeah all that changing causes stuff to break
08:21 danvet: and we have no CI at all
08:27 HdkR: The matrix users were never heard from again
08:35 vsyrjala: they'll be back, in black trench coats, dark glasses, and armed to the teeth
08:39 pq: but like ghosts or holograms, they just flicker in and out and pretty much never do anything - thanks matrix.org's irc bridge instance for being so popular
08:41 Venemo: flickering like a hologram? is that a new mesa feature?
09:14 MrCooper: zmike: normally, one should wait for feedback at least one business day before merging an MR (there are people living around the globe :)
09:25 Venemo: why do the load_tess_level NIR intrinsics exist? why aren't these just normal input loads?
09:30 HdkR: "You hear that, Mr. Anderson? That's the sound of inevitability, that's the sound of your death, goodbye, Mr. Anderson"
09:30 Venemo: lol, HdkR :)
09:31 Venemo: the funny thing is that I can't find anything that actually creates these intrinsics either. I think TTN is the only place where they are created?
09:52 Venemo: hmm, looks like glsl_to_nir can add them either as inputs or as system values
09:53 Venemo: I guess maybe it generates these intrinsics when it is a system value?
09:59 Sumera[m]: danvet: sent the patch for skipping all vblank. would you like me to send in the other patches for skipping wait_vblank_count now, or just send it along with other upcoming fixes for the crc tests?
10:00 danvet: Sumera[m], I think we need to figure out first how crc are supposed to work on this hw
10:00 danvet: so probably needs more experimentation of what works for basic crc tests before we go ahead with a specific approach
10:01 danvet: Sumera[m], what I noticed from your logs is that e.g. the crc setup function reads a crc just to make sure it works
10:01 Sumera[m]: danvet: yep, that makes sense
10:01 danvet: and that never completes if there's not a vblank that keeps crc updated every frame
10:02 danvet: so I think we have a bit a fundamental problem on what to do
10:02 danvet: either we fake more crc in the kernel driver (seems a bit silly)
10:02 danvet: or we skip all these dummy crc reads (uh lots of work probably all over igt)
10:02 Sumera[m]: yeah, I think we will have to tweak vkms
10:02 danvet: or we inject some fake flips on the crtc to generate a crc, which is also not going to be very clean
10:03 danvet: I think for now digging around to figure out how big the problem is would be good
10:04 Sumera[m]: why can't we make vkms just assume crc is updated every frame?
10:04 Sumera[m]: or is that what faking crc is?
10:04 danvet: yeah
10:04 danvet: but the thing is, that kinda happens we have vblank automatically
10:04 danvet: but here we try to fake vblank-less mode
10:05 danvet: so in a way there's nothing that regularly updates stuff
10:05 danvet: and so unchanged crc is the right thing conceptually
10:11 melissawen: danvet, Sumera[m], and if we just fake one crc capture whenever request to set the crc source as a "proof of crc work" ?
10:11 danvet: melissawen, yeah, maybe that works too
10:11 danvet: but it's a bit quirky
10:12 danvet: since for vkms we need to do an atomic_commit
10:12 danvet: so quite some machinery in the kernel
10:12 danvet: and in a way the same thing userspace is supposed to do when it wants to update the virtual display by calling the DIRTYFB ioctl
10:12 danvet: so I'm wondering whether we should call that from igt everywhere we need a crc update
10:13 danvet: but that's also a pile of work
10:13 danvet: it's a bit tricky I think
12:06 mripard: tzimmermann: if you're bored, my drm_atomic_state series could use some review. vsyrjala reviewed some parts of it, but pinchartl only gave is acked-by for the rcar changes
13:26 tzimmermann: mripard, i'll have a few minutes later today. i'll take a look
13:29 mripard: I just sent the new version, there's no rush
13:29 mripard: (it's also fairly big)
13:37 pq: Lyude, do you know of the kernel S-o-b policy being changed? Your comment on https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/556#note_807705 would be nice.
13:54 zmike: MrCooper: if you're referring to my recent zink branch merges, I've previously discussed this matter with zink reviewers and everything is working as planned
13:55 danvet: pq, Lyude I think defacto it's dont ask, wont tell in the kernel wrt pseudonyms :-/
13:56 pq: danvet, that's what I thought but I was conviced otherwise on this channel when pseydonyms were discussed.
13:57 pq: *convinced
13:58 danvet: I mean in practice insisting on real names doesn't work, but it's also formally required at least in the kernel for reasons I wasn't involved in when that discussion happened
13:59 pq: that's why I would be interested to see what happens to the patch that suggests changing the kernel's guideline
13:59 danvet: epic bikeshed most likely, at best
14:00 danvet: I think we could do something for all fd.o projects, if there's a ready-made DCO that sucks less in this regard
14:01 pq: what do you mean by ready-made DCO?
14:01 danvet: probably shouldn't draft this ourselves
14:02 danvet: the value in documents like this is largely standardization imo
14:02 danvet: kinda like coc
14:02 pq: I assumed the problem was, can one sign anything (e.g. a DCO) with a pseudonym.
14:02 pq: as the DCO exists already: https://developercertificate.org/
14:03 pq: maybe Linux Foundation would know
14:03 danvet: oh I got confused
14:04 danvet: I thought DCO had some real name policy in there, but reading it again I don't see anything like that
14:05 danvet: pq, where did you find that part with no pseudonym?
14:06 danvet: where in docs
14:08 pq: danvet, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst#n405
14:08 danvet: ah yes found it
14:08 danvet: meh
14:09 danvet: frankly I'd write that off as lkml being lkml like usual
14:09 danvet: really doesn't look like a DCO requirement
14:09 danvet: definitely not anything I ever enforced on dri-devel
14:09 pq: heh, cool that you agree
14:10 danvet: least because utf8 is still not enough to hold all names for real people out there, so whatever you put there is fine
14:10 danvet: just not only the email address alone
14:11 danvet: and even that is kinda for practical reasons, because people move companies and stuff like that, but their community reputation sticks with their "name"
14:16 pq: yes, yes, all these practical reason are kind of obvious, but I was wondering if some lawyer had said "s-o-b without a real name is useless in my country"
14:17 danvet: ime the stuff LF lawyers produces is fairly useless and in many cases caused substantial uproar
14:17 pq: eh heh
14:17 pq: yet, is there any other reason to use S-o-b at all than lawyers?
14:18 danvet: minimal due dilligence
14:18 danvet: we have some $process to make sure we're not knowingly merging code we don't have a license for
14:18 danvet: it's not going to protect against a real supply chain attack ofc
14:18 danvet: but I mean if someone wants to spend 2 years to build up reputation so they can sneak a backdoor in
14:18 danvet: do it
14:19 danvet: that's way better bug ratio than the stuff I produce :-)
14:21 danvet: pq, I think the key thing (in my layman understand) is that the DCO process establishes intent
14:21 danvet: so if someone is nasty and sneaks something in, and then laters sues
14:22 danvet: they acted with malicious intent, and generally the law does not look kindly on that
14:22 danvet: also in copyright there's a big difference between willful and accidental infringement
14:23 pq: danvet, what you say makes perfect sense to me. Yet for some reason the kernel doc is what it is...
14:27 danvet: pq, yeah kernel doc also removed maintainer's responsibility to ensure coc is enforced and a pile of other things we should maybe not blindly follow :-)
14:28 pq: ha
14:28 pq: (I was also interested whether Lyude can be contacted via Gitlab mentions at all, since no word for a week)
14:29 pq: or I found a wrong lyude in gitlab
14:33 Peste_Bubonica: I'm running mesa 21.0-r4, and at least for my use case, its rock solid. Do you guys think that a rc-5 will be released, or a 21.0.0 stable on the way?
14:33 danvet: pq, you got the right Lyude
14:39 tzimmermann: mripard, i looked through the series. all patches seem to have an r-b or a-b. is there something specific you want me to review?
14:43 mripard: tzimmermann: all the a-b from pinchartl are only for one driver, not for the whole patch
14:44 tzimmermann: ah, ok
14:44 mripard: (i'm not sure how to make that explicit in the patch)
14:44 danvet: mripard, add # for rcar-du
14:44 danvet: or just dont and then blame it all on pinchartl when it blows up :-)
14:46 mripard: I was going to do the latter, but he played it smart and preemptively said on IRC he wouldn't take the blame :)
14:47 pinchartl: danvet: I'll do my best to ignore the blame when it comes ;-)
15:17 emersion: is there a helper to figure out whether a DRM format is RGB in the kernel?
15:17 emersion: is !is_yuv enough?
15:18 emersion: or are there non-YUV non-RGB formats?
15:20 pq: emersion, hmm... is C8 RGB to you or not? :-)
15:20 emersion: eh
15:22 emersion: i have no idea :P
15:22 pcercuei: could be packaged YUV too
15:23 pcercuei: You really fit what you want in the palette
15:24 emersion: amdgpu doesn't support it, so i'm safe for now
16:21 anholt: MrCooper: does it sound likely to you that we can't just move the test-source-dep driver blocks to the drivers because of the changes: *mesa_core_file_list and friends?
16:40 MrCooper: anholt: ah, yeah, YAML anchors are only valid within the same file :(
16:40 anholt: ok, that's what I was thining
16:40 anholt: so I backed out the test-source-dep movs
16:40 anholt: now it's just the yml in that MR
16:40 MrCooper: didn't think of that
16:41 anholt: then I can move expectations after
16:41 anholt: test-source-dep changes pretty infrequently
16:48 jekstrand: Do executables have build shas?
16:49 anholt: jekstrand: not by default but you can pass the arg to have it included
17:01 kisak: dcbaker: even if mesa 21.0.0 isn't ready to leave rc status, can you cut a 21.0.0-rc5 when you have some spare time?
17:02 kisak: s/rc5/rc5 release/
17:12 dcbaker: kisak: yup, I'm already working on that
17:13 kisak: cool, thanks
17:15 Lyude: pq: huh? I thought I already responded to that
17:15 Lyude: I said I'm not really sure if anyone is pushing for changing the policy on psuedonyms
17:18 Lyude: ...huh, it says my comment is "pending"
17:18 Lyude: oh-it never posted lol, weird
17:21 emersion: need to atomic commit these GitLab comments
17:45 daniels: Lyude: 'add comment now' does what it says on the box; the tempting green 'start review' button queues your comment up to post when you finish your review
17:47 Lyude: ah, gotcha
19:04 alyssa: does Gallium document the semantics of what's supposed to happen if `surf->format != surf->texture->format`?
19:05 imirkin: surf->format is supposed to happen.
19:05 imirkin: happens with a view
19:06 alyssa: alright.. if there's already content in surf->texture, does that get reinterpreted (no conversion) or converted? reinterpreted, I think?
19:06 imirkin: reinterpreted
19:07 alyssa: ack, thank you
19:07 alyssa: and that makes the test pass, wee :)
19:10 alyssa: ..while regressing other tests because 2 bugs make a right
19:28 imirkin: alyssa: sounds like BE issues to me...
19:28 imirkin: just have to swap endianness an even number of times
19:28 imirkin: and all wrongs are righted
19:47 pq: Lyude, thanks!
19:51 jekstrand: jenatali: Piles of hacks but I now have a little binary that eats up OpenCL C and dumps out Intel binaries in the from of .h files one can include. :D
19:52 jenatali: jekstrand: Nice!
19:52 jekstrand: I should probably add xz support one day but meh
19:54 jenatali: jekstrand: Want me to take a look at wiring up the static path for opencl-c.h?
19:54 jekstrand: jenatali: I think my MR now mostly has a static path but it's going to take some meson hackery to get it right
19:55 jenatali: jekstrand: Yeah mainly just what we have in the microsoft\clc dir though, right? Should just be a matter of wiring it up to an option like we did for libclc?
19:56 alyssa: jekstrand: Do you uh plan to check in those .h files? :<
19:56 jekstrand: jenatali: There were issues with the meson. The way you're detecting clang doesn't work on my distro for some reason.
19:57 jenatali: jekstrand: Oh I see. Considering I've only tried it on Windows, where we have to use a just-built Clang that's not terribly surprising...
19:57 jekstrand: Also, I've not yet bothered to hook up a proper enable for when the dep is required.
19:58 jekstrand: alyssa: No, I plan to build them as part of the compile.
19:58 alyssa: jekstrand: Looking forward to your meson witchcraft for that ;)
19:59 jekstrand: alyssa: It's not too bad
19:59 alyssa: uh-huh
20:03 dcbaker: jekstrand: something's either wrong with fedora or with your install
20:03 ajax:perks up
20:03 dcbaker: I can using clang11 with cmake finder, as long as I capitalize "clang"
20:16 jekstrand: dcbaker: Maybe I need newer meson?
20:16 jekstrand: Nah, that shouldn't be it
20:16 dcbaker: what version do you have?
20:17 jekstrand: some git version
20:17 jekstrand:just has a meson checkout somewhere
20:18 jekstrand: dcbaker: Ok, looks like with recent meson it works
20:19 jekstrand: Nope. Spoke too soon
20:19 jekstrand: dcbaker, ajax: I don't know what's busted. All I know is that it doesn't find Clang
20:20 jekstrand: dcbaker: Fails with latest ToT meson
20:23 airlied: jekstrand: but if clover works what is going wrong?
20:23 airlied: at least on fedora lately clang is built into one shared lib
20:23 jekstrand: airlied: Clover detects clang completely differently from the standard meson "find clang" thing
20:23 airlied: I expect the meson one is trying to find static libs the shared lib is a new thing
20:24 dcbaker: that's probably it
20:24 airlied: but fedora clang-devel ships cmake bits
20:24 jekstrand: could be
20:25 dcbaker: is that clang-cpp?
20:25 airlied: dcbaker: yes /usr/lib64/libclang-cpp.so.10
20:26 anholt: ajax: getting around to the fxt move so that swrasts won't fail at it
20:26 dcbaker: sigh, why do the LLVM projects hate their users so much that they have to make finding the static libs completely different than the shared libs?
20:27 airlied: dcbaker: it's their users that cause it, since lots of people only want to link against subsets of the whole thing
20:27 jekstrand: Which makes sense for static, I guess
20:27 ajax: anholt: nice! no rush, obviously.
20:28 dcbaker: sure, but why can't you write your cmake in such a way that asking for subcomponents still get's you clang-cpp
20:31 airlied: asking why and cmake is never going to result in happiness
20:31 dcbaker:is resigned to that
20:32 dcbaker: in general asking "why is your build system stupid?" doesn't end with hapiness
20:34 airlied: it does look like you pick clang-cpp as a target or you pick targets as a target
20:36 dcbaker: should we tie static clang to static llvm?
20:37 jekstrand: I'm happy to tie staticness together
20:37 ajax: i wanna say almost certainly? i can't imagine wanting either of (static,dynamic) for one and not the same for the other
20:37 jekstrand: You may want LLVM but not clang but if you have both, you're going to want them to be linked the same way.
20:37 ajax: someone wants that they can write the patch
20:37 dcbaker: this is fair
20:40 alyssa: dcbaker: hey, while I have your attention can you either r-b or nak !8893 so I can land or close it? I don't like having too many MRs just sitting open :?
20:45 dcbaker: alyssa: that seems fine with me, maybe anholt or someone from igalia or pengitronix can say whether it makes sense for etnaviv or vc*?
20:45 alyssa: I added all the labels! :p
20:58 dcbaker: jekstrand: I updated my PR, I think it will work for you now
20:58 dcbaker: Nixos apparently has both the static and shared libs, which is extremely convenient
21:00 jekstrand: dcbaker: Which PR? The one for Clang via cmake detect?
21:00 dcbaker: yes
21:02 jekstrand: dcbaker: Nope
21:02 jekstrand: dcbaker: Oh, wait...
21:04 jekstrand: dcbaker: Can we have one centralized dep_clang, please?
21:05 jekstrand: Or better yet, maybe we should just get all the CLC stuff common and keep it there.....
21:05 jenatali: jekstrand: One dep_clang sounds good to me
21:05 dcbaker: either way, I thought you were trying to put all that stuff in one place ;)
21:05 jekstrand: dcbaker: I'm trying to get us closer.
21:06 jekstrand: dcbaker: I'm not sure how motivated I am to move clover over to the common code.
21:06 jekstrand: Maybe I can con karolherbst (who doesn't seem to be on IRC these days) or airlied to do it. :)
21:07 dcbaker: jenatali: I can do it, the only thing to figure out is the difference between the two module lists
21:08 jenatali: dcbaker: Assuming you meant to tag jekstrand :)
21:09 dcbaker: well, I mean to tag both of you separately.
21:09 dcbaker: the list of modules between clover and microsoft clc is pretty similar
21:09 jenatali: Ah, true
21:09 dcbaker: but there's a couple in each that's unique, do you mind overlinking? or should I try to add logic to sort them out?
21:10 jenatali: Overlinking should be fine, we should only pull in bits from the modules that are needed
21:11 jenatali: As long as they're actually built - we currently build a trimmed down list of modules so we might not have everything that Clover needs
21:11 jenatali: though, I did manage to get Clover to build against my Clang at one point so we probably do
21:12 jekstrand: dcbaker: I suspect the "right" thing to do is to make my common CLC MR work for both Linux and Windows.
21:12 dcbaker: gah, and now I need a Meson feature I've known I should have fixed by now and haven't ☹️
21:12 jekstrand: Then we can move clover to it eventually and drop the current clover stuff.
21:12 dcbaker: sounds like a plan
21:12 jekstrand: I don't mind if the current clover stuff is "fixed" before we drop it.
21:12 dcbaker: for now then I'm going to leave my MR as-is and we can go from there
21:13 jekstrand: Ok. Would you mind applying whatever you did to your MR to my MR?
21:13 jekstrand: Just throw patches on top. It'll all have to be squashed in the end.
21:27 mattst88: https://gitlab.freedesktop.org/mesa/mesa/-/jobs/7453955
21:27 mattst88: 21-02-19 21:26:58 ERROR - dEQP error: SPIR-V WARNING:
21:27 mattst88: 21-02-19 21:26:58 ERROR - dEQP error: In file ../src/compiler/spirv/spirv_to_nir.c:1074
21:28 mattst88: 21-02-19 21:26:58 ERROR - dEQP error: Decoration not allowed on struct members: SpvDecorationInvariant
21:28 mattst88: 21-02-19 21:26:58 ERROR - dEQP error: 1204 bytes into the SPIR-V binary
21:28 mattst88: I've seen that locally too. known regression?
21:28 zmike: I saw "SPIR-V WARNING" and immediately rushed to the log to see what I broke because I'm so used to seeing that during zink testing
21:28 mattst88: heh
21:31 anholt: mattst88: sounds like an existing warning
21:31 anholt: we don't error out our tests for stderr complaints, lots of vulkan drivers end up with stderr spam from vtn during the cts
21:31 mattst88: okay. maybe I'm only noticing it because I silenced a bunch of other fprintf spew from my deqp runs
21:32 anholt: restrict is another favorite one that gets complained about
21:32 jenatali: I'm trying to dig into https://gitlab.freedesktop.org/mesa/mesa/-/issues/4050, where somehow Dolphin apparently causes our driver to try to do front buffer rendering, and I'm having trouble even figuring out where start digging :( Any ideas?
21:34 alyssa: Dolphin *shrug*
21:36 zmike: emulators shrug
21:38 jekstrand: mattst88: Known glslang bug
21:38 jekstrand: mattst88: That's never been fixed
21:38 mattst88: jekstrand: okay, thanks
21:39 jekstrand: Feel free to fix it. :P
21:39 jekstrand: And by "fix it" I don't mean make our SPIR-V parser not warn. I mean fix glslang. Just want to be clear. :)
21:40 jekstrand: zmike: Is Zink now a more conformang GLSL -> SPIR-V path?
21:41 zmike: jekstrand: what's your reference for "more" in this case?
21:41 zmike: jekstrand: totally unrelated, !9113 needs your expert review
21:41 jekstrand: zmike: ¯\_(ツ)_/¯
21:45 zmike: btw nobody else look at that MR, zink is 100% conformant and that's all you need to know
21:46 alyssa: Khronos would like a word.
21:47 zmike: uh, well, mr khronos, sir, uhh, wha-nice to hear from you!
21:48 Sachiel: is this khronos guy the one from khronos trigger?
21:49 zmike: no, that's crono, we're talking about guy from dragonball z--goku's short friend
21:54 alyssa: chrono? clockman?
21:56 jekstrand: jenatali: Looking at the clover stuff, it doesn't look like it'll be easy to move over to share with clc. It's very tightly intertwined with the LLVM compile path used by old AMD clover.
21:57 jenatali: jekstrand: :(
21:57 jekstrand: We just need to delete the non-NIR path
21:58 jekstrand: "just"... heh.
21:58 alyssa: jekstrand: Any commit deleting non-NIR has my r-b ;P
21:59 jekstrand: :)
21:59 anholt: ajax: let's see what https://gitlab.freedesktop.org/anholt/mesa/-/pipelines/273686 says
21:59 jekstrand: I think someone probably has to finish r600 NIR first.
22:02 jekstrand: jenatali: I don't see you setting the clang language version anywhere. Am I mising something?
22:02 jenatali: jekstrand: Language version?
22:02 jenatali: I didn't write that Meson so I'm not super familiar with it
22:02 jenatali: Or are you talking about in the invocation?
22:02 alyssa: Does... anyone use AMD+LLVM+clover?
22:03 jekstrand: Oh, I see. clover sets it via C++ and you set it via strings.
22:03 jekstrand: -cl-std=cl1.1
22:03 jenatali: jekstrand: Oh right. We originally were using Clover's approach but I found it much simpler to set the strings and let the logic inside the parameter parsing set everything up for me
22:06 Thaodan: Hey I have a AMD 6900 XT and recently got some shutdowns because of overheat (amdgpu 0000:03:00.0: amdgpu: ERROR: GPU over temperature range(SW CTF) detected!) how can I debug if this was true or bug in the driver?
22:07 emersion: last time this happened to me i forgot to plug in the GPU fan after re-assembly
22:08 Thaodan: The gpu was in high use at that time (4k gaming)
22:08 Thaodan: Well the fan was defenetly plugged in, I did not deassembly it so far (want to equip a waterblock later)
22:09 Lyude: i'd stress test the card and see if you can reproduce the issue
22:09 emersion: i guess you could query the temp readings
22:09 Lyude: and yeah - keep an eye on the thermal sensors
22:10 Lyude: tbh some of the older amd cards were pretty well known for doubling as toasters, so it's definitely not unlikely it could be an issue with your setup dispersing heat
22:11 Lyude: I know my r9 380 is almost never below 50°C just while it's idling with my displays turned on, it's always been a hot card
22:11 Lyude: (still works pretty well though, minus the one performance issue I need to bisect upstream)
22:12 jenatali: Ugh, I think I found my Dolphin bug... apparently they swap buffers without the framebuffer bound, which means we don't flush, so later on we flush rendering to the surface that was the back buffer but is now the front buffer :(
22:12 Thaodan: Lyude: It's the latest AMD card
22:12 Lyude: ooooh ok, yeah those are usually a lot better with heat
22:13 Lyude: it's still definitely worth stress testing it and keeping an eye on the thermal sensors, it could be an issue with airflow in your case or something (if you take the side of your chassis off and the temperature drops pretty significantly, you probably need more case fans :)
22:13 Thaodan: : AMD SIENNA_CICHLID (DRM 3.40.0, 5.10.15-pf12-1, LLVM 13.0.0) (0x73bf)
22:15 ccr: so .. if it runs too hot, does it become burnt sienna? :P
22:18 Thaodan: I thought there is maybe something similar too https://gitlab.freedesktop.org/drm/amd/-/issues/1267 but for RNDA2
22:20 Lyude: i'd just test your setup first before blaming the driver tbh
22:28 bnieuwenhuizen: I'd say check if your fan ramps up while it is getting hotter
22:29 Lyude: oh - yeah that's another good point
22:29 Lyude: if it doesn't -then- it's probably a bug
22:31 Thaodan: Doing that and with vkmark and gputest the fans run up and work no issue
22:31 jenatali: Well, I guess this is my reason to implement Win32 TLS. Apparently this bug is because one thread ends up unbinding the context from another, because it's before Mesa realizes that the app is multithreaded
22:32 Thaodan: I had the issue while using wine with vkd3d no clue if that could be related
22:33 Thaodan: I also had a kernel panic in the amdgpu drivers hours ago before that happened: https://paste.opensuse.org/3438225
22:34 Thaodan: Not sure if that is related
22:34 Lyude: looks like a modesetting bug related to displayport with amdgpu, probably unrelated
22:41 Thaodan: https://openbenchmarking.org/result/2102193-HA-TMPTEST5344
22:41 Thaodan: Everything fine
22:41 Thaodan: strange
22:43 Lyude: Thaodan you might want to try something that's more focused on really stressing it out and not just benchmarking, like UNIGINE
22:43 Lyude: and leave it running for a while until the temperature appears to have flatlined (e.g. it's gotten as hot as it seems like it's going to get, and is no longer rising)
22:59 Thaodan: Ran Unigine Superposition 4k and 8k back to back no issue
23:57 Lyude: Is 80 still the default column limit for the kernel? I had thought that we bumped it up to 100