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.
From: Aida Jonikienė aidas957@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; }
This will need tests, and blitting across devices is really not that simple. You have to deal with the different command streams, for one.
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)
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).
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`)
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.