On Sat Mar 30 15:15:03 2024 +0000, Alexandros Frantzis wrote:
Thanks for the feedback!
- Sure, I can experiment more in this direction. With a move towards
the PE side, we would we still want to allow drivers to override the behavior (at least for now) and fall back to the existing GetPixelFormatAttrib*/ChoosePixelFormatARB unix calls, right? Concerning per-HDC caching, is this to support the possibility of different drivers (e.g., normal vs offscreen) in the same process (because otherwise the pixel format data is constant)? Were you thinking about something along the lines of glReserved[2] = <format array ptr>, glReserved[4] = <num formats>, glReserved[4] = <hdc associated with format array> ? 2. Not yet, but I plan to (for now I am just following the glx+tweaks rules). I have a small program that allows me to exercise `wglChoosePixelFormatARB` and I would like to run it on a few different setups to see if I can infer anything from the results.
Well... maybe it would be more complicated to support an override on the driver end if it lives on the PE side, but I think we can consider not supporting that fallback anymore if it works well enough by re-implementing the list ourselves.
Then maybe moving it to the unix side of opengl32 could be a first step to be able to validate that it does, and moving it to the PE side could come later, but that also means more work to get there. Not completely sure it's worth it.
Looking at how it behaves on Windows could tell us a bit more about that, and whether it seems better to delegate it to the host OpenGL or not.
Concerning per-HDC caching, is this to support the possibility of different drivers (e.g., normal vs offscreen) in the same process (because otherwise the pixel format data is constant)? Were you thinking about something along the lines of glReserved[2] = , glReserved[4] = , glReserved[4] = ?
Yes, something like that, and yes mostly because we have memory DCs handled separately. Of course if the list can be completely made up there's not much point caching anything.