On Tue Feb 20 18:30:25 2024 +0000, Zebediah Figura wrote:
Hmm, I changed `reflection->lpVtbl->GetDesc` to
`ID3D12ShaderReflection_GetDesc` here and it seems to build fine with GCC, MinGW and for the cross tests. Because we're using our own headers, I think.
Which scenario do you expect to fail? I guess we don't support
building with MSVC, do we? No idea about MSVC, but Microsoft's headers are missing the C macros. Wine's d3d11shader.h is written accordingly and is also missing those macros, although d3d12shader.h is generated from an IDL and has them. I copy-pasted most of these tests from Wine, and changed the 11 to 12, so the lpVtbl usage is retained from that. I guess as long as vkd3d is using its own headers I could replace that, though.
Ah, I see. Well, given that vkd3d is mostly concerned with D3D12 (so far, at least) and that it seems that the D3D12 headers have the macros, then I'd use them in our tests. However I won't object if you or others prefer to retain the explicit vtable access.