Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A hunch about unkFloat in swap_submit_dcp() #95

Open
kleinerm opened this issue Aug 14, 2021 · 2 comments
Open

A hunch about unkFloat in swap_submit_dcp() #95

kleinerm opened this issue Aug 14, 2021 · 2 comments

Comments

@kleinerm
Copy link

Just read the Asahi Linux status update, great work people! At your rate of progress, my own neuroscience OSS software might run well on Asahi Linux, long before it runs bearable on macOS 12 with M1 SoC's :)

Looking at the signature of swap_submit_dcp() and the actual DPC interface, i have a hunch that the unkFloat 64 Bit double in ...

unkBool=False, unkFloat=0.0, unkInt=0, unkOutBool=outB)

... could be related to / an implementation of macOS Metal's MTLDrawable:presentAtTime: argument:
https://developer.apple.com/documentation/metal/mtldrawable/1470282-presentattime?language=objc

Iow. a double value presenting Mach host system time of when a swap should ideally occur? Assuming the DCP has a shared timebase with the ARM cpu, or some mapping happens? Would make sense, given that they offload other rather high-level things to the DCP.

Just a thought. Have a nice weekend
-mario

@alyssarosenzweig
Copy link
Member

This is a distinct possibility. Not for Metal specifically -- the DCP is uninvolved with Metal -- but presentation time in general. It's worth testing out the behaviour with nonzero floats passed.

@marcan
Copy link
Member

marcan commented Sep 4, 2021

Note that there are already a number of timestamps in the swap request structure (that we currently ignore).

"ts1" / Default(Int64ul, 0),

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants