00:26 airlied: jenatali: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7357
00:26 airlied: reworks your patch a little bit
00:26 jenatali: airlied: Awesome :) I'll take a look
00:27 airlied: now to make it pass all the tests
00:28 jenatali: airlied: There's a difference between how AMD's LLVM approach handled strings vs what I had, where they strcpy the string but I just wrote a pointer
00:28 jenatali: Have you looked at strings yet?
00:28 airlied: jenatali: nope strings don't pass the test so I expect that explains that :-)
00:29 jenatali: That'd explain it :P
00:29 airlied: I might have to add another backend options there then
00:29 airlied: or key it off the bufer fmt one I have
00:29 jenatali: airlied: Considering how unimportant printf is at the end of the day I wouldn't care if it wrote the actual string into the buffer
00:30 jenatali: It was just simpler for my purposes to write the pointer, since I could easily retrieve the string from the pointer
00:30 airlied: the other difference is the buffer header
00:30 airlied: they use 8 bytes, not sure if there's an value
00:30 jenatali: Ah right
00:30 airlied: any value in what they are doing
00:30 airlied: we might find another corner case :-P
00:30 jenatali: The CL CTS is pretty lax at validating printf anyway
00:31 jenatali: I think their format strings all have a single % value...
00:33 airlied: jenatali: is there anythihg that tests it better?
00:33 jenatali:shrugs
00:34 jenatali: My only goal with printf was to pass the CTS :)
00:34 airlied: jenatali: well you mentioned those corner cases, did CTS find those?
00:34 jenatali: airlied: Nope, karolherbst did :P
00:35 airlied: wil have to ask him when he comes back
00:36 jenatali: I just mean he pointed them out while looking at the code
00:36 jenatali: I don't think he tried running anything
00:39 jenatali: airlied: I've heard there's some proprietary tests for the arm printf extension, but I haven't seen any of them
00:39 airlied: okay strings fixed, now to figure out the vector crash
00:40 jenatali: \o/
00:43 airlied: karolherbst: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7357 (since you joined again)
00:54 airlied: jenatali: do you align records in the global buffer to 4 bytes bounds?
00:54 jenatali: airlied: Yeah, I believe so
00:54 jenatali: DXIL has a 4-byte-alignment limitation for writing to SSBOs
00:55 jenatali: Anything lower than that ends up with masked atomics
00:55 airlied: ah cool
00:55 airlied: one test just stores two single-byte chars
01:01 karolherbst: oh wow
01:01 karolherbst: upgrading to plasma 5.20 makes me think: maybe we still need to maintain Xorg for 10 years...
01:02 karolherbst:hides
01:03 karolherbst: also how tooltips get misplaced is totally beyond me as well
01:03 karolherbst: and that's what I see atm: https://i.imgur.com/JRe2CFy.png
01:03 emersion: lol
01:03 karolherbst: thing is, it's also moving, but I can't even record the screen as... you know
01:04 emersion: wayland is the future™
01:04 karolherbst: plasma 5.20 is the first release with the screen recording stuff
01:04 karolherbst: emersion: well, I blame plasma :p
01:04 karolherbst: gnome doesn't have those bugs
01:04 karolherbst: and I can't use X on this system anyway
01:04 karolherbst: like literally can't as it doesn't have the features I need
01:04 airlied: yay test_printf PASSED 57 of 57 tests.
01:04 karolherbst: airlied: nice!
01:05 airlied: can we have CL 3.0 now :-P
01:05 karolherbst: :D
01:05 karolherbst: do it :p
03:28 soreau: If a shader does fetches on several neighboring fragments of a texture and each invocation of the shader might fetch the same fragments as previous ones, is there some way to avoid the cost of refetching the same coordinates repeatedly in each invocation?
03:29 HdkR: texturegather or wave-ops could help
03:34 jekstrand: Or you could just hope the GPU has a good cache (it does)
03:35 soreau: yea I was thinking maybe this is already taken care of somehow
03:43 anholt: soreau: there's a whole bunch of stuff the gpu does to make that work out without you doing anything (texture cache, tiling texture data, and making sure that dispatch of waves is clustered in screen space as a prim gets rasterized are all examples)
03:44 jekstrand: The sampler is likely #1 most optimized memory path in the whole GPU and fetching texels near each other is the #1 thing it's optimized to do. :-)
04:07 soreau: Ok thanks. I think the wayfire blur plugin could use further optimizing, any suggestions? https://github.com/WayfireWM/wayfire/tree/master/plugins/blur (re the blur shaders are at the top of each method file such as kawase.cpp)
04:08 soreau: (though these shaders only account for about half of gpu resources used per radeontop, the rest is blits and final blending shader)
04:17 soreau: the other thing I wonder, is if changing the size of a texture with glTexImage2D every frame is expensive
08:10 glennk: soreau, considered using a compute shader for the separable filters?
08:14 soreau: glennk: no, the only time I tried glsl compute was converting rgb to yuv420 and it was extremely slow compared to the opencl shader to do the same
08:15 soreau: so I don't keep it as forefront in my considerations
08:16 soreau: glennk: do you think it would have a chance to help? And would it work where only glsl 1.00 is available?
08:17 glennk: uh, same hardware running opencl and glsl compute, so if its any performance difference, thats down to api usage or driver implementation
08:20 glennk: compute in GL was 4.3 i think
08:20 soreau: hm
08:20 soreau: well whatever I had running for glsl compute, it was dog slow though it worked
08:21 soreau: so it left a bad taste in my mouth
08:26 glennk: well, main point with the compute shader is it can reuse a bunch of otherwise redundant sampling and computation, and you don't need an intermediate texture
08:26 glennk: but there's still room for improvement without going that route
08:27 soreau: I see
08:27 glennk: what sampling filter is your code using? nearest?
08:28 soreau: linear afaik
08:28 danvet: mripard, maybe wait for the -rc2 backmerge next week, I need that one too
08:28 danvet: before you apply your giantic cocci patch :-)
08:31 soreau: glennk: min and mag filter are set to GL_LINEAR
08:34 glennk: soreau, a common trick is to approximate the 1d filter kernel using the hardware bilinear sampling, which cuts your number of shader samples in half
08:34 soreau: glennk: I think I'm already doing that for gaussian and box
08:34 soreau: unless I don't understand what you mean
08:42 glennk: i'm not sure i'm reading your box shader correctly, it looks like its setting up the center tap so its half a texel offset, but then the other taps are added by 1.5 and 3.5 texels so they align on texels
08:43 glennk: so only the first tap is getting a bilinear weighting
08:43 soreau: oh, should it be 1 and 3?
08:49 glennk: 2 and 4 i think?
08:50 glennk: the offset parameter which i think is some sort of scale factor confuses me :-)
08:51 soreau: well position.xy is in the range (-1, +1) and it adds vec2(1.) which makes it in the range (0, 2), then divides by 2. so it's in the range (0, 1) and from there, adds/subs 1.5 and 3.5 offsets
08:57 glennk: right, so your first tap ends up being effectively nearest neighbor assuming your input coordinates were screen raster aligned
08:57 soreau: glennk: you can just assume offset == 1.0
09:03 glennk: anyway, getting back to performance
09:08 glennk: i'd move the offsets to a uniform instead of passing as varying
09:10 mripard: danvet: what do you need ? The backmerge?
09:57 danvet: mripard, yeah I have some patches for -next that need -rc
09:57 danvet: but tzimmermann not around
09:57 danvet: plus -rc1 is pretty badly broken in our CI
09:58 mripard: danvet: ack
09:59 pq: vsyrjala, did you write some wayland or weston related bits about HDR many years ago? Remember how I can find those? Just for a historical reason.
10:37 pq: I thought Kodi could do HDR display, but now that I look for it, I can't find a mention of it?
10:42 emersion: pq: yeah it can, but where are you searching?
10:43 emersion: there are a few requirements: it only supports HDR when vaapi is used and the hw can do direct scan-out
10:43 pq: I'm searching the kodi wiki, then just google in general which pointed to some kodi forun posts saying "no"
10:43 emersion: lol
10:44 pq: by kodi devs
10:44 emersion: i managed to get it work on a GLK
10:44 pq: emersion, so, is the HDR output support just an accident of VAAPI->scanout without Kodi actually doing anything?
10:45 emersion: no: kodi explicitly sets the various KMS HDR props
10:45 pq: ok
10:45 emersion: i think it has to do with the depth of the buffer?
10:45 emersion: i don't remmeber the details honestly
10:45 emersion: remember*
10:45 pq: any link I could use as a reference when claiming "Kodi does HDR sometimes on KMS"?
10:47 emersion: pq: i guess this is about the best you're going to get: https://github.com/xbmc/xbmc/pull/16103
10:47 pq: thanks
11:54 stuom1: I'm trying to make a DRM driver for a mipi panel, and struggling to translate the init sequence from the datasheet to my code. The init sequence has the commands, and packet header, packet data, and packet footer (checksum). If I use function like mipi_dsi_dcs_write_buffer, do I need to take care of the headers and checksums too, or are they
11:54 stuom1: handled automagically somewhere else?
12:55 vsyrjala: pq: https://lists.freedesktop.org/archives/wayland-devel/2017-December/036403.html
12:55 vsyrjala: the branches should still be there
12:59 pq: no wonder I didn't find, I don't have a copy of that email in my archives, thanks!
13:23 zmike: ajax: I saw your blog post about xserver yesterday; brought back a lot of nostalgia from when I was first getting into linux and open source
13:23 zmike: then I saw social media comments about it and remembered this is 2020, not 2000
13:24 pq: time sure flies
13:24 zmike: really dose
13:24 zmike: especially this year
13:29 ajax: this year's been a hell of a decade
13:29 zmike: has it really been that short?
13:31 danvet: mripard, we might need some irc discussion for your fifos ...
13:31 danvet:replied again
13:51 mripard: danvet: yeah, probably :)
13:51 mripard: danvet: so it's a global state because while we have N pixelvalves / CRTC
13:51 mripard: there's a single HVS for the whole system
13:52 mripard: so we need to take into account the state of all the CRTCs in the system when a new one is enabled
13:53 danvet: mripard, so the pixelvalve <-> crtc, is taht some N <-> M dynamic thing?
13:53 mripard: yeah, there's 1 HVS with N FIFOs, connected to M CRTCs
13:53 danvet: i.e. in a perfectly ideal driver that supports every use-case and every transition as best as possible
13:53 mripard: with N < M
13:53 danvet: would you need to dynamically need to reassign them around ?
13:54 danvet: oh N < M
13:54 danvet: so you can't even light up all the CRTC?
13:54 danvet: at the same time I mean
13:54 mripard: I don't think we do no, they are pretty much equivalent in terms of capabilities
13:54 mripard: no
13:55 danvet: no as in, you can't light them all up at the same time
13:55 mripard: but it's not necessarily a big deal, the rpi4 doesn't have enough output to realistically enable all the CRTCs in the SoC either
13:55 danvet: or no, as in danvet still confused?
13:55 mripard: no we can't light them all up at the same time
13:55 danvet: why not just make a fixed assignment at boot-up and done?
13:56 mripard: because we don't know the ones that are actually going to be used during the life of the system
13:57 mripard: it has 2 HDMI outputs, a writeback engine, a DSI and DPI outputs
13:57 mripard: and 3 FIFOs
13:57 mripard: so while I wouldn't expect all of them to be enabled at once
13:57 mripard: it doesn't seem really far fetched to have at least some variations depending on the use case
13:58 igorkovalenko: hello, I get glxgears crash with LIBGL_ALWAYS_SOFTWARE=true on mesa-20.2.1 and seems like the same crash with mesa-20.0.8 - is this a known issue?
13:58 karolherbst: igorkovalenko: it shouldn't crash and I would be surprised if that's a common issue
13:58 karolherbst: do you have some logs or backtrace or something?
13:59 mripard: (and they dont' completely have the same capabilities, there's a few constraints on some FIFOs)
14:00 igorkovalenko: I did a few checkouts and builds locally, 20.2.1 and 20.0.8 do crash, but mesa-18.3.6 works
14:00 igorkovalenko: backtrace 1sec
14:03 igorkovalenko: (export LIBGL_ALWAYS_SOFTWARE=true; gdb /usr/bin/glxgears) https://pastebin.com/6dFKCCuR
14:04 igorkovalenko: akin to https://gitlab.freedesktop.org/mesa/mesa/-/issues/3613 but cannot confirm if exactly the same
14:06 igorkovalenko: hmm looks like the same issue
14:32 ajax: grumble. i can get zink on nvidia but i can't get core contexts out of it, wtf
14:32 zmike: I'm not sure it's ever been tried on nvidia before?
14:33 ajax: it took some coercion, yeah
14:50 jekstrand: Ugh... I've got 97 patches on my RT tree just to handle building BVH kernels. :-/
14:50 jekstrand: Need some serious pruning there. :)
14:51 daniels: ajax: *blink*
14:51 daniels: impressive
14:55 jenatali: jekstrand: How much of that is stuff that accrues to CL (like generic pointers) vs being Vk-specific?
14:56 jekstrand: jenatali: Quite a bit of it probably
14:56 jenatali: jekstrand: Cool, I look forward to reviewing :)
14:58 jekstrand: jenatali: Also, 97 is the branch in a very messy state. Likely it'll be compacted again before stuff lands. :-)
14:58 jenatali: Heh, fair enough
15:00 danvet: mripard, sry was distracted with mtg
15:00 danvet: yeah so dynamic assignment makes sense
15:00 danvet: and I think you need that last_user drm_crtc_commit * pointer for transitions
15:01 mripard: no worries :)
15:03 mripard: to prevent from the issue you mentionned in your mail with two subsequent non-blocking commits?
15:06 mripard: (I can't find a last_user pointer in drm_crtc_commit?, or any last_user pointer under DRM)
15:19 igorkovalenko: my crash backtrace really looks like issue #3613 and I bisected it back to MR !2303 which is "llvmpipe: switch to NIR by default"
15:19 danvet: mripard, yup, for the case of two nonblocking commits
15:19 danvet: for that case the drm_modeset_lock won't sync anything
15:20 igorkovalenko: as I'm not a reporter of #3613 should I just add a comment there suggesting reporter to test with mesa-19.3.5 which also works for me?
15:22 danvet: mripard, I'm typing up a sketch for pastebin
15:23 danvet: mripard, https://paste.debian.net/1169094/
15:23 danvet: instead of your bitmask
15:23 danvet: and maybe make in_use a drm_crtc * pointer
15:24 danvet: so you can check for consistency easier
15:24 FLHerne: igorkovalenko: It might be important which version of LLVM you have
15:25 FLHerne: There'd probably be more complaints if llvmpipe crashed for everyone with something that trivial
15:25 igorkovalenko: FLHerne: started with llvm 11 (current)
15:25 danvet: oh and drm_crtc_commit is a bit renamed, it's really a fairly generic end-of-hw-commit tracker
15:25 igorkovalenko: older versions did not build with that, so bisected with 10.0.1
15:26 FLHerne: Can't reproduce with 20.2.1 and llvm 10.0.1
15:26 FLHerne: My gears spin happily :-)
15:26 igorkovalenko: I'm sure noone is using swrast until pressed ) I'm running with LIBGL_ALWAYS_SOFTWARE=true for specific reason to reproduce firefox rendering issue
15:26 danvet: I think we could rename it to drm_atomic_hw_commit
15:27 danvet: and make the ->crtc pointer optional
15:27 danvet: so that you could use this to track commiting of pretty much anything
15:27 danvet: but it's slightly more convenient for the code to attach it to a crtc
15:30 FLHerne: I guess airlied is the one to ask about llvmpipe things
15:30 igorkovalenko: I left comment in #3613 anyway
15:30 MrCooper: igorkovalenko: the Mesa CI pipeline runs thousands of tests with llvmpipe
15:30 FLHerne: There are definitely a number of users, there's no way it breaks for many people for a year without complaints
15:31 MrCooper: there must be some system specific factor to this issue
15:31 igorkovalenko: I would not exclude some exotic thing here, right
15:31 FLHerne: i.e. there's something different about your system, but what? :p
15:31 MrCooper: system/setup
15:31 MrCooper: / build configuration
15:31 FLHerne: igorkovalenko: What distro, platform is it?
15:32 mripard: danvet: I'll look into that then, thanks :)
15:35 igorkovalenko: FLHerne: its gentoo here, linux-5.9.1 glibc-2.32 GCC 9.3.0 and I reproduce with mesa built from source, configured like this: PATH=/usr/lib/llvm/10/bin:$PATH CPPFLAGS="-O2 -W -Wall" meson build -Dgallium-drivers=swrast -Ddri-drivers= -Dvulkan-drivers=
15:36 igorkovalenko: running on kde plasma + wayland via LIBGL_ALWAYS_SOFTWARE=true glxgears
15:37 igorkovalenko: unsetting WAYLAND_DISPLAY does no change
15:39 igorkovalenko: hope it is not my old cpu AMD Phenom(tm) II X6 1055T Processor, as I'm scared to remember last time I was chatting to you nice people on #xorg-devel many years back, my name was garrison and my issue was 64bit ddx layout incompatibility or something :)
15:45 igorkovalenko: but I'm prepared to find out what is the exotic root cause this time
15:50 FLHerne: That sounds old and uncommon enough that it might break some assumption about processor features
15:50 FLHerne: There was a patch for something vaguely related in the last month or so, but I can't find it
15:51 igorkovalenko: was the patch on gitlab or somewhere else?
15:53 FLHerne: Hrm, I think I was misremembering some discussion of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/518 , which isn't really relevant at all :-(
15:54 igorkovalenko: unfortunately it is not a SIGILL here
15:57 ajax: daniels: most of the coercion is the same as making llvmpipe work on nvidia, in the sense of making the drisw binding work.
15:58 ajax: which... i still need to sort out properly, i guess
15:58 ajax: and then making that deign to load zink requires more environment variables than you'd like
15:59 ajax: and that gets you as far as glxinfo but glxgears throws an assertion
15:59 jekstrand: airlied: From phoronix:
15:59 jekstrand: Is there anything like softpipe or llvmpipe for Vulkan Raytracing?
15:59 jekstrand: airlied: You going to get working on that now? :-P
16:00 daniels: Phoronix-Driven Development
16:00 jekstrand: daniels: That's what our managers think we do. :P
16:00 FLHerne: One frame per day?
16:00 jenatali: You'd beat us to it, we still haven't gotten around to implementing raytracing in WARP
16:12 jekstrand: jenatali: RE: "real" generic vs. if-ladders
16:12 jekstrand: jenatali: Right now, the way I have it working is that if addr_mode_is_global returns true, it assumes you have "real" generic and doesn't do any of the lowering.
16:13 jenatali: jekstrand: Yeah, I'm realizing that now, and that makes sense to me
16:13 jekstrand: So for karolherbst's case, he can use 64bit_global and should get global access for everything.
16:14 jekstrand: The sticky bit, of course, is that 64bit_global always does 64-bit even for shared and scratch
16:14 karolherbst: jekstrand: are conversions inserted already?
16:14 jekstrand: But we could add a new one to have the right semantics
16:14 jekstrand: karolherbst: What do you mean?
16:14 karolherbst: shared -> global conversion intrinsics
16:15 jekstrand: karolherbst: The way it works right now is that shared would shared_base_ptr + offset
16:16 jekstrand: So you would just lower shared_base_ptr to be the base address of your shared memory mapped region
16:16 jekstrand: Same for scratch only scratch_base_ptr
16:17 jekstrand: So if the NV thing really is just mapping scratch and shared memory to your VA space at fixed offsets, it should be exactly what you want.
16:34 jenatali: jekstrand: Any reason !6332 is still marked WIP?
16:34 jekstrand: cmarcelo: Could you please look at the "Make nir_deref_instr::mode a bitfield" patch in my generic pointers MR? You're the closest person to actually being able to review it AFAIK.
16:35 jekstrand: jenatali: What WIP? :-P
16:35 jenatali: :P
16:36 karolherbst: jekstrand: yeah, sounds good
16:44 jekstrand: The deref mode specialization pass seems super-effective, BTW. In my giant pile of kernels with generic everywhere, I've only seen a couple of if-ladders.
16:46 jekstrand: And I know how to get rid of those. :-)
16:46 jekstrand: I just have to write the code
16:49 jenatali: I'm curious, what's your plan?
16:50 jekstrand: The cases that I'm seeing are where someone has a loop and does `ptr += N` at the end of it.
16:50 jekstrand: So the current thing can't propagate because it goes to look at the parent and the parent is a phi not a deref.
16:50 jekstrand: So we need a bit of code to look through phis
16:50 jenatali: Ahh, makes sense
16:50 jekstrand: We probably also want to handle bcsel of deref
17:15 drv04: Hello. I made a Coccinelle change to drivers/gpu/drm/msm/adreno/a5xx_debugfs.c and would like to build the associated driver(s)
17:15 drv04: However, looks like my config needs tweaking
17:15 drv04: Can someone help with the steps in order to build the change I made to the file?
17:15 drv04: I am runnign a x86
17:42 drv04: Yaay...I think I got it!
17:53 anholt: starting to test it in CI now, but my new deqp runner is published https://crates.io/crates/deqp-runner
17:57 anholt: Compared to the one we've been using, it can handle known flakes, doesn't reshuffle on skiplist changes, logs better, extracts QPAs for you, saves failed caselists for you, produces a nice file for use as the baseline of your next run (aka the thing we check in to git in mesa ci) and is chock full of unit tests so I have a harder time breaking it than the old one.
17:58 pepp: anholt: nice!
17:58 anholt: looks like the code is 1/3 unit tests.
18:10 ajax: i wonder, for GLXSetClientInfo, whether the list of gl versions is meant to reflect direct or indirect support
18:12 ajax: could only possibly matter for indirect i suppose
18:15 ajax: except llvmpipe vs nvglx is only giving me 3.1 compat and not 4.5 core
18:15 ajax: which seems a lot like its taking the SetClientInfo version list quite seriously
18:23 ajax: we don't do ARB_compatibility past 3.1, right?
18:23 jekstrand: Yes, we do
18:23 jekstrand: On most drivers anyway
18:23 danvet: yeah I thought mareko was spending years enabling this
18:23 danvet: and most drivers followed
18:23 jekstrand: That changed a year or two ago
18:24 ajax: whoa. yeah iris seems to have it under 4.6. wild stuff.
18:25 ajax: per driver then? MESA_query_renderer says max of 3.1 for llvmpipe compat
18:25 airlied: igorkovalenko: do you have DRAW_LLVM=0 set somewhree?
18:29 daniels: anholt: \o/
18:30 jenatali: ajax: Yeah, it's pipe caps that control it
18:32 anholt: oh, I didn't plan how the new runner was going to do this for you:
18:32 anholt: dEQP error: deqp-gles31: ../src/gallium/auxiliary/tgsi/tgsi_exec.c:1483: fetch_src_file_channel: Assertion `mach->Consts[index2D->i[i]]' failed.
18:32 anholt: ERROR - Test dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.dynamically_uniform_geometry: Crash: See "//results/c5.r0.qpa"
18:32 igorkovalenko: airlied: not yet, but DRAW_USE_LLVM=no
18:33 igorkovalenko: let me see where it comes from
18:33 airlied: yeah don't be setting random vars
18:37 igorkovalenko: not easily found, let me grep / :)
18:37 anholt:really needs a driver knob for "make some tests flaky"
18:37 cmarcelo: jekstrand: will look
18:38 igorkovalenko: i confirm it works like this: LIBGL_ALWAYS_SOFTWARE=true DRAW_USE_LLVM=yes glxgears
18:38 robclark: anholt: something that randomly no-op'd draws in core glDraw path, perhaps?
18:39 jekstrand: cmarcelo: I also just updated the SPV_KHR_ray_tracing branch with the latest from the internal branch. I think I had some fixes in there but I don't remember what they are anymore. :-/
18:39 igorkovalenko: guess verbose error can be made in place of crash #3613 as an enhancement
18:39 airlied: igorkovalenko: I should probably just ignore DRAW_USE_LLVM
18:40 airlied: not sure why people have it set in their environment
18:40 igorkovalenko: as it appears to be the root cause of my crash I'll root cause where it comes from
18:42 igorkovalenko: airlied: I see that r600_pipe_common.c does this setenv("DRAW_USE_LLVM", "no", 0);
18:43 igorkovalenko: can it be that my plasmashell or console got through that initialization and env variable just sticked there
18:45 airlied: igorkovalenko: very unlikely, do you have a radeon gpu though?
18:45 airlied: I don't see that setting in master
18:46 cmarcelo: jekstrand: but fixes for the generic pointer MR? or just the other branches?
18:46 igorkovalenko: no but I have r600
18:46 jekstrand: cmarcelo: The fixes were for SPIR-V parsing of SPV_KHR_ray_tracing
18:47 igorkovalenko: airlied: well my r600 is Radeon HD 4290
18:47 igorkovalenko: in 20.2 it is here src/gallium/drivers/r600/r600_pipe_common.c: setenv("DRAW_USE_LLVM", "no", 0);
18:47 cmarcelo: jekstrand: ok.
18:48 karolherbst: igorkovalenko: probably a distribution patch or something?
18:49 karolherbst: ohh no, in 20.2 that indeed existed there
18:49 karolherbst: wow
18:50 airlied: igorkovalenko: that might be it indeed
18:50 kisak: https://gitlab.freedesktop.org/mesa/mesa/-/commit/85f39cab8bda7cd03445193de4c80649791ba569
18:51 airlied: what a singularly bad idea in an unreviewded patch
18:51 karolherbst: airlied: well, the original patch is also from 2019
18:51 karolherbst: and not reviewed
18:51 jekstrand: :-]
18:51 jekstrand: :-/ rather
18:52 karolherbst: well...
18:52 karolherbst: I don't bother to comment that anymore
18:52 karolherbst: seems pointless to bring it up every time I see it
18:52 karolherbst: don't care about driver patches though
18:52 karolherbst: they can be unreviewed for all I care
18:53 karolherbst: although I think the patches were reviewed, but the tags not added to git
18:54 karolherbst: *sigh*.. anyway
18:54 karolherbst:goes back to investigate broken bgr565 on s390x
18:59 ajax: zmike: ping if you're around for a zink question'
19:03 ajax: specifically why allocating a renderbuffer would fail in get_memory_type_index
19:05 igorkovalenko: let me triple-check reverting that patch cures the env here
19:06 igorkovalenko: is there another release expected from 20.2? if so, can I somehow request backporting that 85f39cab8bda7cd03445193de4c80649791ba569 to 20.2?
19:08 airlied: igorkovalenko: there is another release expected alright, I'll hook gerrdie into the issue
19:08 airlied: karolherbst, jenatali: https://paste.centos.org/view/raw/3f7aa0ac bit of work for llvmpipe CL 3.0 :-P
19:08 karolherbst: :D
19:09 airlied: (also was images turned off)
19:09 karolherbst: yeah.. non uniform work groups :/
19:09 karolherbst: uff
19:09 karolherbst: atomics...
19:09 igorkovalenko: thanks, I'll be right back after reboot, my grep did found DRAW_USE_LLVM nowhere but mesa binaries so I'm testing the change
19:10 jenatali: karolherbst: Non-uniform work groups are optional
19:11 karolherbst: ahh
19:21 airlied: pq, vsyrjala : do we have any sort of state of HDR knowledge? like what is done/works/etc
19:24 igorkovalenko: airlied: I confirm backing out that change from 20.2.1 fixes the crash (and no more DRAW_USE_LLVM=no in environment)
19:26 airlied: igorkovalenko: excellent, thanks, and sorry for shooting ourselves in the foot here
19:31 igorkovalenko: commented on the item now, waiting for 20.2.2 :)
19:32 igorkovalenko: went unwinding the stack back to firefox rendering issue
19:34 igorkovalenko: yay see firefo WebRender with llvmpipe on fixed mesa-20.2 at last :)
19:34 igorkovalenko: * firefox that is
20:04 zmike: ajax: yeah, I'm back now
20:04 zmike: uhhh
20:05 zmike: ajax: you mean hitting that unreachable()? I haven't seen that before
20:07 ajax: ayup
20:08 zmike: I'm not afraid to admit that code predates my involvement and thus I haven't spent much time there
20:08 zmike: airlied might have some ideas
20:08 ajax: is there a reason that's not written as if (blah & (1 << i)) ?
20:08 airlied: reachable unreachables are the best type
20:09 Sachiel: they enable some interesting speed run tactics
20:11 airlied: ajax: not 100% sure or awake, but it might involve dedicated allocations
20:11 airlied: would need to set the memory types from the vulkan impl
20:11 airlied: vulkaninfo might show them
20:11 ajax: ngh why did i not build with -O0 like a sane person
20:13 ajax: airlied: https://paste.centos.org/view/a7586a9f
20:14 ajax: this is on a gtx1650, i am aware i'm doing something extremely off-label
20:14 zmike: so what's the unsupported type?
20:15 igorkovalenko: hello hello please help, maybe anyone seen similar issue https://bugzilla.mozilla.org/show_bug.cgi?id=1673939 which I cannot reproduce with llvmpipe but it is seen with r600
20:15 airlied: I assume you are asking for host visible on something that isn't
20:17 airlied: nvidia don't adverise host visible vram at all
20:17 airlied: from what I can read
20:18 zmike: huh
20:18 airlied: and I assume for the sw winsys path we needs that
20:18 airlied: PIPE_BIND_DISPLAY_TARGET
20:20 ajax: i mean, if that's the architectural issue i'll just shift gears back to making drivk be a thing instead of trying to coax drisw into working for this
20:21 ajax: but yeah, it wants HOST_VISIBLE and doesn't think it's finding it
20:22 ajax: memoryTypes[9] in the paste linked above has that though
20:22 ajax: and [10].
20:23 airlied: ajax: not for the image type
20:23 airlied: you create and image, ask the driver what memroy types it works for
20:23 airlied: and they don't intersect
20:24 ajax: mmm, reqs.memoryTypeBits ends up as HOST_VISIBLE | DEVICE_UNCACHED
20:26 airlied: for nvidia drisw we'd likely want to do image->image copy from a tiled to linear cpu image we can map
20:27 ajax: hurf
20:28 airlied: (acutally for any drisw path we'd like that for speedups)
20:28 airlied: but I think drivk would be better worht the effort
20:28 ajax: drisw for things not actually drawn with the cpu does seem like a losing plan
20:29 airlied: yeah it's definitely not winning
20:29 airlied: it was just a nice bringup feature
21:46 daniels: austriancoder: btw, we've got imx6q-sabrelite in LAVA if that helps bring up etnaviv at all?
21:47 austriancoder: daniels: good to know - thanks
22:00 daniels: austriancoder: are you still looking at an etnaviv baremetal lab?
22:02 austriancoder: daniels: for me a bare-metal lab is much easier to maintain then a LAVA one (also I don't want to do any kernelci stuff)
22:02 daniels: sorry, I didn't mean that to come across the wrong way - I'm not asking you to justify baremetal vs. LAVA!
22:02 daniels: I was asking about etnaviv generally and how we can enable that, not 'please don't do baremetal' :)
22:07 daniels: austriancoder: also, tbh I'm slightly confused about running on GBM vs. requiring GLX+GL - I think it would probably make sense to either run piglit on surfaceless, or a sort of hybrid platform where it uses GBM surfaces but then immediately releases the results
22:07 daniels: with the current situation, I'm not sure how xvfb+glx is related to gbm?
22:25 austriancoder: daniels: the end goal is to run piglit against desktop gl - that's why I enabled glx in Mesa. regarding piglit I need to recheck/retry the surfaceless
22:32 sravn: narmstrong: I hope you will find time to take a look at the keembay bindings. They are now split in what I think is the right way
22:33 narmstrong: sravn: sure, I’ll have a look
22:35 sravn: narmstrong: thanks. Late here so if you jumped at it my replies will wait a bit
22:36 narmstrong: sravn: I won’t have a look before tomorrow morning French time
22:45 austriancoder: daniels: gbm for piglit looks fine for bare-metal and xvfb is not used in my piglit-runner. But the big pain point could the current piglit usage in the CI
22:46 HdkR: austriancoder: EGL + GL isn't viable? :)
22:47 karolherbst: yeah, just eliminat the need of a windowing system :p
22:47 karolherbst: although how does headless gbm work? But I suspect it just works
22:50 anholt:
22:51 austriancoder:is confused but some sleep will help
22:52 daniels: austriancoder: oh sorry, I was looking at the wrong tree, so I didn't see your piglit-runner was actually GBM and not Xvfb :(
22:53 daniels: but they're orthogonal, right? if you need GLX and the X11 runtime libs, you're running against an X server; if you're running Piglit on GBM, you're not running against an X server ...
22:54 daniels: HdkR: indeed it is
22:55 daniels: karolherbst: easy - GBM only does allocation, not presentation. eglSwapBuffers() just moves your backbuffer to the slot which the client can pick up with gbm_surface_lock_front_buffer() and then post to GBM itself
22:55 daniels: karolherbst: so you just swap -> lock_front_buffer -> release_buffer, without ever posting to KMS
22:58 karolherbst: ahh, cool
23:02 airlied: jenatali: assume I've only had a small amount of sleep and no caffiene, and tell me why the ptr is wrong for gpu again :)
23:03 airlied: my impressiong was you were putting the CPU 64-bit ptr to string into the shader, and it was emitting it into the ssbo
23:03 jenatali: airlied: The pointer is just going to be whatever value was in the kernel for the __constant char*
23:04 austriancoder: daniels: correct - I am looking into reusing piglit/run.sh for my work and that might change some bits.
23:05 jenatali: airlied: So for a system with SVM, yeah it'll be a pointer to the string, but if your GPU addresses are different from CPU addresses, it'll be a GPU address stored into the SSBO
23:08 jenatali: airlied: For CLOn12, that pointer ends up being a (buffer ID, offset) pair, and the runtime uses that to find the string data in the buffers that it uploaded to the GPU in the first place
23:08 jenatali: I didn't really try to generalize it further than that...
23:11 daniels: austriancoder: yeah sorry, I'd opened tig in one tab, and opened vim on the runner script in another tab which was still looking at the upstream tree :\
23:11 daniels: austriancoder: so that makes sense, but I'm still not sure how you combine GBM + no X server + GLX/x11proto-dri3 :P
23:13 jenatali: airlied: The easiest way to generalize it is probably to put the actual string contents in the buffer, like AMD's LLVM path, though that significantly complicates the code the GPU has to execute
23:17 airlied: jenatali: just a memcpy? :-P
23:18 airlied: jenatali: when we are lowering things don't we have a cpu side pointer, could we just not use that as a handle
23:18 airlied: or we could treat real strings like fmt strings and have an indexed lookup table
23:20 jenatali: airlied: Depends if constant kernel args can be used as input to %s format strings... I don't remember where we landed on that
23:20 jenatali: jekstrand, karolherbst: Do either of you remember? ^^
23:20 karolherbst: uhh...
23:20 karolherbst: mhhh
23:20 karolherbst: I think we came to the conclusion it has to be a literal literal
23:20 jenatali: That's what I thought I remembered too
23:20 karolherbst: but mhh
23:21 karolherbst: oh well. I'd implement it so the CTS is happy
23:21 karolherbst: and fix it once people complain :p
23:21 jenatali: The CTS only uses literals I believe
23:22 jekstrand: I'm happy with only literals
23:23 airlied: yeah the spec says global char *s is illegal
23:23 airlied: and constant char *p
23:24 airlied: "
23:24 airlied: In OpenCL C, the conversion specifier s can only be used for arguments that are literal strings.
23:24 airlied: so I think we are good with just having a lookup table
23:30 airlied: so maybe I'll just adjust the lowering to also reutrn a bunch of strings
23:34 airlied: oh maybe that isn't trivial, will have to think about :-P
23:36 karolherbst: :D
23:36 karolherbst: yeah...