00:27hopetech: jekstrand: Any input on https://gitlab.freedesktop.org/mesa/mesa/issues/2467 ? In Clover, the variable creation failed for array
00:27gitbot: Mesa issue 2467 in mesa "spirv_to_nir: variable creation fail." [Opened]
00:29hopetech: IIn the spirv, we have an `OpArray` then a `OpTypePointer UniformConstant` and a `OpVariable`
00:32hopetech: As we are setting the constant_as_global flag to true, the mode is then set to CrossWorkgroup
00:32jekstrand: hopetech: Ugh
00:40jekstrand: hopetech: Storage classes in SPIR-V can be... loose... :(
00:41jekstrand: In Vulkan, UniformConstant always means UBO
00:41jekstrand: It sounds like the clang is trying to "help" by saying that it's UniformConstant even though it's just a constant local thing
00:42hopetech: Yes, but spirv-to-nir make it worse by setting it to CrossWorkgroup. ;)
00:42jekstrand: Which is probably wrong
00:42jekstrand: I think setting it to CrossWorkgroup is a bad hack
00:44jekstrand: We just do that because, at the end of the day, we want nir_intrinsic_load_global
00:44jekstrand: Which I don't think is actually 100% true.
00:44jekstrand: I think, at the end of the day, we want a new nir_intrinsic_load_global_constant
00:44jekstrand: Unless, of course, it's just a temporary constant in which case we want it to copy-prop
00:47hopetech: Well, we have the same issue if the array is define outside of the function
00:47jekstrand: The problem is that the array is being declared at all rather than coming in as a pointer
00:47hopetech: So a load_global would make sense
00:48jekstrand: load_global is kind-of orthogonal
00:49jekstrand: The real fundamental problem here is that OpenCL doesn't make a distinction between external memory, scratch, and shared.
00:49HdkR: Doesn't everyone hate OpenCL?
00:49jekstrand: HdkR: Yeah, pretty much.
00:50jekstrand: So the way an OpenCL compiler is *supposed* to work is that you should just assume everything is a generic pointer and be happy with that unless you can either prove that it is a particular type of pointer or you have some type decoration telling you it's a specific type of pointer.
00:51jekstrand: NIR, unfortunately, doesn't like to work that way.
00:51jekstrand: NIR lives in graphics land where we have separate water-tight boxes for different types of things
00:57hopetech: Yeah I get that OpenCL part.
00:58airlied: hopetech: I'd also poke around some of karol's trees, there are many outstanding cl hacks
01:00airlied: though I don't see much in that area
01:01hopetech: airlied: Yes I saw that you have few branches related to ocl. I cherry-pick some patches tbh.
01:01hopetech: But yes nothing related to storage class
01:04airlied: hopetech: he also has some spirv-llvm-translator branches
01:06hopetech: we spoke at fosdem few days ago and try to fix the issue without luck
01:10Kayden: mareko: https://mesa-ci.01.org/mareko/builds/2/group/63a9f0ea7bb98050796b649e85481845 - your build succeeded it seems, no failures at all.
01:20imirkin_: jekstrand: i think it's doubly-annoying in that a pointer might be to global *or* shared (or local) memory
01:21imirkin_: (or is that triply annoying)
01:21imirkin_: i think there was talk about making fat pointers, but i dunno if that went anywhere
01:22HdkR: With OpenCL can the address space not be known at runtime as well? So you pass a global,shared,local pointer through an generic pointer type and it "just" works?
01:23airlied: magically :-P
01:23imirkin_: that was my understanding.
01:23imirkin_: or doesn't work, depending on the driver :)
01:23HdkR: Well that explains the Nvidia LD instruction to me then
01:23airlied: opencl2.0 introduced generic address space
01:23imirkin_: HdkR: yeah, with the windows
01:23imirkin_: you can definitely qualify pointers with global or whatever
01:24airlied: in opencl 1.2 you had to qualify all of them
01:24airlied: generics cover local, global and private, const remains separate
01:24airlied: kinda need it for SVM I think
01:25jekstrand: imirkin_: I think that's nearly infinitely annoying. :P
01:25airlied: https://software.intel.com/en-us/articles/the-generic-address-space-in-opencl-20 if you want details
01:39jekstrand: airlied: Sure but that doesn't help the "OpenCL and NIR think differently" problem nearly as much as it looks like it does. :-(
02:23airlied: jekstrand: yeah need to make NIR think different :-P
02:24jekstrand: airlied: :P
02:26jekstrand: airlied: I think we can, it's just going to take a more holistic approach that whacking storage classes and hoping for the best.
03:33airlied: yay the nop.shader_test tess shader passes
03:34jekstrand: airlied: llvmpipe tess?
03:40airlied: jekstrand: yeah, seemed like it would be good to increase CI coverage a bit further :-P
03:41airlied: and the swr folks imported a working tessellator :-P
03:42jekstrand: That was nice of them. :)
12:39imirkin: hakzsam: feq != !fne with NaNs either ... the opts just need to be marked imprecise, i think.
12:40imirkin: (er actually is that true? hmmm)
12:41imirkin: yeah, i lied, nevermind.
12:53hopetech: jekstrand: airlied: Not sure if I like that conclusion. ;)
12:59jekstrand: hopetech: oh?
13:00jekstrand: imirkin_: != is the one exception
13:00jekstrand: imirkin_: Throws me off too
13:00jekstrand: imirkin_: If one wants to make an ordered !=, it's rather annoying
13:08hopetech: jekstrand: Well, I was hoping that the spirv-to-nir would be easier. :-P
13:08hopetech: I'm trying to get a better spirv from llvm
13:09hopetech: without UniformConstant or CrossWorkgroup then
13:12jekstrand: hopetech: What storage class do we get in SPIR-V for a random pointer that happens to be tagged const?
13:12jekstrand: hopetech: I'm trying to understand why clang is giving us UniformConstant there
13:20hopetech: Dunno. I have to check
13:21jekstrand: I sort-of suspect that we want NIR to grow a new nir_var_mode called nir_var_mem_constant
13:25hopetech: SPIRV-LLVM-Translator give us the UniformConstant. I'm scared than the LLVM IR is already f up.
14:54Venemo: daniels: another build flake, this time a "script failure" with meson-ppc64el: https://gitlab.freedesktop.org/Venemo/mesa/-/jobs/1602310
15:16MrCooper: Venemo: could actually be a bug in src/compiler/glsl/tests/cache_test , e.g. valgrind flags it using uninitialized stack memory
15:17Venemo: MrCooper: it just starts to feel like a cruel joke
15:18MrCooper: that software is full of bugs? ;)
15:19MrCooper: what do you suggest, should we go back to not trying to catch issues like this, just close our eyes and ears and pray?
15:19Venemo: no offence meant
15:19Venemo: it's just that something that is totally unrelated to what I do fails
15:20MrCooper: increased testing coverage can turn up long standing bugs
15:20Venemo: it sure can
15:28idr: dcbaker: Let me know when you're online, Dr. Python. :(
15:37dcbaker: whats up?
15:37ribeiro_snps: Hi guys, I have been working with the dw_mipi_dsi driver and I'm implementing non-burst video modes. However, I can't find a DSI device that doesn't have enough memory to receive a complete line, i.e. it needs data to be transmitted in chunks. Can someone point me to a device with these requirements? Thanks!! :]
16:14idr: dcbaker: I'm looking for some suggestions about https://gitlab.freedesktop.org/mesa/piglit/issues/31
16:14gitbot: Mesa issue 31 in piglit "intel_shader_integer_functions2 mingw-w64 i686 build errors" [Opened]
16:15idr: As far as I understand it, np.int32() behave wildly differently on 32-bit and 64-bit platforms. :(
16:15imirkin_: py2 vs py3, i think
16:15imirkin_: with py3, integers get auto-upgraded
16:15dcbaker: imirkin_: those are numpy types
16:15imirkin_: oh, this is numpy
16:16idr: Hm... there could still be something to that.
16:16idr: These are casts from "a type" to a numpy type. I guess if "a type" is different... maybe?
16:17idr: Do we do 32-bit runs at all in the Intel CI?
16:17idr: Why haven't we hit this?
16:17idr: Duh... we must because there's another 32-bit bug.
16:17dcbaker: idr: I think the bug is actualy somewhere else, numpy documentation says that `np.int32` is a int32_t type
16:18dcbaker: so it should be the same on 64bit and 32bit platforms, unless my memory about C types is wrong
16:18idr: Right... it's just barfing based on the input, so if the input is a different type.
16:18dcbaker: that's on windows
16:18dcbaker: or, with mingw at least
16:19idr: Another user reported the same problem on Raspbian.
16:20idr: So I don't think it's specific to Windows or mingw.
16:28MrCooper: Venemo: I filed https://gitlab.freedesktop.org/mesa/mesa/issues/2505
16:28gitbot: Mesa issue 2505 in mesa "cache_test intermittently fails in ppc64el/s390x build jobs" [Glsl, Opened]
16:29Venemo: thx MrCooper
18:59jhli: daniels: Would you mind merging libdrm getfb2? Got reviewed by eric_engestrom now
19:28eric_engestrom: jhli: I just pushed it on a branch on my libdrm fork, and it failed the tests because you're exporting a couple of new symbols and need to add those to the list of allowed symbols (it's there to avoid accidentally exporting something)
19:28eric_engestrom: jhli: https://git.io/JvCrg fixes it
19:31eric_engestrom: jhli: https://gitlab.freedesktop.org/eric/libdrm/pipelines/107377 all green now :)
19:32eric_engestrom: daniels: I'll let you have the final word on merging this though since it's your patch
19:35Lyude: mlankhorst, mripard - have any of you gotten to the drm-misc-fixes merge yet?
20:06jhli: eric_engestrom: Thanks!
20:22jhli: eric_engestrom: daniels: added the symbols in v8 https://patchwork.kernel.org/patch/11376835/
20:22jhli: eric_engestrom: thanks for all the help, much appreciated!
20:23eric_engestrom: jhli: :)
20:24eric_engestrom: jhli: btw running `ninja test` runs the tests, always a good idea to do that before sending patches
20:25jhli: ahh got it
20:33anholt_: daniels: I assume our arm builders are supposed to be running jobs at -j4 like x86, right?
21:08pcercuei: What's the purpose of DRM_MODE_TYPE_PREFERRED exactly? It's the preferred mode when there is more than one?
21:08ajax: typically for lcds it's the native pixel format
21:09ajax: so, kinda yeah.
21:12pcercuei: panel-simple.c confuses me, it sets this flag only if there is one single mode
21:17seanpaul: Lyude: getting some unexpected timeouts on the mst tx_waitq on a new sideband message i'm working on (QUERY_STREAM_ENCRYPTION_STATUS)... it's not super deterministic, but when it fails it tends to fail multiple times. can you think of anything i should be on the lookout for?
21:31sravn: pcercuei: See cda553725c92b9f908f6f69e9bc05de81384d817 for a little background info
21:32sravn: pcercuei: But I do not know anything more than that, so if your analysis come uo with something better please let me know
21:33pcercuei: hmm ok
21:33pcercuei: I wonder if it's possible to change the fbdev emulation's video mode at runtime
21:47Lyude: seanpaul: sigh, mst timeouts are always a pain. I guess the first few things that come to mind: improperly encoded messages, sending more then one tx at a time to the same mstb without waiting (this should have gotten fixed by amd), forgetting to clear an interrupt in the ESI
21:48Lyude: Also: it's always good to make sure it's an actual tx timeout, and not some vague deadlock-like scenario between threads
21:52Lyude: but yeah... there's a lot of stuff that seems to make hubs timeout instead of actually just, raising a sensible error code
21:53anholt_: tomeu: any idea why !3661 is making t860 so slow? https://gitlab.freedesktop.org/anholt/mesa/-/jobs/1605456
21:54anholt_: I've seen OOM killer happen in previous runs.
21:56anholt_: I don't think I've increased ram pressure really -- +2MB of qcom firmware, but minus a bunch of kernel image. I think we strip out all the apt stuff, so adding non-free to the repos should be fine.
22:42seanpaul: Lyude: thanks for the punch list!
23:20daniels: anholt_: iirc the arm ones are aimed for -j8
23:20anholt_: oh, interesting. if so, we should be bumping up our build jobs other than kernel and dropping down the kernel one.
23:21anholt_: more -j would certainly help as it's taking me 50 minutes every time I try to make a kernel for the lava cluster.
23:22anholt_: because we build arm32 and arm64 deqp and kernel in a single arm_build container.
23:22anholt_: cache setup on the arms should be the same as for x86?
23:23anholt_:would love some stable ccache
23:23Kayden: you have to build the kernel? :(
23:23anholt_: Kayden: we get to pick our kernel and deploy it. so you only need to rebuild it when you need to rebuild, but unfortunately a bunch of rebuilds are all globbed together and we have no ccache currently.
23:24anholt_: with my docker setup, everyone gets whatever kernel I deployed on the cheza/db410cs and we have to live with that until I go offline them and update them individually, which is obviously awful
23:24daniels: jhli: pushed now, thanks
23:33daniels: anholt_: there are only two aarch64 runners and they both have pretty big disk, so you should be able to see ccache
23:33anholt_: daniels: ok, so we've got the /cache volume mounted to some storage on the disk
23:34anholt_: oh. cool. we've got ninja with no -j args for the gl case. /o\
23:34anholt_: wonder if this has contributed to some of our runners getting weird.
23:35anholt_: (we really need kubernetes to load balance between our containers. and even then it would be nice if kube could lie to the pod about how many cpus existed so that we didn't have to manually tune our -js)
23:47imirkin_: anholt_: idle curiousity on my part, but with is "no -j args" bad?
23:48anholt_: imirkin_: ninja will make about 1 process per CPU, but we have concurrent jobs = CPUs / 4 (ish). so on big runners, now everyone's putting memory pressure on to try to get parallelism that isn't available.
23:48imirkin_: aha, i see
23:49anholt_: things probably mostly work out because you're not often stacked up against someone else that screwed up. but how much of our random shared runner failure is due to that, I wonder
23:49imirkin_: and you're definitely incurring a lot more system time cost with that setup