On Wed Sep 11 10:11:56 2024 +0000, Aida Jonikienė wrote:
Why does GTA 2 use an older CS thread inside src_texture in my real-world test case? Is there some parent context/device thing I'm not aware of? The ddraw tests have the opposite behavior (and obviously trigger the CS thread assert) so I'm checking for it and rejecting blits there (which does allow ddraw tests to work well enough)
That's not how thread IDs work.
Each device has an associated command stream. Each texture belongs to exactly one device. If you try to use a texture with a device it wasn't created with, things will break. wined3d isn't set up to deal with that situation right now, for multiple reasons.
One such reason is that synchronizing across multiple command streams is not trivial. Another is that the backing GPU resources can't be used across different devices. There may be others I'm not thinking of.
A first step to solving this bug would be to write a test that replicates what the application is doing, and show that the cross-device blit in question is supposed to succeed. We have tests that show that they fail in general, so either there must be something different about this one, or the actual bug is something else.
Either way, I'd request to stop pushing guesses to a draft merge request; that wastes CI resources and attention.