10:59linkmauve: Hi, it seems rusticl currently doesn’t build when using a nightly Rust version with bindgen:
10:59linkmauve: error: invalid value '1.88.0-nightly' for '--rust-target <RUST_TARGET>': "1.88.0-nightly" is not a valid Rust target, the patch version number must be an unsigned 64-bit integer
10:59linkmauve: With `rustup default stable` it does build.
11:34tzimmermann: what is the expected UAPI behavior if the gamma_lut table is larger than the bits-per-component? for example, if the gamma_lut has 256 hardware entries, but the color format is rg565? will userspace load only enough entries for the rgb565 format? or will it load the full table and let the driver interpolate?
11:35emersion: driver interpolates
11:39pq: That's a good question, I suppose it hasn't been documented then?
11:41pq: the framebuffer format is quite far removed from the CRTC after-blend format in the abstract color processing model.
11:42pq: you could have one plane with argb888 and another plane with rgb565
12:19tzimmermann: emersion, pq, i searched thorugh xorg and drivers, but i couldn't find a definite answer. xorg appears to load the full HW palette. but not all drm drivers appear to interpolate
12:20pq: tzimmermann, are you talking about C8, the paletted format?
12:22pq: There is much of ancient history, C8 was, AFAIU, supposed to work by loading the palette into... one of the CRTC LUTs. Obviously that's problematic with multiple planes on a CRTC, and there probably isn't a solution, because paletted formats feel out of use.
12:23pq: *fell
12:23tzimmermann: neither. each pixel component serves as index into the gamma lut. so if the plane format is rgb565, the gamma lut requires 32/64/32 entries. but the hardware table has usually 256 entries for each component. my question is bout the behavior in this case
12:24pq: right, and I would assume the you would find all possible behaviors in different drivers/hw
12:24tzimmermann: indeed. the semantics arent clear
12:24pq: However, this LUT is attached to the CRTC so it acts after blending. What format does blending produce?
12:25tzimmermann: pq, depends on the hardware
12:25pq: Given one can compose a CRTC from planes with e.g. argb8888 and rgb565.
12:26pq: right, except in modern KMS it cannot depend on the hardware
12:26pq: the view of KMS to userspace must the common across all hw
12:26tzimmermann: right. at least the HW-specific behavior has to be marked as such
12:27pq: so there must be a common abstraction, assumption, of what that format is
12:27tzimmermann: exactly
12:27pq: *I* would assume that format is the normalized [0.0, 1.0] range.
12:28tzimmermann: and that is the 'index' into the lut
12:28tzimmermann: ?
12:28pq: which means that no matter how many elements a LUT has, the first elements maps to 0.0 and last element maps to 1.0. Linearly in between.
12:28pq: yes
12:28tzimmermann: that makes sense
12:29pq: yeah, it would make sense, but I cannot guarantee it works like that :-)
12:29tzimmermann: i think that is the assumption build into the UAPI, although it's under-documented
12:31tzimmermann: there is simple hardware that takes the pixel component as an index into the hardware lut. something like r' = hw_gamma_lut[r] ; same for g and b components. this is when the driver has to interpolate the gamma_lut property to get the corresponding hardware lut
12:32tzimmermann: does that make sense?
12:32pq: yes, I think so.
12:33tzimmermann: thanks. that was very helpful
12:35pq: there is also hardware with non-uniformly distributed LUT taps, and the driver converts the uAPI given table to that form.
14:26MrCooper: hakzsam: FYI, I bisected some piglit cl regressions with rusticl on radeonsi to e433a57650c1 ("ac,radeonsi: rework computing scratch wavesize and tmpring register")
14:27MrCooper: (isn't it time for some rusticl on radeonsi coverage in CI?)
14:27hakzsam: MrCooper: sorry for the breakage, I will take alook
14:28MrCooper: no worries, it happens if there's no CI coverage
14:29MrCooper: hakzsam: fails with cl-program-tester: ../src/gallium/drivers/radeonsi/si_compute.c:303: si_setup_compute_scratch_buffer: Assertion `scratch_needed' failed.
16:22hakzsam: MrCooper: I'm afraid I don't see the issue. How do I repro?
16:23MrCooper: e.g. 'RUSTICL_ENABLE=radeonsi .../piglit/bin/cl-program-tester .../piglit/tests/cl/program/execute/amdgcn.sign_extend_inreg.cl'
16:25hakzsam: ok
16:48hakzsam: MrCooper: oh, I see the bug...
16:55hakzsam: MrCooper: mareko: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34586
17:23cmarcelo: do I need to do something special to enable margebot to act in a gitlab repo? (mesa/vkrunner)
17:59eric_engestrom: cmarcelo: yes, we need to add that repo to ones of the marge instances
18:00eric_engestrom: cmarcelo: please ask for it on #freedesktop, I don't have time right now and I'll forget by next week so it's better to ask there :P
18:02cmarcelo: eric_engestrom: ok tks
20:05yusisamerican: How does the compiler figure out the association between the nir_variable associated with the ubo and the source of the ubo load intrinsic?
21:27zf: is there any feasible way to bisect llvm?
21:29kisak: sure, on the odd occasion I've bisected llvm with mesa, I've always rebuilt mesa from the same day as the llvm commit and carefully took notes as I went.
21:31kisak: that was with gentoo portage and SSH'ing into the test box to only use the system-wide installed versions of llvm and mesa so that I didn't contaminate the test with unexpected combinations
22:10olivial: yuisamerican: is the nir_lower_io pass what you're looking for/asking about?
22:11olivial: this is where ubo variable derefs are converted to load_ubo
22:21yusisamerican: olivial: I think so
22:43yusisamerican: thanks
22:47olivial: np :)