The buffer size was previously limited to 20 in:
8d052561724f9c8d9e7770964bfaebdd01e98e60
Testing shows that it is somewhere around 1024 on Windows, and using a smaller buffer causes some input data to be lost with high polling rate mouses. It can be spotted in Wolfenstein II: New Colossus menus.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/dinput/device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c index d18292192a5..bcb893e6324 100644 --- a/dlls/dinput/device.c +++ b/dlls/dinput/device.c @@ -1400,7 +1400,7 @@ HRESULT WINAPI IDirectInputDevice2WImpl_SetProperty( EnterCriticalSection(&This->crit);
This->buffersize = pd->dwData; - This->queue_len = min(This->buffersize, 20); + This->queue_len = min(This->buffersize, 1024); HeapFree(GetProcessHeap(), 0, This->data_queue);
This->data_queue = !This->queue_len ? NULL : HeapAlloc(GetProcessHeap(), 0,
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=65205
Your paranoid android.
=== debian10 (32 bit Chinese:China report) ===
dinput: mouse.c:152: Test failed: Failed: 00000001 mouse.c:158: Test failed: Failed: 80070005 mouse.c:161: Test failed: Failed: 00000001 mouse.c:164: Test failed: Failed: 80070005 mouse.c:178: Test failed: GetDeviceData() failed: 00000000 cnt:0