00:48 alyssa: Are there any tests for on-screen (or WSI shared) ARB_texture_barrier?
00:48 alyssa: neither piglit nor cts seem to cover this case, which is a big gap since I think it hits fun code paths in both iris and radeonsi
00:50 alyssa:isn't sure she knows enough EGL to write such a test off hand
00:53 airlied: don't remember seeing anything specific to that
01:01 alyssa: alright
01:02 alyssa: then I'm guessing it's broken in at least some drivers ;-)
01:03 airlied: but also in practice nobody has tried it in a real app :-P
01:11 alyssa: :clown:
02:11 jenatali: 6 Vk CTS failures left to debug on WARP. Then I guess we see where NV's driver is and maybe I can actually get conformance soon
02:12 jenatali:is ready to remove -experimental from the meson command line and the nom-conformance debug warning
02:13 HdkR: \o/
02:15 gfxstrand: \o/
02:15 gfxstrand:is hoping to remove it from NVK soon, too.
02:19 jenatali: These are all new tests from the older CTS snapshot I had been running. Feels disingenuous to try to claim conformance with something so old
02:25 alyssa: jenatali: :D
02:26 alyssa: jenatali: how many failures running dozen on vkd3d-proton on dozen on warp/
02:26 alyssa: :P
02:26 jenatali: I haven't tried, sounds slow
02:27 alyssa: :S
02:28 alyssa: :D
02:28 jenatali: I finally found out the test machine I'd been using had been underclocking itself which is why it was so bipolar between being speedy and painfully slow
02:49 kisak: nom-conformance <- the cats fetting to you?
02:49 kisak: *getting
03:04 jenatali: kisak: that's what I get for typing on a phone
03:05 ccr: mlem- and blep- conformance
07:54 vsyrjala: drm_buddy kunit stuff is apparently got broken in -rc1. is someone fixing that?
07:54 vsyrjala: mairacanal: ^ ?
07:54 vsyrjala: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14150/shard-mtlp-8/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
11:53 mairacanal: AnuthaDev, I'm not planning to take mentees this year :(, but we can chat on #videocore if you have any doubts about the driver
11:54 mairacanal: vsyrjala, I'll take a look into that in the end of the day
12:41 vsyrjala: mairacanal: here's another one perhaps https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14150/shard-mtlp-8/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
12:42 mairacanal: maybe grillo_0 has the interest to work on some of those issues, anyway I'll take a look later
14:23 javierm: vsyrjala, mairacanal: how does igt run the kunit tests? Asking because I just ran the kunit tests with v6.8-rc1 and all tests passed
14:24 javierm: this is with `make ARCH=um mrproper && /tools/testing/kunit/kunit.py run --kunitconfig=drivers/gpu/drm/tests/.kunitconfig`
14:25 mairacanal: maybe an issue with lib/igt_ktap? or an x86 issue?
14:26 javierm: mairacanal: let me try with x86
14:35 javierm: mairacanal: [15:34:49] Testing complete. Ran 390 tests: passed: 390 with `./tools/testing/kunit/kunit.py run --arch=x86_64 --kunitconfig=drivers/gpu/drm/tests/.kunitconfig`
14:35 javierm: so don't know why it fails with IGT tbh
14:36 mairacanal: are you running drm-misc-next or 6.8.0-rc1?
14:37 javierm: mairacanal: tag: v6.8-rc1
14:37 javierm: mairacanal: also tested with drm-misc-next btw and didn't find any issues
14:38 mairacanal: yeah, I'll have to investigate any changes in the ktap output
14:38 mairacanal: maybe the parser is not working properly anymore
14:39 javierm: mairacanal: Ok
14:47 jani: what if you could pass basically any drm object to the drm_dbg_*() macros, and if they had obj->dbg hook set, they'd use that, and fall back to obj->dev (struct drm_device *) debug logging?
14:49 jani: e.g. struct drm_connector could have a dbg hook that would print with the usual [CONNECTOR:%d:%s] format, using &connector->dev->dev device
14:49 jani: ditto for drm_crtc and drm_encoder etc.
14:50 jani: drm_dbg_kms(connector, "...");
14:57 emersion: sometimes the [CONNECTOR:…] thing is in the middle of the string, sometimes there are multiple
14:58 emersion: maybe we could have a simple obj->dbg string field instead?
14:58 emersion: hand-rolling these it definitely cumbersome
14:58 emersion: is*
15:01 daniels: that's a _really_ good idea
15:01 vsyrjala: i've occasionally thought about adding _FMT/_ARGS() macros for these, but those aren't very nice either
15:04 vsyrjala: i guess one could propose custom printk() conversions for them, but dunno how big the bikeshed would be
15:10 jani: the non-display side of i915 and xe have accumulated a crazy amount of foo_dbg() macros for various foo things. I'd like this to be a model that could perhaps be replicated for things not in drm core. i.e. "just" add a hook in the object and it'll get used.
15:11 jani: err, obviously I don't want the proliferation of new foo_dbg() to be the model! :)
15:12 jani: and feels like just adding format strings isn't going to be enough or pretty
15:15 jani: I guess you could just call e.g. connector->dbg() directly too, but with _ratelimited and _once versions, maybe going through macros is better
15:16 emersion: you could maybe also go through _Generic magic if you really wanted to…
15:17 jani: vsyrjala: regarding custom printk conversions, I personally think those have gotten out of hand (there are just way too many) and they're not very usable because it's a random sequence of meaningless format characters
15:18 jani: emersion: yes. it's just that neither checkpatch nor sparse have properly caught up to them. not a show stopper, but a minor nuisance
15:20 vsyrjala: i certainly hate all the "print this integer but pass it as a pointer" printk crap
15:20 vsyrjala: but i kinda wish we had a register_printk_function() for stuff where it makes sense
15:23 jani: vsyrjala: either that, or "%p{what-in-plain-english}" instead of %peLefweföwhatever
15:28 Company: if I want to use GL to render to a dmabuf (on Wayland), how would I do that?
15:28 Company: What's the recommended method?
15:28 emersion: import as EGLImage, bind to FBO, render to FBO
15:29 pq: no wayland needed
16:53 orbea: What is the best project to report this backtrace to? mesa? vulkan-loader? Parallel-RDP? (n64 vulkan plugin) https://github.com/Rosalie241/RMG/issues/219
16:57 alyssa: orbea: mesa, aco tag
16:57 alyssa: dschuermann: ^^
16:57 orbea: thanks, I'll make one in a moment
16:58 alyssa: It's entirely possible that the vulkan app is broken too
16:58 alyssa: but that backtrace indicates with almost-certainty an aco (radv compiler) bug
17:00 orbea: fwiw the vulkan code is here https://github.com/Themaister/parallel-rdp (or the autogenerated repo that is vendored in RMG: https://github.com/Themaister/parallel-rdp-standalone)
17:12 orbea: it also segfaults with RADV_DEBUG=llvm .... rebuilding llvm with symbols now which will take a bit
17:18 alyssa: curious
17:32 Company: emersion: hrm, but then I need to create the dmabuf myself, don't I?
17:33 Company: which was a thing I was hoping GL (or EGL) would do for me
17:49 MrCooper: Company: "I want to use GL to render to a dmabuf" kind of implied you already have a dma-buf :)
18:01 any1: libgbm
18:12 daniels: Company: yeah you only use (E)GL to import, not allocate
18:17 Company: MrCooper: what I want is make GtkGLArea not draw to a random GL texture, but to a dmabuf, so that I can use it for graphics offload (which is GL only) and with the Vulkan renderer (where I could use Vulkan to allocate the dmabuf)
18:21 Company: figuring out how to handle GLArea with the Vulkan renderer is one of the big questions before we can switch the renderer to Vulkan more aggressively
18:22 Company: I mean the interop works, but it goes via glReadPixels() so it's not the fastest...
18:32 mareko: daniels: wayland-protocols is just a subproject of Mesa for #includes that doesn't need to be installed, right?
18:33 mareko: daniels: if so, Mesa can fetch it for builds in subprojects/
18:33 daniels: mareko: yes, it’s a build-time provider of XML and nothing else
18:33 daniels: (which is why I was so surprised to be told that I couldn’t use any version not shipped in Ubuntu LTS-1)
18:34 mareko: daniels: my local Mesa build already seems to be set up to use wayland-protocols from the subproject directory, but I don't remember how it works
18:35 daniels: mareko: good news - so it’s ok to use newer versions from your pov?
18:35 mareko: it looks like it
18:36 mareko: see https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25683
18:37 mareko: I guess the file needs to be updated for any requirement updates
18:51 Calandracas: Is this the right place to ask a rusticl question? I'm trying to figure out which extensions are supported, but unfortuneately documentation on rusticl has been hard to find
19:30 austriancoder: Calandracas: https://mesamatrix.net/ has some information which is based on mesas features.txt
19:39 Calandracas: Thanks. The extension I'm looking "cl_ext_cxx_for_opencl" for is not even listed :(
19:42 karolherbst: Calandracas: do you actually have a use case for it?
19:42 karolherbst: it's not really a registered extension, so I'm reluctent of supporting it
19:43 Calandracas: Online compilation of clcpp. Currently im compiling the clcpp with clang, then llvm-spirv
19:43 karolherbst: well.. that's the prefered way of doing things anyway
19:43 alyssa: I mean, that's the same thing rusticl would do too
19:43 Calandracas: It's more of a convinience thing while developing
19:43 alyssa: :p
19:44 karolherbst: Calandracas: I think build systems should just support compiling to SPIR-V tho
19:44 karolherbst: providing SPIR-Vs to the runtime lowers overhead of compilation at runtime
19:44 karolherbst: and you make sure at compile time that the source code is valid
19:44 Calandracas: Yeah I'll figure out how to set that up with Meson
19:44 karolherbst: yeah...
19:45 karolherbst: I was thinking of looking into it myself, but didn't get to it
19:45 karolherbst: but it would be cool if OpenCL C(++) could be compiled similiar to libraries and you just get the spirv and stuff
19:45 Calandracas: i 100% agree that its better to compile to spirv offline, this was really jsut a matter of convinience while developing
19:45 karolherbst: the issue with cl_ext_cxx_for_opencl is just, that almost nothing uses it so it would get 0 testing
19:46 karolherbst: and the OpenCL CTS has one test for it where it compiles the most trivial kernel possible
19:46 karolherbst: yeah...
19:46 karolherbst: I think I just prefer build systems to make it convenient instead
19:47 karolherbst: I'm not strictly against supporting cl_ext_cxx_for_opencl, I'd just rather not if there are better alternatives. Though I think on android it's apparently a thing so I might have to support it sooner or later
19:47 Calandracas: especially since templates increase the compile time signifiantly, online compilation would be really bad for realeases
19:47 karolherbst: yeah...
19:48 karolherbst: but anyway, rusticl would need to support that ext if there are applications using it, so there is that...
19:48 Calandracas: I'm new to meson, but I'll try to figure out how to set it up.
19:48 karolherbst: are you using meson for your project?
19:49 Calandracas: Yeah
19:49 karolherbst: but anyway.. I think I'd prefer if one could just declare "opencl-c' and 'opencl-c++' as languages
19:49 karolherbst: but....
19:49 karolherbst: I think that needs changes to meson
19:49 karolherbst: would be a fun project tho
19:50 karolherbst: painful part is to deal with declaring what spirv extensions are allowed... mhh
19:51 karolherbst: Calandracas: ohhh... btw I think since clang-17 you don't need to invoke `llvm-spirv` directly
19:51 karolherbst: just use the spirv target and the output is the spirv
19:52 karolherbst: (it executes llvm-spirv internally) and I think with clang-18 and the enabled spirv target it doesn't even need that
19:52 Calandracas: I guess a usecase for online compilation would be querying the device capabilities and tuning the code at runtime
19:52 dcbaker: Calandracas: karolherbst I’d review patches for OpenCL as a language. I’ve also thought about adding a graphics module for things like spirv, so that might be appropriate too
19:53 karolherbst: Calandracas: yeah...
19:53 Calandracas: Oh nice, I'm on clang-17 so I'll try that out
19:53 karolherbst: Calandracas: though in theory OpenCL doesn't require _valid_ spirv, so you could spec constant code paths for extensions....
19:54 karolherbst: Calandracas: yeah.. need to use spirv not spir as a target tho I think
19:54 karolherbst: both works with llvm-spirv anyway
19:54 karolherbst: (if compiled with emit-llvm)
19:55 karolherbst: dcbaker: yeah.. we might be able to ditch some of the clc compilers we have in mesa with that...
19:56 Calandracas: nice i can compile straight to spirv with clang-17, that will make things easier to integrate with meson
19:56 karolherbst: :)
19:56 karolherbst: it might already work with clang-16, not quite sure when they added support for that
19:57 karolherbst: be careful with the SPIRV target in clang-18 tho, as it still generates some invalid spirv, so no idea how well that will work in the future
19:58 karolherbst: I also don't know if you can toggle SPIRV extensions this way...
19:58 Calandracas: I hope that clcpp catches on. Having template libraries will be really cool
19:59 karolherbst: yeah... though I just hope that the LLVM SPIRV target becomes more reliable and that it's easier to use with any language LLVM supports, but yeah...
20:01 Calandracas: Anyways thanks for the insight, I really appreciate it
20:01 karolherbst: np
20:03 alyssa: dcbaker: I guess for vk integrating glslang would be cool too?
20:03 karolherbst: alyssa: the painful part here is, that almost all of the other CL impls convert spirv to LLVM IR internally 🙃
20:04 alyssa: karolherbst: I just mean for vk apps using meson, they need to do a bunch of buildtime glsl->spirv
20:04 karolherbst: ohh, it was in regards to your earlier comment
20:05 karolherbst: but yeah.. I think we need to add "producing spirv files" as core features to build systems anyway :P
20:07 karolherbst: dcbaker: btw, I still want to see my other PR landing which is blocked by the containers not building situation :P
20:08 orbea: alyssa: i made an issue if you are interested https://gitlab.freedesktop.org/mesa/mesa/-/issues/10488
20:08 dcbaker: karolherbst: yeah. There’s several important rust things that need to land, yours is one of them
20:08 dcbaker: I’ve just been busy working on mesa, lol
20:09 karolherbst: heh
20:16 Calandracas: nice, it was pretty trivial to add a custom target to compile to spirv in meson
20:17 karolherbst: cool
22:38 jenatali: Oh. I was unauthed, cool
22:39 HdkR: Welcome back
22:39 jenatali: Thank you
22:40 jenatali: Is there some standard approach in Vulkan drivers for dealing with internal draws/dispatches, to not have them increment statistics counters?
22:40 jenatali: I've just discovered statistics_query.clipping_invocations.primary.blit_between_incompatible_formats and it makes me very sad
22:46 alyssa: you have hw counters? :clown:
22:46 jenatali: We have counters that claim to come from hardware, yeah
22:47 karolherbst: what makes you sad about blit_between_incompatible_formats?
22:47 jenatali: I could play the same games I do in gallium but ugh that seems like so much overhead for such a corner case
22:47 jenatali: karolherbst: It issues a blit that must not increment draw pipeline stats counters. That's much harder to hide in Vulkan
22:48 jenatali: Like, I could switch blits to compute but that's just moving the problem around, not really fixing it...
22:48 dj-death: jenatali: on intel we can program the HW to prevent it from incrementing the counters for internal ops
22:48 karolherbst: yeah.. on hw you can just turn off/on counting that stuff normally
22:49 jenatali: Bleh
22:49 karolherbst: jenatali: you could enqueue a compute shader substracting what the blit would have added.....
22:49 jenatali: Literally my last CTS failure on WARP and that's like days of work
22:49 karolherbst: add a new API to WARP instead?
22:49 jenatali: karolherbst: Yep. Considering it. Seems cheaper than stopping and restarting
22:50 karolherbst: on nvidia we can't count compute shader invocations, imagine that fun there
22:50 karolherbst: anyway... fixup shaders should do the trick :D
22:50 karolherbst: the pain part is that in vulkan this is actually specified and tested, and GL it was all very yolo
22:51 jenatali: At least gallium has driver entrypoints for pause/resume
22:51 karolherbst: mhhh.. right
22:52 jenatali: Oh well. I'll figure something out
22:53 alyssa: don't look at the code i wrote for asahi
22:54 gfxstrand: jenatali: Disable counters around meta stuff
22:54 gfxstrand: There's no magic for it, unfortunately.
22:54 gfxstrand: Vulkan query pools don't exactly have a puase/resume
23:06 jenatali: Yeah, D3D doesn't have a "disable counters" function. Which means I either get to go with splitting queries and summing, or counting meta independently and subtracting
23:06 gfxstrand: Yeah...
23:06 gfxstrand: Vulkan doesn't either
23:09 alyssa: on a tiler, enabling/disabling those counters splits your render pass :clown:
23:13 airlied: oh I vaguely remember writing some of zink_query.c, not fun times
23:14 gfxstrand: That's okay. You can't do meta mid-render-pass
23:15 airlied: jenatali: zink_query might be a good model, it does suspend/resumes for blits/clears
23:19 jenatali: airlied: Yeah that's how the d3d12 gallium driver works too
23:19 jenatali: It's just... a lot of work, especially in a world of query pools instead of individual queries
23:20 jenatali: I think I'm going to count meta independently and subtract. I could probably even compute meta's counter values CPU-side
23:21 gfxstrand: That's not a horrible idea, TBH.
23:21 gfxstrand: Probably easier than trying to suspend/resume.
23:21 gfxstrand: Well, hrm...
23:21 jenatali: Yeah. Just snapshot the meta counters at begin, subtract them at end, issue a fixup compute shader at resolve time
23:21 airlied: zmike: would a vk extension help here?
23:21 gfxstrand: Actually, that gets tricky...
23:22 jenatali: Eh, no that doesn't work, you can resolve in a separate command buffer, can't you...
23:22 gfxstrand: Yup and you can have multiple, say, occlusion queries going at once
23:22 jenatali: Right, which is why splitting is a pain
23:23 jenatali: I'm half tempted to just switch meta to compute instead. There's no test for that (yet). Much easier than mucking with counters for a single test...
23:24 zmike: airlied: ?
23:24 zmike:struggles to catch up
23:24 gfxstrand: jenatali: Not a horrible plan, TBH
23:24 jenatali: zmike: tl;dr dzn has the same problems with queries and internal draws that zink has
23:24 gfxstrand: Except dzn is trying to implement Vulkan so 10x worse
23:24 jenatali: Right
23:24 zmike: zink doesn't have those problems
23:25 gfxstrand: How much meta do you have? Just CmdBlitImage?
23:25 gfxstrand:thinks CmdBlitImage was a mistake
23:25 zmike: internal draws go through u_blitter which already disabled queries
23:26 jenatali: gfxstrand: That's the only one that's graphics. There's a few dispatches, but we've added features to D3D to make the dispatches go away
23:26 jenatali: zmike: Just the infrastructure for disable/enable
23:27 gfxstrand: Yeah, doing CmdBlitImage as compute is probably fine. Intel will suffer but I'm having trouble caring.
23:27 zmike: the hard part of queries is avoiding duplicated query execution
23:27 zmike: everything else is easy
23:27 jenatali: gfxstrand: Is someone just going to add a new test that says that blits can't increment compute invocation counts? (:
23:27 gfxstrand: jenatali: Maybe
23:27 gfxstrand: I'm not going to. :)
23:28 zmike: I'd guess there should be tests for that already in vkcts
23:28 zmike: they exist for gfx queries at least
23:28 jenatali: zmike: There's not. Literally only clipping invocations
23:28 zmike: huh
23:28 zmike: I should file coverage then
23:28 jenatali: My last CTS fail :(
23:30 ccr: "you have failed me for the last time .."
23:34 HdkR: "I see you're trying to pass conformance. I have a few tests to add."
23:35 zmike: eh they'd be in a future tag anyway so it won't affect this
23:36 jenatali: Yeah, but I'd rather not have to rewrite this again later on to pass that new test too
23:38 zmike: smart
23:39 ccr: "I am altering the the conformance test suite .. pray that I don't alter it any further."
23:39 ccr: -the
23:41 jenatali: Wait.. https://registry.khronos.org/vulkan/specs/1.3-extensions/html/chap18.html#queries-operation-undefined
23:41 jenatali: Is this test even valid?
23:42 gfxstrand: jenatali: Good question! File a bug?
23:42 jenatali: On the CTS?
23:42 gfxstrand: Ugh... Someone should probably file it for you...
23:42 gfxstrand: And I'm not long on spoons today
23:44 jenatali: I can file it publicly. I can file internally but my legal group probably wouldn't be happy about that (:
23:44 jenatali: I had to get gitlab access for the not-public GL CTS tests
23:45 jenatali: Ok I did look at the history of the test. zmike looks like you requested it, but the spec says it's invalid
23:46 gfxstrand: Hah!
23:46 Sachiel: sabotage!
23:47 gfxstrand: He just doesn't want to have to debug Zink on dozen
23:47 jenatali: :P
23:48 zmike: might have been valid when I requested it
23:48 gfxstrand: I think that spec language has been there for a while
23:49 gfxstrand: Yeah, git blame says that's been there since 2016
23:50 jenatali: Is it worth filing a public issue on that? Or would one of you be willing to raise it on gitlab on my behalf?
23:52 zmike: I assume gfxstrand did it in the course of spec blaming
23:52 gfxstrand: Yeah, it's in the original 1.0 spec
23:52 gfxstrand: What's the name of the test?
23:52 jenatali: dEQP-VK.query_pool.statistics_query.clipping_invocations.primary.blit_between_incompatible_formats
23:53 gfxstrand: Is that the only one?
23:54 jenatali: Yep
23:55 gfxstrand: jenatali: vk-gl-cts/-/issues/4911
23:55 jenatali: Thanks! I owe you one
23:56 gfxstrand: Now back to trying to figure out why this silly tessellation subgroup test is failing