On Wed Sep 4 17:57:07 2024 +0000, Jacek Caban wrote:
> > being able to register wrappers from win32u makes things simpler
> because we then don't need a manual function in winevulkan to register
> the objects, and the winevulkan thunks can call directly into win32u functions.
> So you plan to manage some of rbtree handling in winevulkan while others
> in win32u? That doesn't sound like a clean separation if the only
> benefit is avoiding a few manual thunks in winevulkan. It seems cleaner
> to have all of that on one side (probably winevulkan, but win32u is also
> a possibility).
> win32u doesn't need client handles for anything else, unless I'm missing
> something. It means that if we'd keep that in winevulkan, the only thing
> from `vulkan_object` struct that's needed by win32u would be a handle
> and a parent. The handle requires an unpleasant union and the parent
> needs casting to be useful. That makes me question if `vulkan_object` is
> really all that useful... Having a dedicated per-type structs would
> avoid both of those. You needs it for both the device and instance, why
> not have two or so more?
Actually, depending on other design details, win32u may sometimes need client handle, but then the same concerns apply as against the host handle.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6427#note_81106
> being able to register wrappers from win32u makes things simpler because we then don't need a manual function in winevulkan to register the objects, and the winevulkan thunks can call directly into win32u functions.
So you plan to manage some of rbtree handling in winevulkan while others in win32u? That doesn't sound like a clean separation if the only benefit is avoiding a few manual thunks in winevulkan. It seems cleaner to have all of that on one side (probably winevulkan, but win32u is also a possibility).
win32u doesn't need client handles for anything else, unless I'm missing something. It means that if we'd keep that in winevulkan, the only thing from `vulkan_object` struct that's needed by win32u would be a handle and a parent. The handle requires an unpleasant union and the parent needs casting to be useful. That makes me question if `vulkan_object` is really all that useful... Having a dedicated per-type structs would avoid both of those. You needs it for both the device and instance, why not have two or so more?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6427#note_81105
(From https://gitlab.winehq.org/wine/wine/-/merge_requests/6323)
--
v5: winewayland: Get rid of the window surface individual locks.
winewayland: Introduce a new wayland_client_surface_create helper.
winewayland: Get rid of window_surface reference from wayland_win_data.
winewayland: Get rid of wayland_surface reference from window_surface.
winewayland: Move window contents buffer to wayland_win_data struct.
winewayland: Reset the buffer damage region immediately after copy.
winewayland: Introduce a new get_window_surface_contents helper.
winewayland: Introduce a new set_window_surface_contents helper.
winewayland: Introduce a new ensure_window_surface_contents helper.
winewayland: Post WM_WAYLAND_CONFIGURE outside of the surface lock.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6374
(From https://gitlab.winehq.org/wine/wine/-/merge_requests/6323)
--
v4: winewayland: Get rid of the window surface individual locks.
winewayland: Introduce a new wayland_client_surface_create helper.
winewayland: Get rid of window_surface reference from wayland_win_data.
winewayland: Get rid of wayland_surface reference from window_surface.
winewayland: Move window contents buffer to wayland_win_data struct.
winewayland: Reset the buffer damage region immediately after copy.
winewayland: Introduce a new get_window_surface_contents helper.
winewayland: Introduce a new set_window_surface_contents helper.
winewayland: Introduce a new ensure_window_surface_contents helper.
winewayland: Post WM_WAYLAND_CONFIGURE outside of the surface lock.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6374
Send INVALIDATEMEDIATYPE to allow the transform type to be set before
retrying PROCESSINPUTNOTIFY.
--
v6: mf: Send MEError when IMFStreamSink_ProcessSample fails.
mf: Retry PROCESSINPUTNOTIFY if TRANSFORM_TYPE_NOT_SET is returned.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6059