ChanServ changed the topic of #asahi-re to: Asahi Linux: porting Linux to Apple Silicon macs | Hardware / boot process / firmware interface reverse engineering | WARNING: this channel (only) may contain binary reverse engineering discussion | RE policy: https://alx.sh/re (MANDATORY READ) | GitHub: https://alx.sh/g | Wiki: https://alx.sh/w | Logs: https://alx.sh/l/asahi-re
amarioguy has quit [Ping timeout: 480 seconds]
MajorBiscuit has quit [Ping timeout: 480 seconds]
doggkruse has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
doggkruse has joined #asahi-re
chadmed has joined #asahi-re
user982492 has joined #asahi-re
phiologe has joined #asahi-re
PhilippvK has quit [Ping timeout: 480 seconds]
<nicolas17>
so iBoot is encrypted, keys to decrypt it are not available for M1, and the unencrypted vmapple iBoot isn't useful because it doesn't deal with hardware stuff
<marcan>
we're shaving all the yaks here, no char/misc devices please
<marcan>
leave that nonsense to lazy hardware vendors
<marcan>
our goal is to do things right and upstream them, and that isn't upstreamable
<marcan>
for video codecs there's different frameworks, stuff like v4l m2m
<marcan>
something along those lines is probably the way to go, but it needs to be discussed with upstream to make sure what we're doing makes sense
<marcan>
also keep in mind that "the x86 way" is often the wrong way
<marcan>
e.g. the x86 world of video decoding is centered around GPUs doing it, which is not the case here
<rqou_>
yeah, i'm mostly focused on RE/hardware docs and don't actually know much about linux driver dev or upstream
<marcan>
and around things like keeping decode output in VRAM, which is also not the case here
<marcan>
rqou_: also re compressed formats, at least some of them need additional out of band metadata beyond dimensions/pitch as usual
ChaosPrincess has quit [Quit: WeeChat 3.4.1]
<marcan>
DCP has a whole bunch of that
<rqou_>
huh that's interesting
<marcan>
and the reason for this is so that macos can do stuff like play 4K youtube videos in safari with the GPU *off* and the video decoder feeding directly into a DCP surface with minimum memory bandwidth usage
ChaosPrincess has joined #asahi-re
<rqou_>
ooh that's actually really cool
<dottedmag>
marcan: how would that work? a special case in compositor if it knows that nothing has to be composited over the surface that shows the video? (presumably any overlay interface element would require GPU to be enabled)
<marcan>
DCP supports alpha channels, it can composite for you
<marcan>
and basic scaling
<marcan>
you can put the video surface below an overlay layer with the rest of the UI
<rqou_>
lol how many "scaling" blocks does this chip have?
<marcan>
all display output hardware has scaling these days...
<rqou_>
the jpeg block also has a scaler
<rqou_>
in addition to the dedicated "scaler"
<marcan>
AIUI the dedicated scaler blocks are actually useful because they're pretty fast? I don't know what apple uses them for though, but I'm guessing at least video/image scaling? would be nice to find out
<marcan>
it might be mostly for stuff like huge images
<marcan>
also I heard that on the Pro/Max, there is even more nonsense for HDR output
<marcan>
like dedicated HDR overlay planes or something
<marcan>
that all seems like a giant mess though, and Linux support for HDR is kind of a joke still
<marcan>
so I wouldn't think too hard about that until people first figure out how it should all work on linux anyway
<_jannau_>
I'd guess the seperate scalers are for camera input/isp
<marcan>
ISP is its own thing
<dottedmag>
OTOH, unless the capabilities of hardware are known, it's unclear what to expose in Linux.
<marcan>
the scalers are instantiated by the AP
<marcan>
so ISP probably has its own
<marcan>
dottedmag: yeah but first you need to, like, figure out HDR/color management/etc at the application layer for any of this to be useful
<marcan>
hasn't exactly been linux's forte ever...
<_jannau_>
not sure if the isp includes it's on scaler, i.e. you would use the scaler on the isp output
<marcan>
I do want to work on that, once the GPU is nice and smooth ;)
<marcan>
_jannau_: could be, but ISP does more complicated stuff than scaling anyway...
<marcan>
camera processing these days is magic
<marcan>
so I would expect it to have a scaler
<marcan>
(and possibly also a JPEG encoder)
<rqou_>
lol another jpeg encoder?
<rqou_>
and yeah, linux hdr support was a mess last time i poked it
<rqou_>
basically the only program that seems to work properly is firefox
<marcan>
that alone would be good to get working though, if it really does
<rqou_>
and you have to twiddle a special setting in about:config
<chadmed>
collabora is working on colour management in wayland i think
<marcan>
anyway, this is all predicated on wayland for sure, and wayland is predicated on GPU because it's kind of worse than xorg without one IME :-)
<chadmed>
but i mean theyre basically starting from nothing so its going to be a while before their labour bears any fruit
<marcan>
yeah
<rqou_>
iirc firefox color management works on xorg
<marcan>
so it'd be good to talk to the people involved to be a test platform, but let's not get too carried away with it as a goal
<marcan>
rqou_: I doubt HDR works on xorg as intended
<marcan>
lots of things don't work on xorg as intended :p
<marcan>
I shipped with xorg because the OOTB experience is better
<rqou_>
hrm, "color management so that you don't get extremely intense red" did work
<rqou_>
idk about the rest of HDR
<marcan>
but the end goal should be wayland... I just hope they make xwayland suck less, because that one surprised me with how crappy it was
<marcan>
(broken HiDPI)
<marcan>
rqou_: that's not HDR
<marcan>
HDR is about *brightness*
<marcan>
that's just wide gamut
<marcan>
mind you, not that any of this is perfect on macOS with popular applications anyway
<marcan>
every time I clipboard paste an image into Discord on macOS it comes washed out due to a bad gamut conversion
<marcan>
it's been broken for at least a year now
<chadmed>
only niggle ive had with wayland over the last two-and-a-bit months has been the lack of blue light filtering at night, because no gamma_lut_crtc
<rqou_>
oh yeah hmm i guess you can have wide gamut without hdr
<rqou_>
maybe hdr is indeed broken
<_alice>
i wonder if that’s just something busted with electron/Discord and colour space handling, because it works fine for me everywhere else ><
<marcan>
chadmed: before release I gave it a spin to see if I should default to it, saw the cute insta-HiDPI scaling hack (except it looks ugly until you restart the apps, so not that great a user experience), and then tried firefox and cringed at the blur because apparently it runs at 1x and gets scaled up?
<marcan>
in xwayland
<marcan>
(guess it defaulted to X)
<marcan>
I'm sure it can all be improved but the defaults were not great and I didn't have time to poke a stick at it
<marcan>
and apparently xwayland HiDPI issues are a long-standing problem
<rqou_>
unrelated: i just threw the scaler driver into ghidra and wao it's complicated
<marcan>
lol
<marcan>
sometimes reading HV logs is easier, you know
<rqou_>
yeah i know
<marcan>
apple like to overcomplicate code
<chadmed>
oh yeah xwayland scaling is just completely borked. for firefox i just added MOZ_ENABLE_WAYLAND=1 to /etc/env and that sorted it, but its not really a shippable fix. not sure why they havent got wayland enabled by default upstream though
<rqou_>
i'm just trying to figure out how to work the dart,t8110 :(
<rqou_>
marcan: idk if you saw, but for some reason the m1 max has dart,t8110 for the prores, scaler, usb4, and avd blocks
<marcan>
yeah I saw
<marcan>
they're probably just moving to that for everything
<rqou_>
wait have you already RE'd it?
<marcan>
no
<marcan>
I kinda feel like the t6000 DART was a hack to avoid a full SoC block upgrade
<marcan>
and t8110 is the "new" upgraded DART
<marcan>
anyway, that's a blocker for everything so it's a good thing to look at first
<marcan>
and it *shouldn't* be too hard to figure out from HV traces
<rqou_>
hmm y'know what would be really helpful in the asahi dart docs? a diagram
<Jamie[m]1>
omg there are asahi dart docs?
<rqou_>
well, there's mini/hw/dart.py
<Jamie[m]1>
ah right
<chadmed>
might be worthwhile compiling actual docs for some of this stuff at some point, once things have stabilised a bit
<marcan>
PRs accepted :>
<marcan>
and yes
PthariensFlame[m] has quit [Server closed connection]
PthariensFlame[m] has joined #asahi-re
<rqou_>
lol, project zero actually has a diagram
<rqou_>
of the DART
<rqou_>
from back when they pwned the broadcom wifi
<sven>
that’s probably for the DART from long before m1 was a thing :D
<sven>
there’s an older version from the iPhones that only does 4K pages
<sven>
and the registers look a bit different
<sven>
the best DART docs we have is probably the Linux driver and that dart.py :D
<sven>
I very briefly looked at that t8110 dart kext and it seems that it changed quite a bit
<sven>
iirc it supports one more pagetable level now, and presumably a bigger iova space with that
bisko has joined #asahi-re
phire has quit [Remote host closed the connection]
phire has joined #asahi-re
JuniorJPDJ has quit [Server closed connection]
JuniorJPDJ has joined #asahi-re
amarioguy has joined #asahi-re
rikkaa has quit [Quit: Connection closed for inactivity]
amarioguy has quit [Ping timeout: 480 seconds]
amarioguy has joined #asahi-re
bisko has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<YichaoYu[m]>
<marcan> "but the end goal should be..." <- Please at least keep supporting sort for a few more years…. Currently the hack it took to get input methods working in wayland is just terrible….
<marcan>
we're not going to stop supporting xorg, we'll just support both and probably default to wayland at some point
roxfan2 is now known as roxfan
amarioguy has quit [Ping timeout: 480 seconds]
amarioguy has joined #asahi-re
user982492 has joined #asahi-re
unevenrhombus[m] has quit [Server closed connection]
unevenrhombus[m] has joined #asahi-re
Hinata[m] has quit [Server closed connection]
Hinata[m] has joined #asahi-re
AnalogDigital[m] has quit [Server closed connection]
AnalogDigital[m] has joined #asahi-re
davay[m] has quit [Server closed connection]
davay[m] has joined #asahi-re
BastienSaidi[m] has quit [Server closed connection]
BastienSaidi[m] has joined #asahi-re
booffo[m] has quit [Server closed connection]
booffo[m] has joined #asahi-re
daniel0611[m] has quit [Server closed connection]
daniel0611[m] has joined #asahi-re
feeleep[m] has quit [Server closed connection]
feeleep[m] has joined #asahi-re
hectour[m] has quit [Server closed connection]
hectour[m] has joined #asahi-re
javier_varez[m] has quit [Server closed connection]
javier_varez[m] has joined #asahi-re
jeh[m] has quit [Server closed connection]
jeh[m] has joined #asahi-re
josipknezovic[m] has quit [Server closed connection]
josipknezovic[m] has joined #asahi-re
kedde[m] has quit [Server closed connection]
kedde[m] has joined #asahi-re
lockna has quit [Server closed connection]
lockna has joined #asahi-re
landscape15[m] has quit [Server closed connection]
landscape15[m] has joined #asahi-re
LilleCarl[m] has quit [Server closed connection]
LilleCarl[m] has joined #asahi-re
matthewayers[m] has quit [Server closed connection]
matthewayers[m] has joined #asahi-re
DanStrong[m] has quit [Server closed connection]
DanStrong[m] has joined #asahi-re
latko[m] has quit [Server closed connection]
latko[m] has joined #asahi-re
plantaintion3[m] has quit [Server closed connection]
plantaintion3[m] has joined #asahi-re
pulpy_orange2[m] has quit [Server closed connection]
pulpy_orange2[m] has joined #asahi-re
pwn0rz[m] has quit [Server closed connection]
pwn0rz[m] has joined #asahi-re
quentin[m] has quit [Server closed connection]
quentin[m] has joined #asahi-re
Redecorating[m] has quit [Server closed connection]
Redecorating[m] has joined #asahi-re
rhys has quit [Server closed connection]
rhys has joined #asahi-re
RowanGoemans[m] has quit [Server closed connection]
RowanGoemans[m] has joined #asahi-re
ryanhrob1[m] has quit [Server closed connection]
ryanhrob1[m] has joined #asahi-re
s-urabe[m] has quit [Server closed connection]
s-urabe[m] has joined #asahi-re
shaman_br[m] has quit [Server closed connection]
shaman_br[m] has joined #asahi-re
sikkileo[m] has quit [Server closed connection]
sikkileo[m] has joined #asahi-re
simjnd[m] has quit [Server closed connection]
simjnd[m] has joined #asahi-re
JacksonR[m] has quit [Server closed connection]
JacksonR[m] has joined #asahi-re
spokv[m] has quit [Server closed connection]
spokv[m] has joined #asahi-re
sppdqd[m] has quit [Server closed connection]
sppdqd[m] has joined #asahi-re
sproede[m] has quit [Server closed connection]
sproede[m] has joined #asahi-re
svenpeter[m] has quit [Server closed connection]
svenpeter[m] has joined #asahi-re
svenpeter[m] is now known as Guest580
tophevich[m] has quit [Server closed connection]
tophevich[m] has joined #asahi-re
user1tt[m] has quit [Server closed connection]
user1tt[m] has joined #asahi-re
vimsos[m] has quit [Server closed connection]
vimsos[m] has joined #asahi-re
xorly[m] has quit [Server closed connection]
xorly[m] has joined #asahi-re
m6wiq has joined #asahi-re
the_lanetly_052 has quit [Ping timeout: 480 seconds]
Andre[m]1 has quit [Server closed connection]
Andre[m]1 has joined #asahi-re
fbd222[m] has quit [Server closed connection]
fbd222[m] has joined #asahi-re
yamii has quit [Quit: WeeChat 3.3]
yamii has joined #asahi-re
bisko has quit [Read error: Connection reset by peer]
bisko has joined #asahi-re
doggkruse has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
doggkruse has joined #asahi-re
HardWall has joined #asahi-re
m6wiq has quit []
user982492 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
amarioguy has quit [Ping timeout: 480 seconds]
bisko has quit [Read error: Connection reset by peer]
bisko has joined #asahi-re
user982492 has joined #asahi-re
user982492 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
bisko has quit [Read error: Connection reset by peer]