00:14 mattst88: airlied: I bet idr has one :)
00:15 imirkin: i'd put money on vsyrjala
00:17 airlied: I think I have one in the office, but I might have junked it
00:21 airlied: man 13 years since I added tex rect support to i815 :-P
00:22 airlied: 15 years since I wrote the patch
00:25 imirkin: it's a little scary how time flies
00:26 malice: imirkin: A LITTLE?
00:27 malice: It is VERY scary
01:14 imirkin: malice: i didn't want to start a panic :)
01:16 zf: the best thing that you can do, is take whatever comes to you
07:13 Venemo: jekstrand: can I ask you to review MR 4202 for us, please? it yields a big improvement for TCS
07:14 Venemo: jekstrand: I think it will also help TCS in your drivers as well
07:31 Lightsword: anyone know what might be causing an undefined reference to `vgPlain_tl_pre_clo_init' build error when trying to link libgbm? see here http://autobuild.buildroot.net/results/bc0/bc0c32a6daffc1213caf2ad7ebcf651b2305edcf/build-end.log for log
07:33 mripard: Lyude: shouldn't we do it the other way around?
07:33 mripard: ie, merge the fix in drm-misc-fixes, and resolve the conflict in next when it happens?
07:59 pq: daniels, yeah, that's a technical detail of what happens with them. But what's the use case?
08:12 linkmauve: Pentium 4 era motherboard says “Supports Integrated Intel® Extreme Graphics 2 and DirectX 8.0”, which Intel GPU is that?
08:13 linkmauve: 865G it says about the northbridge.
10:56 vliaskov: hi itoral, are there any special instructions for building piglit on rpi/aarch64? I am getting a python3 crash early during the build https://pastebin.com/wm1Dex6D (whereas piglit builds fine e.g. on x86_64)
10:58 itoral: vliaskov: I don't think so, but maybe chema[m] knows better.
10:58 itoral: (I have not built piglit on that target for a while)
10:59 vliaskov: ok, thank you
11:07 txenoo: Hi vliaskov , i compile it on raspbian and there is nothing special, maybe some dependency is not installed.
11:13 txenoo: My recipe to build piglit from scratch is just:
11:13 txenoo: cd piglit
11:13 txenoo: git clean -xfdq
11:13 txenoo: cmake -DCMAKE_BUILD_TYPE=Release . -G Ninja
11:13 txenoo: cmake --build .
11:43 bbrezillon: karolherbst: I'm working on atomic ops support for CL-on-D3D12 and DXIL atomic instructions take a semantics argument, meaning that we could group the mem_barrier(before_semantics)+atomic_X()+mem_barrier(after_semantics) into a single atomic_X_with_semantics(semantics) instruction
11:44 bbrezillon: the question is, should we have spirv_to_nir() issue those atomic_X_with_semantics() instructions or should we add a DXIL-specific optimization pass
11:45 karolherbst: bbrezillon: dunno.. btw, I have some atomic patches
11:45 karolherbst: bbrezillon: https://gitlab.freedesktop.org/karolherbst/mesa/-/commit/da085a9ab5a943c7a6ed997866d26d6796b54217
11:45 karolherbst: but I guess you already handle that in DXIL in some way (or drivers do)
11:46 karolherbst: no idea about barriers though... it kind of feels counterintuative to merge the barrier with the atomic op
11:46 karolherbst: as you could share a barrier with multiple ops as long as you know that this works out
11:47 bbrezillon: not sure, I'll have a look
11:48 bbrezillon: well, SPIR-V has it in a single instruction too
11:48 karolherbst: yeah.. I guess DXIL is more high level than nir is
11:48 karolherbst: but mhh
11:49 karolherbst: I have no real opinion on that though. I just see that one could optimize here a little
11:50 karolherbst: bbrezillon: well.. what about this: if all your atomics have an implicit barrier, you could just skip emiting barriers for atomics, no?
11:51 karolherbst: you could add a spirv_to_nir option for that
11:51 bbrezillon: karolherbst: it's not implicit
11:51 bbrezillon: I have to specify the semantics I want to use
11:51 karolherbst: mhh, true
11:51 bbrezillon: and I still need to support explicit barriers
11:51 bbrezillon: then the issue is about finding which ones are attached to atomic ops
11:51 bbrezillon: and which ones are really necessary
11:52 bbrezillon: BTW, I noticed that the scope attached to AtomicOp operating on local memory was Device
11:52 karolherbst: bbrezillon: the bigger issue I see is that we will end up with lots of atomic ops.. we already have the deref vs !deref ones
11:52 bbrezillon: I'd expect it to be WorkGroup
11:53 bbrezillon: in the same vain (but not entirely related), I added a scoped_memory_control barrier intrinsic
11:53 bbrezillon: https://gitlab.freedesktop.org/kusma/mesa/-/merge_requests/27/commits
11:54 bbrezillon: that's because DXIL can't do control barriers that have no memory barriers attached to them
11:56 karolherbst: bbrezillon: in regards to the semantic ones, I think it would probably make sense to add a semantics field to the deref variants and in lower_io decide what gets emited.. but overall that sounds like a bigger rework and I don't know what implications all of that would have
11:56 karolherbst: especially as some drivers consume the derefs
11:56 karolherbst: jekstrand probably has some strong opinions on that
11:57 bbrezillon: karolherbst: I could definitely add a optimization pass to merge the mem_barrier(acq)+atomic_X()+mem_barrier(rel), but that implies having the right scope for the mem_barrier, otherwise I'll have a hard time figure out whether those can be merged or not
11:57 karolherbst: yeah...
11:57 karolherbst: I don't think going this route is working out that nicely
11:57 bbrezillon: me neither :)
11:57 karolherbst: splitting in with a nir pass is probably the better approach
11:57 karolherbst: just needs fixing up some passes and maybe even drivers
11:58 karolherbst: bbrezillon: are you consuming the derefs or lowered instructions?
11:58 karolherbst: I'd assume deref
11:58 karolherbst: but...
11:58 karolherbst: no idea about dxil :)
11:58 bbrezillon: for shared and global mem we consume the lowered instructions
11:58 karolherbst: ahh
11:58 karolherbst: yeah...
11:58 karolherbst: I see some work in front of you :p
11:59 karolherbst: anyway, let's discuss this with jekstrand, maybe we will come up with a better plan then
13:11 bbrezillon: karolherbst: another question related to atomics on global memory. Shouldn't they have the CrossWorkgroupMemory semantics flag set?
13:14 pendingchaos: bbrezillon: would that optimization pass be correct? barriers apply to all memory operations, not just the atomic
13:14 pendingchaos: IIRC bnieuwen1uizen mentioned that RADV has a similar issue btw
13:14 bbrezillon: pendingchaos: no, that's the problem
13:16 pendingchaos: ok, I must have missed it while reading the messages
13:16 bbrezillon: well, I didn't mention that part actually :)
14:04 sravn: linusw: What about panel-complicated or panel-everything or panel-... :-)
14:05 linusw: sravn: haha :D
14:05 sravn: linusw: Well the panels are simple, they just require more and more complex SW to handle all situations
14:06 danvet: j4ni, on "[PATCH 38/59] drm/i915: Use devm_drm_dev_alloc" ack for merging through drm-misc or want to backmerge and all that?
14:06 linusw: sravn: hm yeah, but given how many panels are actually complex just disguised as simple I'm suspicious about a whole lot of them.
14:06 danvet: I don't mind since it's a huge pile of follow-up driver patches anyway
14:07 linusw: sravn: I bet a ton of them actually have things like custom DSI commands to set gamma correction and what not :/
14:31 jekstrand: bbrezillon: I think I'd like to eventually move NIR to having semantics on the individual memory ops.
14:32 jekstrand: bbrezillon: When we first implemented the Vulkan memory model, barriers were what we had plumbed through everywhere and so that's what we did.
14:32 jekstrand: On Intel, barriers are all we have so we really do need that. However, I think AMD and Nvidia both have some sort of per-op semantics information.
14:35 bbrezillon: jekstrand: ok, I can try to work on that. I guess we'll need a lowering pass to generate those barriers for intel (and all drivers needed that do not handle semantics on memory ops)
14:35 bbrezillon: s/needed//
14:53 jekstrand: bbrezillon: Yup. We'll also have to very carefully think about what all the per-op stuff means for various optimization passes such as nir_opt_copy_prop_vars
15:31 j4ni: danvet: ack, I don't care
15:32 j4ni: (that came out more negative than intended; I don't mind either way is perhaps more accurate)
15:32 Lyude: mripard: mhhh-yeah you are right, I already pushed something to drm-misc-next though :S (sorry-haven't had to do this before)
15:33 danvet: j4ni, thx, I'll push it through misc then
15:37 Lyude: mripard: how should we move forward?
15:43 mripard: Lyude: I don't really know
15:44 Lyude: mripard: i'm fine with waiting for it to hit master then just backporting it from there if that would be easier
15:44 mripard: maybe the least messy would be to not push a fix for now, and just send the backport to stable directly when it's in linus' tree ?
15:44 Lyude: mripard: seems we're in agreement :p, I wonder if I should add a section about this to the drm maintainer manual at some point
15:51 mripard: Lyude: if you have some spare time, please go ahead :)
16:06 tlwoerner: daniels: just a reminder, you wanted to talk about https://gitlab.freedesktop.org/freedesktop/freedesktop/issues/76 later this week, perhaps thursday or friday?
16:06 gitbot: freedesktop.org issue 76 in freedesktop "Guiding new contributors" [Non-Technical, Opened]
16:11 daniels: tlwoerner: yeah, either would be good for me :)
16:11 daniels: but I did leave some thoughts on #xf-bod
17:06 MrCooper: danvet: by "save&restore" you mean every DRM master should save the complete atomic KMS state when its VT becomes active, and restore it when it becomes inactive? I.e. basically what Xorg & friends did in the good old UMS days? ;)
17:14 sravn: danvet: so we need to look at dw-mipi-dsi and dw-hdmi. Nice to know that there is enough to do when one start to poke a head into a new area.
17:16 sravn: Hands are full of the chained bridge stuff, and I think we should try to fix it mostly before untangling other stuff.
17:17 sravn: linusw: Yeah, many panles hides a simple. Good news is that we can migrate them out of panel-canpake^Wsimple anytime
17:28 danvet: MrCooper, maybe other way round, you capture a full state once when you start
17:28 danvet: then force-restore that
17:28 danvet: when you switch back to being the active compositor
17:28 danvet: otherwise too much being at the mercy of everyone else
17:28 danvet: I still think pushing that into logind or similar would be best
17:29 danvet: sravn, yeah I think we need to be pragmatic on this
17:29 danvet: I only got into this because I read one of these patches
17:29 danvet: and then noticed we have an entire pile that further the same old pattern of not-really using drm_bridge as a proper abstraction
17:29 danvet: and somewhere we need to stop this
17:30 danvet: otherwise we'll end up with 10+ users, and then it's going to be major surgery
17:30 danvet: plus I do think all the fundamental issues (like device links not working on reload for EPROBE_DEFER and stuff like that) is fixed now
17:49 pendingchaos: jekstrand: can you take a look at https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4757 ?
17:53 jekstrand: pendingchaos: commented
18:27 sravn: vsyrjala: would be good to get the reviewed patches applied soonish, so we do not gain new conflicts as there is never a week without a new panel
18:28 sravn: vsyrjala: And no, I still do not feel I am competent to review the last patch - sorry.
18:30 vsyrjala: yeah, just need to get it past the ci
18:38 sravn: vsyrjala: sounds great
18:49 krh: jekstrand: why is there a mode field on both nir_deref_instr and nir_variable, and what happens when they don't agree?
18:50 krh: jekstrand: for example, print_deref_instr prints instr->mode but lower_io uses var->data.mode
18:50 jekstrand: krh: nir_validate requires them to agree exactly
18:51 jekstrand: krh: The mode exists for when you can't get to the variable
18:51 jekstrand: Such as for Vulkan variable pointers
18:51 krh: jekstrand: so lower_io_to_temporaries is broken then? It modifies var->data.mode but doesn't fixup the derefs... oh or is that what nir_fixup_derefs do?
18:52 jekstrand: krh: That's what nir_fixup_derefs does. :)
18:53 krh: amazing
18:53 krh: there's function for everything
18:57 krh: much better
18:57 jekstrand: :)
18:58 krh: jekstrand: one more question: is nir_copy_var suspposed to handle struct types?
19:00 krh: it looks like nir_lower_var_copies just lowers it to load_deref and store_def pair on the top level var, which doesn't look right
19:02 jekstrand: krh: Yes, it is
19:03 jekstrand: krh: nir_split_var_copies is supposed to be run first
19:03 jekstrand: krh: There'a a pass for everything. :)
19:05 krh: I never doubted that - the tricky part is to figure which one it is :)
19:05 krh: jekstrand: thanks!
19:06 jekstrand: Yeah, bootstrapping a new NIR compiler is non-trivial
19:35 karolherbst: jekstrand: on nv we have explicit barrier instructions
19:35 karolherbst: nothing on the load/store/atom instructions afaik
19:36 karolherbst: we can set caching modes on the load/stores
19:36 karolherbst: but barriers are explicit
19:37 jekstrand: Yeah, that makes sense
19:38 karolherbst: we even used to have explicit texture barriers... but luckily nvidia got rid of them :)
19:38 imirkin: still there
19:38 imirkin: just part of the ISA-builtin-barriers now
19:38 imirkin: instead of explicit ops
19:38 karolherbst: imirkin: right... but I meant the normal ones
19:39 karolherbst: like "wait on this tex to finish"
19:39 karolherbst: ohh
19:39 imirkin: the old texbar's had a depth
19:39 karolherbst: you mean the sched barriers
19:39 imirkin: yea
19:39 karolherbst: ahh yeah.. sure
19:39 imirkin: so you could say "wait until there no more than 2 texture ops outstanding"
19:39 karolherbst: yeah.. but that we can't do anymore... except with being super hacky on those sched barriers
19:40 karolherbst: or is there still a way to do this natively
19:40 karolherbst:wondering what happens if you assign the same barrier to multiple instructions
19:51 imirkin: karolherbst: "assign"?
19:51 imirkin: you can tell an instruction to signal a barrier
19:51 imirkin: or wait for one
19:52 imirkin: if multiple instructions signal the same barrier, then ... multiple instructions signal the same barrier :)
19:53 karolherbst: yeah...
19:53 karolherbst: I assume bad things will happen
19:54 imirkin: i forget how the reset happens exactly
19:54 imirkin: or if it's a semaphore type thing
20:39 austriancoder: eric_engestrom: at what time will you branch tomorrow?
20:40 eric_engestrom: austriancoder: not sure, for one it might be a bit delayed depending on the MRs that are holding it (I actually just sent all of them a reminder a couple of minutes ago)
20:41 eric_engestrom: I'll look at the status of all of them and start doing things at around 18:00 UTC I think, but we'll see on what exact commit the branch is cut
20:42 austriancoder: eric_engestrom: okay... I try to land something before :)
20:43 eric_engestrom: austriancoder: add your MR to the 20.1-branchpoint milestone so that I can easily see that you want your MR to be part of the 20.1 branch ;)
20:43 eric_engestrom: https://gitlab.freedesktop.org/mesa/mesa/-/milestones/12
20:44 austriancoder: eric_engestrom: will do
22:54 anholt: folks that use RA: may want to look at https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4537 for a startup perf win
23:28 Kayden: anholt: very nice.