-
Notifications
You must be signed in to change notification settings - Fork 222
Description
I have a local branch which displays tiger on a Pixel 4, but it needs a fair amount of cleanup before it can be merged. This issue is to track that happening and also document some of the things I ran into.
I was not able to get winit to work on my device - for reasons I still do not understand, it never seems to get a WindowCreated event which is properly plumbed through to the user. I used ndk-glue instead and was able to get it to work. I have some concerns about that code as well, which I should raise as issues on that repo, but none of it is blocking the work at hand, which is to get it running well enough to do performance measurement. One concern is that at least one callback is intended to be synchronous, but the ndk-glue code just asynchronously sends an event (over a Unix fd pipe, for a reason I do not understand) to the user thread.
The Pixel 4 does not debug validation layers, and the current code depends on those existing in debug builds. It should sense it at runtime.
The Pixel 4 also does not have descriptor indexing. Again, this should be queried at runtime. This issue is considerably more complex, as it requires multiple compilations of k4, and also CPU-side code to deal with the non descriptor indexing case. The local branch just disables images.
For some reason, I'm getting ERROR_SURFACE_LOST_KHR when acquiring the swapchain after two presentations. This is probably something simple, I just haven't figured it out yet.
As part of the cleanup, I want to reduce code duplication between the existing two binaries (cli and winit) which are now three.
If anyone is really eager to try this at home, I can upload my local branch as a draft PR. But I plan on getting the real PR uploaded before long also.