Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[d3d8] Wine device tests fixes (Part 4) #4479

Merged
merged 8 commits into from
Nov 23, 2024

Conversation

WinterSnowfall
Copy link
Contributor

@WinterSnowfall WinterSnowfall commented Nov 19, 2024

I'm aiming to fix a few more d3d8/d3d9 Wine devices tests.

So far:

  • readdressed a relaxation of validations done to prevent crashing in Black Desert in a way that now passes the affected Wine device tests
  • fixed invalid storage of VS/PS functions and declarations as well as other d3d8 VS/PS behavior
  • added DS dimensions validation on SetRenderTarget (d3d8 specific)
  • added PS/VS version validation on shader creation (d3d8)
  • partially implemented ValidateVertexShader/ValidatePixelShader, with version validations (d3d8)
  • fixed d3d9 multiple image unlock behavior
  • validated RT parent device during SetRenderTarget
  • added various NormalizeTextureProperties validations

@WinterSnowfall WinterSnowfall force-pushed the d3d8-winetest5 branch 3 times, most recently from 3151535 to 12070ab Compare November 19, 2024 19:00
@WinterSnowfall
Copy link
Contributor Author

WinterSnowfall commented Nov 19, 2024

Obligatory indication of progress:

Current master:
-- D3D8: 0020:device: 50761 tests executed (34 marked as todo, 0 as flaky, 696 failures), 1 skipped.
-- D3D9: 0020:device: 154696 tests executed (78 marked as todo, 0 as flaky, 1695 failures), 6 skipped.

This PR:
-- D3D8: 0020:device: 50667 tests executed (31 marked as todo, 0 as flaky, 593 failures), 1 skipped.
-- D3D9: 0020:device: 154593 tests executed (73 marked as todo, 0 as flaky, 1584 failures), 6 skipped.

@WinterSnowfall WinterSnowfall force-pushed the d3d8-winetest5 branch 2 times, most recently from 6db5239 to a80c271 Compare November 20, 2024 20:53
@WinterSnowfall WinterSnowfall marked this pull request as ready for review November 23, 2024 10:11
@WinterSnowfall
Copy link
Contributor Author

Tested the PR with the full complement of ~300 d3d8/d3d9 games I have in my Wine prefix and there are no regressions.

Could also potentially positively affect other d3d9 games that crash inexplicably, since the extra validations address some scenarios in which we get backend failures on texture creation due to invalid usage, and they're wrongly interpreted as D3DERR_OUTOFVIDEOMEMORY type of situations by the frontend.

Copy link
Collaborator

@K0bin K0bin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a little question.

src/d3d8/d3d8_device.cpp Show resolved Hide resolved
src/d3d8/d3d8_device.cpp Show resolved Hide resolved
src/d3d9/d3d9_device.cpp Show resolved Hide resolved
src/d3d9/d3d9_device.cpp Show resolved Hide resolved
@K0bin K0bin merged commit 9e1bc1d into doitsujin:master Nov 23, 2024
4 checks passed
@WinterSnowfall WinterSnowfall deleted the d3d8-winetest5 branch November 23, 2024 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants