<chewitt>
has all the fip sources we've ever found for Amlogic boards, to do the signing with
<chewitt>
so you don't need to do the README steps where you have to build vendor u-boot to create them
<chewitt>
same sources used in the LE image that I linked
<chewitt>
N2 has spi flash and Khadas have something called petitboot installed there to "help" boot, although I found it to be a PITA
<chewitt>
s/Khadas/HK
<chewitt>
AFAIK the mainline u-boot for Amlogic supports SPI boot, but I've never used it
<chewitt>
Neil will know more details, but IMHO emmc install is easiest and works fine
warpme_ has quit [Quit: Connection closed for inactivity]
davidlt has joined #panfrost
Elpaulo1 has joined #panfrost
Elpaulo has quit [Ping timeout: 260 seconds]
Elpaulo1 is now known as Elpaulo
tomboy64 has quit [Remote host closed the connection]
tomboy64 has joined #panfrost
vstehle has joined #panfrost
tgall_foo has quit [Ping timeout: 256 seconds]
Green has quit [Quit: Green]
<tomeu>
alyssa: what's the deal with sizzle members in the cmdstream on bifrost, btw?
yann|work has joined #panfrost
nlhowell has joined #panfrost
NeuroScr has quit [Quit: NeuroScr]
thefloweringash has quit [Quit: killed]
nhp[m] has quit [Quit: killed]
Ke has quit [Quit: killed]
NeuroScr has joined #panfrost
<tomeu>
alyssa: chewitt narmstrong: btw, having the GPU permanently on via power/control makes it much more stable
<tomeu>
I still see some faults that I don't see on the g31, but I think that could be due to differences in the cmdstream that we don't yet account for
<chewitt>
tomeu: any extra kernel patches/tweaks you've done?
<chewitt>
or still the same stuff in Neil's 5.8/bifrost branch?
<tomeu>
no, just writing "on" to /sys/devices/platform/soc/ffe40000.gpu/power/runtime_status
<tomeu>
yep
Cruft has quit [Quit: Leaving]
<chewitt>
I'll have another go with bifrost support over the weekend
<chewitt>
this week has been XU4 flavoured
thefloweringash has joined #panfrost
<tomeu>
sorry, I meant above /sys/devices/platform/soc/ffe40000.gpu/power/control
warpme_ has joined #panfrost
yann|work is now known as yann
stikonas has joined #panfrost
Ke has joined #panfrost
nhp[m] has joined #panfrost
robmur01 has joined #panfrost
robmur01_ has joined #panfrost
robmur01_ has quit [Client Quit]
robmur01 has quit [Ping timeout: 260 seconds]
raster has joined #panfrost
icecream95 has quit [Ping timeout: 260 seconds]
robmur01 has joined #panfrost
kaspter has quit [Quit: kaspter]
austriancoder has quit [Quit: Connection closed for inactivity]
gcl_ has joined #panfrost
gcl has quit [Ping timeout: 256 seconds]
cwabbott_ has joined #panfrost
cwabbott has quit [Ping timeout: 272 seconds]
cwabbott_ is now known as cwabbott
gcl_ has quit [Ping timeout: 240 seconds]
gcl has joined #panfrost
tgall_foo has joined #panfrost
tgall_fo_ has joined #panfrost
tgall_foo has quit [Ping timeout: 260 seconds]
buzzmarshall has joined #panfrost
cwabbott has quit [Quit: cwabbott]
cwabbott has joined #panfrost
NeuroScr has quit [Quit: NeuroScr]
<alyssa>
tomeu: G71 still had swizzles, later bifrost no
<alyssa>
So now they're all forced to xyzw with missing components --> 0, and a flag you can set to force w -> 1
<alyssa>
For textures, this is irrelevant since you can compose the swizzles and still fit
<alyssa>
For attributes/varyings, it does mean some loss of freedom but very minimal. Probably good enough for GLES, probably not for a few desktop GL tests (like BGRA vertex which icecream just fixed on mdg)
tgall_fo_ is now known as tgall_foo
<tomeu>
alyssa: and g31 is considered later than g71?
<alyssa>
tomeu: Much later, yes.
<alyssa>
G71 is first-bifrost
<alyssa>
everything else is newer
<tomeu>
alyssa: ok, so regarding swizzles, we can pass the ctx/dev to panfrost_get_default_swizzle and return depending on the GPU version
<tomeu>
should those bits belong to the swizzle member?
<alyssa>
tomeu: which bits?
<alyssa>
0x10 is the "w=1" bit which you'd set if there's no w channel to match OpenGL's behavior
<tomeu>
alyssa: mali_attr_meta.unknown1
<tomeu>
we need to not set it to 0x2 on bifrost
<alyssa>
tomeu: Oh.
<alyssa>
I don't know what that field is/does.
<alyssa>
Honestly I'd just stick an (is_bifrost ? 0 : 2) in and call it a day at this point.
<tomeu>
ack
<tomeu>
and now we only have this one left:
<tomeu>
if (rsrc->layout == MALI_TEXTURE_LINEAR) {
<tomeu>
- rt->format.block = MALI_BLOCK_LINEAR;
<tomeu>
+ rt->format.block = MALI_BLOCK_TILED;
<tomeu>
which I have no idea of how to tackle :)
<alyssa>
Oof.
<tomeu>
alyssa: you are not carrying any cmdstream hacks in any branches, right?
<alyssa>
Uhh
<alyssa>
tomeu: alyssa/mesa:conditionals is my latest stuff IIRC
<alyssa>
though that's not pushd uh
<alyssa>
just pushed what I have here
<tomeu>
alyssa: ok, I think I already have all that
<alyssa>
nice@
<tomeu>
so wizzles I know already how to tackle, the block format thing no idea at all
<alyssa>
tomeu: I would encourage looking into FBOs
<alyssa>
which for the blob will mean AFBC or tiled
<tomeu>
after that, I should probably look at how much of deqp we can run, because I'm starting to be afraid of breaking stuff
<alyssa>
(For midgard blob if you make the framebuffer super tiny like 2x2, it'll do tiled over AFBC. I don't remember if Bifrost blob behaved like tha too.)
<tomeu>
ok, what scene it was in glmark?
<alyssa>
-bshadow and -brefract are the easy ones.
<alyssa>
./test-tex-fbo in freedreno is more comprehensive but that needs x11
<alyssa>
I've been looking at sin/cos on Bifrost.
<alyssa>
We have SIN_TABLE and COS_TABLE instructions which are used like:
<alyssa>
sin(x) ~ SIN_TABLE( (2/pi)*x + 786432 )
<alyssa>
cos(x) ~ COS_TABLE( (2/pi)*x + 786432 )
<alyssa>
It's not clear to me what's special about 786432.0 yet
<alyssa>
Of course, the precision of those tables is really bad
<alyssa>
However, since those tables do have range [-1, 1] and sin/cos are nice enough functions, we can rigorously say that there exists some δ such that
<alyssa>
and likewise for cos. We'll be a little handwavy and suppose it's the same δ
<alyssa>
Even though the tables are pretty low precision, they are close enough that δ is small. I won't make this rigorous yet but conceptually it has to be true if the tables are of any use at all.
<alyssa>
(Sorry for redefining δ somewhat here but illustrative, this is not a proof :P) -- The trick is to construct a Taylor series of sin around x.
<alyssa>
So all that's left is estimating δ, which is admittedly tricky without knowing how the tables behave
<alyssa>
but as a spoiler the blob computes
<alyssa>
δ = y - (pi/2) * (2/pi) * y
<alyssa>
(Over R, obviously the factors cancel and we get δ = y - y = 0. Over floating-points, since both pi/2 and 2/pi are approximated anyway, (pi/2)*(2/pi) is close-but-not-exactly 1, so δ is some small nonzero estimate.)
<alyssa>
and that's it :)
la-s has joined #panfrost
austriancoder has joined #panfrost
<raster>
does anyone else here have a working panfrost + a wl compositor working they can try something for me?
<robmur01>
raster: I have gdm up on my RK3399, if that counts