-
Notifications
You must be signed in to change notification settings - Fork 50
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
Bring native hardware OpenAL support for DSOAL #99
Comments
I'm not sure what you are trying to suggest, using ct_oal for some supposed advantage? |
I guess yes, the same way as Alchemy does. It definately has its benefits comparing to software DirectSound/OpenAL |
I'm not sure you know what you are talking about if, among other things, you are bunching together software directsound and software openal. |
The main problem is that Creative's hardware drivers don't feature much beyond standard OpenAL (the biggest extensions they have is EAX and EFX). And standard OpenAL has some shortcomings that makes wrapping DirectSound difficult; namely, updating buffer samples during playback. The app has to flag which dsound buffers won't dynamically update its buffer data (which the app can't even specify prior to DS8), and without being told, the assumption is that it can update at any time. The hardware drivers don't support There are also issues with multiple contexts that most implementations don't support, and no safe, efficient way to deal with multiple asynchronous devices. I'm not sure how much, or even if, ALchemy tries to deal with these issues, or how many game-specific hacks or internal/non-public interface calls it may use to work around issues and implement the more troublesome DSound features. |
FWIW these were your average per-game options, I don't remember then if they couldn't have something more customized
|
I am that hardcore gamer so I know what I am saying. The latency is noticably decreased using Alchemy in CS1.6 and CS GO. |
@mirh Apparently there's a few more if using the Native OpenAL Renderer (ct_oal.dll driver):
And there's an old DLL hex edit to enable verbose logging, though I'm not sure if it's different than the options above and I forgot where I found it (maybe Vogons). |
Yes, I know, I was there too. But the other options have nothing to do with functinoality.
Compared to instead sticking dsoal? |
I guess wrapping sound to a hardware renderer is a non-standard way the most current gamers do not actually pay attention because it is a super hardcore trick. |
Even if they did pay attention, most g*mers don't even own a hardware OpenAL-capable sound card lol
Even then, apparently Escape from Tarkov had horrendous performance even with Steam Audio (which they even eventually replaced with Oculus Audio🤢) |
I don't know what other gamers have I just think adding support for native OpenAL for DSOAL would be a great feature. |
Everybody else in here is probably half of the "old games audio" scene you might even find out, you don't need explanation of importance. |
No I meant wrapping WASAPI to OpenAL. Actually making mmdevapi.dll wrapper |
This doesn't make any sense whatsoever. |
It makes. It offloads CPU because Creative made very good DSP processor but Microsoft abandoned hardware offloading for unknown reason. |
Microsoft abandoned in-kernel audio processing for very obvious and sensible reasons |
So then why do we need network card offloading feature if we have powerful CPUs nowadays? |
You can still get lower latency with OpenAL Soft(ware) using the WASAPI exclusive fork (works with apps/games using OpenAL and also DirectSound via DSOAL). I doubt DSOAL interfacing with OpenAL hardware would result in significantly lower latency, but ASIO probably would, if it's ever implemented. |
There isn't an "mmdevapi.dll" as such. An app makes a call to COM (CoCreateInstance) to create the primary It makes no sense to wrap mmdevapi/WASAPI over OpenAL, since the two have vastly different jobs. Even if you could override the COM query for the |
Thanks for explaining WASAPI internal mechanism btw ;-) |
It seems a bit hasty (if not preposterous) to bring up ASIO and wasapi exclusive when even just the pre-existing knobs in alsoftrc weren't used. |
Yeah, I know ASIO is still a bit far-fetched but ijs WASAPI exclusive is out there to try in case it can reach lower latency with better stability since high CPU load may cause skips when periods is set too low.
but exclusive mode doesn't, although it ends up using double / quadruple the value specified in the ini, not sure if that's a bug or that's just how it works 🤔
|
Yes, of course it resets. |
As I noticed native OpenAL with supported hardware significantly reduces latency in titles that are using DirectSound. It was possible to improve latency using Creative Alchemy in many DSound games but unfortunately Alchemy does not include 64-bit binaries.
It could be very good if DSOAL will acquire native OpenAL support.
The text was updated successfully, but these errors were encountered: