09:34tzimmermann: vsyrjala, further comments on https://lore.kernel.org/dri-devel/20251028034337.6341-1-chintanlike@gmail.com/ before i merge it?
12:23vsyrjala: tzimmermann: looks fine by me
12:37tzimmermann: thanks
16:10jani: I'm looking at dev->num_crtcs and dev->mode_config.num_crtc. the former is initialized using the parameter to drm_vblank_init(). the latter is increased by drm_crtc_init_with_planes() and its variants. some drivers pass dev->mode_config.num_crtc to drm_vblank_init(), some don't. what's the relationship, can there ever be a discrepancy between the two?
16:13jani: struct drm_vblank_crtc has pipe member, but can I be sure there's a crtc with that index? struct drm_crtc has index member, but can I be sure dev->vblank[] is big enough for all indexes?
16:16jani: there's certainly a bunch of code that does e.g. dev->vblank[drm_crtc_index(crtc)] without checks
18:03vsyrjala: jani: vblank[] being too small would be a driver bug. the out of bounds index checks have been cargo culted all over the place. personally i'd like to nuke all of them (apart from the uapi level stuff where it's actually needed)
18:04vsyrjala: i suppose one option would be to put the check into drm_vblank_crtc() and have it return NULL and let buggy code explode
18:05vsyrjala: hmm. i thought i converted all the named vblank[index] things into drm_vblank_crtc() to looks like a few places have slipped through
18:05vsyrjala: s/named/naked.
18:36jani: vsyrjala: I've got a series baking doing that and much more, and hence the question :)
20:14austriancoder: alyssa: as the commit changed over time - does your RB still holds on !38217?
20:23alyssa: sure
21:08Kayden: hey... I noticed that a bunch of NIR store intrinsics have writemasks. SSBO. Global. Shared. Scratch. task payloads.
21:08Kayden: but.....brw/elk are wholesale ignoring those. apparently asahi is too. like, not even reading or processing them
21:09Kayden: ir3, bifrost, and broadcom/vir seem to be using nir_lower_wrmasks to get rid of them
21:09Kayden: aco seems to honor them
21:09alyssa: asahi's store_shared implementation is lol:
21:09alyssa: unsigned mask = BITFIELD_MASK(
21:10alyssa: nir_src_num_components(instr->src[0])); /* XXX: there's a write mask */
21:10anholt: lower_wrmasks lowers non-contiguous masks.
21:10Kayden: given that things haven't fully exploded by now, it seems like there's something guaranteeing that we don't get arbitrary writemasking
21:10pendingchaos: ACO doesn't implement store_shared writemask, it expects nir_lower_mem_access_bit_sizes to lower them
21:11pendingchaos: (which that pass does, unconditionally)
21:11Kayden: ohhh, nir_lower_mem_access_bit_sizes is handling that?
21:11glehmann: Is there any backend that actually implements memory write masks in a non trival way?
21:11alyssa: glehmann: agx could but does not
21:12pendingchaos: ACO used to for some store_shared, using the write2 instructions
21:12alyssa: Kayden: ..and for history, that NIR pass was moved out of brw originally (-:
21:12anholt: glehmann: ir3 does for shared, scratch, and ssbo.
21:13Kayden: anholt: really? it's calling nir_lower_wrmask for ssbo/shared/global/scratch.
21:13Kayden: (ir3_nir.c:430)
21:14anholt: oh, wait. nir_lower_wrmask is not what I remembered! I thought it would turn .xz into .x and .z, rather than doing address math for two .xes
21:15Kayden: yeah... it makes the writemask always .x
21:15Kayden: (well, starting with .x)
21:17Kayden: anyhow... I guess some backends may want writemasks
21:17Kayden: and, nir_lower_mem_access_bit_sizes is getting rid of them for most memory stores.
21:18Kayden: so I can probably just assert that the writemask is trivial in the backends and continue not worrying about it.
21:18Kayden: I was reworking some store_output related code and saw store_ssbo wasn't handling any writemasking and was just like...how is this not broken
21:18Kayden: so thanks :)
21:28Kayden: also just found some of our code that remaps intrinsics and sets write_mask to........ 0. always. at which point it's a good thing we ignore it. lol
23:02pac85: if I see `spec@arb_texture_rg@texwrap formats-float bordercolor@GL_R16F- border color only` in the CI output is there a simple way to translate that into a piglit command to run that exact same test locally? I typically just look for binaries with similar names and figure out the args to pass but I'd hope there is some better way