Be aware that since Windows Vista, DirectSound is emulated in software (even if you have a hardware card, it's
processed in software and MMDevAPI/WASAPI is used for output). I believe Microsoft's preferred API of the day for game
audio is XAudio2, though it too is still mixed in software using MMDevAPI/WASAPI for the actual output. The majority of
game audio APIs available these days are on equal footing. Incidentally, if you have a Creative sound card, their
OpenAL driver allows access to hardware accelerated audio since it can talk directly with their cards.
Last time I did something with audio DirectSound was the default Interface, but that was approximately 6 years ago. If there is an updated
sound API, which is available by default on Win, I will utilize its abilities.
Similarly, there's little difference between OpenGL and Direct3D. In both cases, the commands are being sent to the
graphics card which doesn't care what API they were issued by.
Right now, I am not intending on replacing the rendering engine, that's too much of a time effort.
I can spare 1-2 hours at evening removing libraries like OpenAL, Qt, Boost over time. But porting rom OSG to DX12,
not going to happen any time soon.
If I would attempt it, I probably wouldn't use < DX12 versions. As a low level API, it is quite different from OpenGL and a lot
closer to Vulkan.
Also, I'd suggest using OpenCL instead of CUDA. CUDA is proprietary to nVidia and so may not be optimal for non-nVidia
devices, whereas OpenCL is a collaborative standard by the major graphics card vendors (including nVidia).
I tried OpenCL once, compared the wall time performance with CUDA with 4 different methods: Using Windows Performance Counter,
C++ chrono, C clock() and measuring system time differences. After doing some statistical clean up, CUDA did perform around 23%
(could have been 22% or 24%, not sure, was a year ago) better with my code. I am aware that it only works on NV cards but this can be a simple
conditional compile feature.
Correct me if I'm wrong, but if people wanted a better Windows development experience then why don't they come forward to do
so? Why should Linux and MacOS centric developers be bothered to work on something they care very little about?
I am coming forward to make things better by choosing to use the native API available on Windows. This is a great project
with impressive results thus far, but I firmly believe that it can do better on Windows.
There is nothing hostile about the build environment. You are just blaming openmw for your own inexperience with cross-platform
projects. But yeah, go ahead, show us your awesome windows haxor skillz.
I am inexperienced in developing across multiple operating systems (Aside from using scripting languages like Python which
run os independent). Still, I have seen quite some cross platform projects with significantly friendlier windows build environment.
I am here to make the Windows experience greater.