-
Notifications
You must be signed in to change notification settings - Fork 6
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
Unadvertised/unimplemented D3D8 device caps #164
Comments
I wrote some tests for the above as well, and thanks to @Blisto91 we also have some results from the fabled land of Windows.
|
On a side note, I have checked dgVoodoo2, and it seems to be advertising only D3DDEVCAPS_NPATCHES in order to expose support for ATI TruForm. We'll probably need to advertise it as well once we add support for N-Patches (see #148). |
Also looked at the limit values (thanks again @Blisto91 and @K0bin): AMD (Windows):
Nvidia (Windows):
WineD3D:
d8vk (with doitsujin#3461):
The only thing that stands out vs native & WineD3D is MaxVertexBlendMatrixIndex for SWVP, but I'm not sure if it's relevant in any way. Spec says:
|
Apparently the MaxVertexBlendMatrixIndex values do make a difference, as reporting this as native does fixes at least one crash in a d3d9 game (see doitsujin#3461). I'm not aware of any d3d8 games being affected so far, but who knows what monsters lurk beyond the world's edge. |
Updated the post above with more detailed device cap information (capturing parameters that may vary depending on context). MaxVertexBlendMatrixIndex will be fixed on the next rebase, otherwise I'm not sure if we need/want to adjust anything. I remember us scoring worse in the point sprite test in 3DMark2001 SE, and I see WineD3D (as well as native Nvidia) are advertising larger MaxPointSize values. Maybe that's worth checking out.
Nevermind, lights in d9vk are shader based and it's only handling a max of 8 at the moment regardless of SWVP/HWVP, which is most likely fine (also what WineD3D is doing, so meh). |
I think we've tapped out this pit and things are roughly where we want them to be in terms of reported caps. For posterity, there's still:
But both can be tracked separately and are already listed by d3d8 tests, so closing this issue. |
There are quite a few things we are not advertising at the moment as part of GetDeviceCaps() calls (some for good reason, but some only because d3d9 does not advertise them or include them).
Since some applications apparently depend on what we report here and may or may not enable some features based on it (e.g. character shadows in Unreal Tournament 2004), or rely on it for proper functionality (e.g. D3DPRASTERCAPS_ZBIAS and SW: Republic Commando), we should try to match native d3d8 as much as possible.
I'll keep track of everything I find here:
Caps2:
DevCaps:
All of the above are currently not advertised by d9vk and unimplemented, but are most likely needed for ATI TruForm/Curved Surfaces support. All these are also part of the d3d9 spec.
PrimitiveMiscCaps:
RasterCaps:
VertexProcessingCaps:
The text was updated successfully, but these errors were encountered: