Topic: Win10/HDSP9632. WDM performing better than ASIO?

Hello,

I have a new build based on a Ryzen 5800x, a Biostar B550GTA (has a legacy PCI slot) and my good'old RME Hammerfall HDSP9632.

I use Reaper 6.34 and I'm doing experiments at 96kHz.

I take and empty project and I load a demanding VST synth to stress one core. Just for naming it but it might be not that important here; the synth is U-he's Bazille on the "Digital Dreams" factory patch with multi core disabled and high quality enabled.

What I get when playing the using ASIO is the next (latencies reported by the DAW (Reaper)):

-ASIO, 256 samples, 3.1/4.3ms latency. It crackles and is unplayable.
-ASIO, 512 samples, 5.8/6.9ms latency. It still crackles and is unplayable.
-ASIO, 1024 samples, 11/12ms latency. Still crackles but not obnoxious.
-ASIO, 2048 samples, 21/22ms latency. Fully playable.

Then with WDM:

-WDM, 2x256 samples, 2.6/5.3ms latency. Fully playable, no crackle.

If I take it to the extreme and use a lot of polyphony, with ASIO I lose completely the audio stream. With WDM it behaves as if it were dropping samples (as when one uses a bitcrusher effect).

Is WDM outperforming ASIO normal at what it seems to be equivalent latencies? Am I missing something, (e.g. that WDM is actually having much more unreporeted latency)?

Re: Win10/HDSP9632. WDM performing better than ASIO?

Neither WDM nor ASIO actively "perform" anything here, the card does not render VST or the like.
Latency is a lot higher with WDM, so it's not really comparable.
The system does seem to have some general performance issues. This could help track them down:
https://forum.rme-audio.de/viewtopic.php?id=1704

Regards
Daniel Fuchs
RME

Re: Win10/HDSP9632. WDM performing better than ASIO?

Thanks for answering!

I'm aware that a kernel mode drivers don't run user-space software.

My question here is that on my system, if I trust Reaper's reported latencies on screen, which might be estimates and hence why I remark it on the initial post, it seems as if with the given (torture) CPU load the WDM driver was performing better than the ASIO one. This doesn't seem right. Hence me opening this thread.

I ran the latencymon tool while running the Reaper test as ASIO. All seems perfectly nornal.

_________________________________________________________________________________________________________
CONCLUSION
_________________________________________________________________________________________________________
Your system appears to be suitable for handling real-time audio and other tasks without dropouts.
LatencyMon has been analyzing your system for  0:02:10  (h:mm:ss) on all processors.


_________________________________________________________________________________________________________
SYSTEM INFORMATION
_________________________________________________________________________________________________________
Computer name:                                        DESKTOP-UPVFMC4
OS version:                                           Windows 10, 10.0, version 2009, build: 19043 (x64)
Hardware:                                             B550GTA, BIOSTAR Group
CPU:                                                  AuthenticAMD AMD Ryzen 7 5800X 8-Core Processor
Logical processors:                                   16
Processor groups:                                     1
RAM:                                                  16331 MB total


_________________________________________________________________________________________________________
CPU SPEED
_________________________________________________________________________________________________________
Reported CPU speed:                                   3793 MHz

Note: reported execution times may be calculated based on a fixed reported CPU speed. Disable variable speed settings like Intel Speed Step and AMD Cool N Quiet in the BIOS setup for more accurate results.


_________________________________________________________________________________________________________
MEASURED INTERRUPT TO USER PROCESS LATENCIES
_________________________________________________________________________________________________________
The interrupt to process latency reflects the measured interval that a usermode process needed to respond to a hardware request from the moment the interrupt service routine started execution. This includes the scheduling and execution of a DPC routine, the signaling of an event and the waking up of a usermode thread from an idle wait state in response to that event.

Highest measured interrupt to process latency (µs):   190,70
Average measured interrupt to process latency (µs):   18,909729

Highest measured interrupt to DPC latency (µs):       186,40
Average measured interrupt to DPC latency (µs):       1,244985


_________________________________________________________________________________________________________
REPORTED ISRs
_________________________________________________________________________________________________________
Interrupt service routines are routines installed by the OS and device drivers that execute in response to a hardware interrupt signal.

Highest ISR routine execution time (µs):              121,854469
Driver with highest ISR routine execution time:       dxgkrnl.sys - DirectX Graphics Kernel, Microsoft Corporation

Highest reported total ISR routine time (%):          0,021476
Driver with highest ISR total time:                   dxgkrnl.sys - DirectX Graphics Kernel, Microsoft Corporation

Total time spent in ISRs (%)                          0,040301

ISR count (execution time <250 µs):                   112287
ISR count (execution time 250-500 µs):                0
ISR count (execution time 500-1000 µs):               0
ISR count (execution time 1000-2000 µs):              0
ISR count (execution time 2000-4000 µs):              0
ISR count (execution time >=4000 µs):                 0


_________________________________________________________________________________________________________
REPORTED DPCs
_________________________________________________________________________________________________________
DPC routines are part of the interrupt servicing dispatch mechanism and disable the possibility for a process to utilize the CPU while it is interrupted until the DPC has finished execution.

Highest DPC routine execution time (µs):              213,483259
Driver with highest DPC routine execution time:       nvlddmkm.sys - NVIDIA Windows Kernel Mode Driver, Version 456.71 , NVIDIA Corporation

Highest reported total DPC routine time (%):          0,021476
Driver with highest DPC total execution time:         rspLLL64.sys - Resplendence Latency Monitoring and Auxiliary Kernel Library, Resplendence Software Projects Sp.

Total time spent in DPCs (%)                          0,045129

DPC count (execution time <250 µs):                   383040
DPC count (execution time 250-500 µs):                0
DPC count (execution time 500-10000 µs):              0
DPC count (execution time 1000-2000 µs):              0
DPC count (execution time 2000-4000 µs):              0
DPC count (execution time >=4000 µs):                 0


_________________________________________________________________________________________________________
REPORTED HARD PAGEFAULTS
_________________________________________________________________________________________________________
Hard pagefaults are events that get triggered by making use of virtual memory that is not resident in RAM but backed by a memory mapped file on disk. The process of resolving the hard pagefault requires reading in the memory from disk while the process is interrupted and blocked from execution.

NOTE: some processes were hit by hard pagefaults. If these were programs producing audio, they are likely to interrupt the audio stream resulting in dropouts, clicks and pops. Check the Processes tab to see which programs were hit.

Process with highest pagefault count:                 svchost.exe

Total number of hard pagefaults                       20
Hard pagefault count of hardest hit process:          15
Number of processes hit:                              3


_________________________________________________________________________________________________________
PER CPU DATA
_________________________________________________________________________________________________________
CPU 0 Interrupt cycle time (s):                       3,133579
CPU 0 ISR highest execution time (µs):                121,854469
CPU 0 ISR total execution time (s):                   0,838967
CPU 0 ISR count:                                      112287
CPU 0 DPC highest execution time (µs):                213,483259
CPU 0 DPC total execution time (s):                   0,899860
CPU 0 DPC count:                                      355527
_________________________________________________________________________________________________________
CPU 1 Interrupt cycle time (s):                       0,764484
CPU 1 ISR highest execution time (µs):                0,0
CPU 1 ISR total execution time (s):                   0,0
CPU 1 ISR count:                                      0
CPU 1 DPC highest execution time (µs):                10,038492
CPU 1 DPC total execution time (s):                   0,000012
CPU 1 DPC count:                                      2
_________________________________________________________________________________________________________
CPU 2 Interrupt cycle time (s):                       1,596873
CPU 2 ISR highest execution time (µs):                0,0
CPU 2 ISR total execution time (s):                   0,0
CPU 2 ISR count:                                      0
CPU 2 DPC highest execution time (µs):                12,903770
CPU 2 DPC total execution time (s):                   0,001886
CPU 2 DPC count:                                      687
_________________________________________________________________________________________________________
CPU 3 Interrupt cycle time (s):                       0,993518
CPU 3 ISR highest execution time (µs):                0,0
CPU 3 ISR total execution time (s):                   0,0
CPU 3 ISR count:                                      0
CPU 3 DPC highest execution time (µs):                15,187978
CPU 3 DPC total execution time (s):                   0,000519
CPU 3 DPC count:                                      212
_________________________________________________________________________________________________________
<rest of cores remove, mostly idling>

Then on the Drivers tab

Driver: hdsp_64.sys
Desc: Hammerfall DSP
n ISR: 0
n DPC: 39019
t highest (ms): 0,065180
t total (ms): 21,572890
Image base: 0xFFFFF801'48770000
Size: 135168
Company: RME
Product: Hammerfall DSP
Version: 4.3.8.0
Path: C:\Windows\system32\drivers\hdsp_64.sys