<alyssa>
^ I can't enable AFBC for scanout until this is merged and backported far enough that nobody will use mesa master on a rk3399 without that patch
<karolherbst>
this is all very annoying somehow....
<karolherbst>
we can't release 1.21 because people say "ahh this hurts us"
<karolherbst>
but we need 1.21 for modifiers
<karolherbst>
:/
<alyssa>
what's wrong with 1.21
<karolherbst>
"This is dangerous. On Intel GPUs, enabling modifiers can increase bandwidth usage and prevent extra CRTCs from being enabled." is what we got on !497
<karolherbst>
but I think 1.21 is a deeper thing we have to figure out somehow
<karolherbst>
I notcied more discussions on that
<alyssa>
yes, modifiers aren't always a win
<karolherbst>
yeah
<karolherbst>
.. as I said " annoying"
davidlt has quit [Ping timeout: 265 seconds]
<karolherbst>
I would be fine with just releaseing 1.21 and let people seeing regerssions to sort it out
<karolherbst>
I think that would help most SoCs, no?
<alyssa>
dunno, our AFBC issues are deeper than 1.21
<karolherbst>
right... but I suspect you want X to use modifiers regardless, no?
<alyssa>
yeah
<alyssa>
we have uncompressed tiled format which we use for SHARED, so that'd be a win for 1.21
<karolherbst>
okay.. cool
<karolherbst>
I am inlcined to ignore 1.20 being broken if 1.21 works
<karolherbst>
but for that we need to release 1.21 :)
<alyssa>
{ static unsigned panfrost...() {
<alyssa>
osh I wonder why gcc is angry
<karolherbst>
hitting compiler bugs again? :p
<alyssa>
which compiler? =p
<karolherbst>
right...
<karolherbst>
all of them :p
<karolherbst>
which.. with clover can actually happen. you at least have like 4 compilers involved :D
<alyssa>
.....Yup
davidlt has joined #panfrost
<HdkR>
1"Throw an error in CMake if someone attempts to compile with GCC" That's a recent change of mine because gcc is busted on my project :P
<alyssa>
HdkR: :<
<macc24>
HdkR: alias gcc='clang'
<HdkR>
I've...optimized for clang
<alyssa>
oh no
<alyssa>
Ha-ha! Now the entire descriptor associated with a vertex shader can be uploaded at CSO create time, so draw-time is literally just the cost of tracking the BO
davidlt has quit [Read error: Connection reset by peer]
davidlt has joined #panfrost
<HdkR>
alyssa: From the earlier texture discussion, I guess Midgard doesn't support bindless sampler and textures, so it can't support the bindless GL extension yet?
<alyssa>
HdkR: I don't think so.
<alyssa>
I'm not sure how the vk blob handles that
<alyssa>
Possibly there is a trick I don't know about but \shrug/
<HdkR>
I think you need descriptor indexing with Vulkan to have true bindless?
<alyssa>
Perhaps
<HdkR>
Internet seems to concur
<HdkR>
Whoa, G77 exposes descriptor indexing
<alyssa>
HdkR: of course, you could just use gigantic sampler/texture tables and have your handles be indices to emulate bindless on a decidedful bindful architecture
<alyssa>
(for midgard)
<alyssa>
no idea if the vk blob does something more clever, I imagine doing that will thrash the cache terribly
<HdkR>
Except you still have an upper limit cap on number of bound images before that extension
<HdkR>
Which looks like ARM sets that cap to 16 per stage
davidlt has quit [Remote host closed the connection]
<chrisf>
one annoying thing to think about for the VK case is the api requires you to support 4 simultaneously bound tables
<chrisf>
err, descriptor sets
<alyssa>
chrisf: ...hm?
<chrisf>
on most of this hw you're going to be doing a bunch of copying to make that work
<HdkR>
Yea, the four descriptors being bound end up being weird
<HdkR>
At least Valhall supporting descriptor indexing implies that there were significant improvements to support bindless there :)
<alyssa>
HdkR: ooi does Bifrost support that?
<HdkR>
Doesn't show up in gpuinfo
<HdkR>
So I'd guess nope
<alyssa>
boo :p
<chrisf>
and.. do we have to separate descriptors by type?
<HdkR>
I believe so
<HdkR>
I think that's imposed by the extension
<chrisf>
ignoring extensions; im thinking about mapping of vk descriptor sets to physical layout for the hw
<HdkR>
ah
<chrisf>
~ will bifrost tolerate textures base == samplers base == ubos base, etc
<chrisf>
similarly curious about the exact function of the resource count fields alyssa mentioned before. does the hw bounds check against them? does it assume to be able to *prefetch* all descriptors up to those limits, and so likely to explode if you have something else in there?
<alyssa>
chrisf: "will bifrost tolerate textures base == samplers base == ubos base, etc", Probably, if you are very careful about alignment
icecream95 has joined #panfrost
<alyssa>
"does the hw bounds check against them?" yes, silently failing if OOB (e.g. texture reads return 0)
<alyssa>
(at least on midgard I saw that, I haven't tested on Bifrost)
<chrisf>
my understanding is that midgard actually makes vulkan binding model slightly easier due to indirection?
<alyssa>
"does it assume to be able to *prefetch* all descriptors up to those limits" No idea