[PATCH v4 0/1] MR6300: Draft: wined3d: Don't reject cross-device blits.
I'm not sure this is 100% safe (maybe limiting those blits to sysmem textures would be better like stated in the original change?) -- v4: wined3d: Don't reject cross-device blits from CPU. https://gitlab.winehq.org/wine/wine/-/merge_requests/6300
From: Aida Jonikienė <aidas957(a)gmail.com> This is a partial revert of commit db6f95880c2631b64e48adc547d365e878ae45a6. GTA 2 is missing non-text textures after exiting from the game to the menu screen when cross-device blits are completely rejected. --- dlls/wined3d/texture.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 2efdaf91438..6c82b1b3601 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -3902,9 +3902,10 @@ HRESULT CDECL wined3d_device_context_blt(struct wined3d_device_context *context, return WINED3DERR_INVALIDCALL; } - if (dst_texture->resource.device != src_texture->resource.device) + if (dst_texture->resource.device != src_texture->resource.device + && !(src_texture->resource.access & WINED3D_RESOURCE_ACCESS_CPU)) { - FIXME("Rejecting cross-device blit.\n"); + FIXME("Rejecting cross-device blit from non-CPU source.\n"); return E_NOTIMPL; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6300
This will need tests, and blitting across devices is really not that simple. You have to deal with the different command streams, for one. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6300#note_81400
On Fri Sep 6 17:06:47 2024 +0000, Elizabeth Figura wrote:
This will need tests, and blitting across devices is really not that simple. You have to deal with the different command streams, for one. I'm already hitting `wined3d_from_cs()` asserts with the existing ddraw tests (so these may be good enough)
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6300#note_81401
On Fri Sep 6 17:13:23 2024 +0000, Aida Jonikienė wrote:
I'm already hitting `wined3d_from_cs()` asserts with the existing ddraw tests (so these may be good enough) Also I'm surprised that CPU->GPU cross-thread blits work in GTA 2 without hitting that assert Sorry, do you mean you're seeing assertions with unmodified Wine? Which tests?
(Also, please don't edit your messages to add content; that doesn't show up in activity feeds and it's hard to notice what was added). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6300#note_81417
Sorry, do you mean you're seeing assertions with unmodified Wine? Which tests?
I mean Wine with this MR applied (and a lot of ddraw tests trigger the assert including `ddraw1`) -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6300#note_81418
On Fri Sep 6 17:51:35 2024 +0000, Aida Jonikienė wrote:
Sorry, do you mean you're seeing assertions with unmodified Wine? Which tests? I mean Wine with this MR applied (and a lot of ddraw tests trigger the assert including `ddraw1`) Yes indeed then, that safeguard also alludes to why it's not that simple.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6300#note_81426
participants (2)
-
Aida Jonikienė -
Elizabeth Figura (@zfigura)