http://bugs.winehq.org/show_bug.cgi?id=16329
Summary: Make test fails in ds3d.c Product: Wine Version: CVS/GIT Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-dsound AssignedTo: wine-bugs@winehq.org ReportedBy: kevinlyles@gmail.com
Created an attachment (id=17632) --> (http://bugs.winehq.org/attachment.cgi?id=17632) Relevant portion of the test output
Make test fails in dlls/dsound/tests/ds3d.c with the following error message:
ds3d.c:445: Test failed: buffer size changed after SetFormat() - previous size was 65536, current size is 22052
Tested with git commit 934aa49.
I am willing to help track this bug down and fix it, but lack experience with wine.
http://bugs.winehq.org/show_bug.cgi?id=16329
Kevin Lyles kevinlyles@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #17632|application/octet-stream |text/plain mime type| |
http://bugs.winehq.org/show_bug.cgi?id=16329
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |1.1.9
http://bugs.winehq.org/show_bug.cgi?id=16329
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |testcase
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #1 from Austin English austinenglish@gmail.com 2009-06-08 11:53:32 --- Is this still an issue in current (1.1.23 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #2 from Kevin Lyles kevinlyles@gmail.com 2009-06-08 12:51:41 --- It is still an issue in git commit de94538. Seems to be the exact same error and message.
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #3 from Austin English austinenglish@gmail.com 2010-03-11 16:21:17 --- What OS is this? Are you using Pulseaudio?
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #4 from Kevin Lyles kevinlyles@gmail.com 2010-03-12 20:45:05 --- This was in Gentoo Linux, with Pulseaudio installed.
I attempted to test this again on a newer version, but I have a different error (related to ipv6) occurring in the tests that is preventing me from determining if the problem still exists.
http://bugs.winehq.org/show_bug.cgi?id=16329
Raymond superquad.vortex2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |superquad.vortex2@gmail.com
--- Comment #5 from Raymond superquad.vortex2@gmail.com 2010-03-13 20:28:56 --- This is either a bug of winealsa.drv or the test ds3d
the test ds3d expect the same hardware buffer size when using different rate
most hardware mixing sound cards have same hardware buffer size.
however winealsa.drv use snd_pcm_hw_params_set_period_time() , this will assign different buffer size when you use different rate
http://bugs.winehq.org/show_bug.cgi?id=16329
Austin Lund austin.lund@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austin.lund@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #6 from Austin Lund austin.lund@gmail.com 2010-07-25 20:37:08 --- The test passes with the OSS driver. So I assume this is a bug in the ALSA driver.
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #7 from Raymond superquad.vortex2@gmail.com 2010-07-25 21:14:19 --- (In reply to comment #6)
The test passes with the OSS driver. So I assume this is a bug in the ALSA driver.
The test can run without these error in windows too
The mean that the bug in is winealsa.drv since waveout.c wavein.c use snd_pcm_hw_params_set_buffer_time() , alsa allocate different buffer size when you use different rate
wine have to use snd_pcm_hw_params_set_buffer_size_near() if it want alsa to allocate same buffer size when using different rate
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #8 from Raymond superquad.vortex2@gmail.com 2010-07-25 21:15:52 --- (In reply to comment #7)
(In reply to comment #6)
The test passes with the OSS driver. So I assume this is a bug in the ALSA driver.
The test can run without these error in windows too
The mean that the bug in is winealsa.drv since waveout.c wavein.c use snd_pcm_hw_params_set_buffer_time() , alsa allocate different buffer size when you use different rate
wine have to use snd_pcm_hw_params_set_buffer_size_near() if it want alsa to allocate same buffer size when using different rate
it should be dsoutput.c and dscapture.c should use snd_pcm_hw_params_set_buffet_size_near() instead of snd_pcm_hw_params_set_buffer_time_near()
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #9 from Raymond superquad.vortex2@gmail.com 2010-07-25 21:42:59 --- (In reply to comment #6)
The test passes with the OSS driver. So I assume this is a bug in the ALSA driver.
The point is whether those USB audio device can pass the ds3d test in windows or using oss driver
it is not easy to find a buffer size which fit all sound cards , some of the sound card may just use a buffer size which is near 0.5 second as the current implementation specify for a buffer time of 0.5 seconds.
as dsound has a default sampling rate ,
wine may use snd_pcm_hw_params_set_buffer_size_near(pcm , hw_params ,0.5 seconds x default sampling rate ) .
but you still need to set period or set_period_size which still depend on sound card
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #10 from Austin Lund austin.lund@gmail.com 2010-08-17 23:59:14 --- Does this post have anything to do with it?
http://www.winehq.org/pipermail/wine-devel/2006-September/051025.html
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #11 from Raymond superquad.vortex2@gmail.com 2010-08-18 01:13:23 --- (In reply to comment #10)
Does this post have anything to do with it?
http://www.winehq.org/pipermail/wine-devel/2006-September/051025.html
The point is the maximum size of the buffer of the alsa driver of most PCI sound cards is about 64K bytes and snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS) i.e. buffer size is a multiple of period size
The proposed patch does not work and I guess his sound card does not support 44100Hz since those dsound wav are 22050Hz in early day
bufffer size = 48000 , i.e. 48000 x 2 x 2 = 192,000bytes
- unsigned int buffer_time = 500000; - unsigned int period_time = 10000; - snd_pcm_uframes_t buffer_size; - snd_pcm_uframes_t period_size; + snd_pcm_uframes_t buffer_size = 48000; + snd_pcm_uframes_t period_size = 1024; int flags; int err=0; int dir=0; @@ -2561,15 +2559,16 @@ #define EXIT_ON_ERROR(f,e,txt) do \ wwo->format.Format.nChannels, getFormat(wwo->format.Format.wFormatTag));
- dir=0; - EXIT_ON_ERROR( snd_pcm_hw_params_set_buffer_time_near(pcm, hw_params, &buffer_time, &dir), MMSYSERR_INVALPARAM, "unable to set buffer time"); - dir=0; - EXIT_ON_ERROR( snd_pcm_hw_params_set_period_time_near(pcm, hw_params, &period_time, &dir), MMSYSERR_INVALPARAM, "unable to set period time"); + buffer_size = buffer_size / ( snd_pcm_format_physical_width(format) * wwo->format.Format.nChannels ); + snd_pcm_uframes_t buffer_size_old = buffer_size; + EXIT_ON_ERROR( snd_pcm_hw_params_set_buffer_size_near(pcm, hw_params, &buffer_size), MMSYSERR_INVALPARAM, "unable to set buffer size"); + dir=0; + EXIT_ON_ERROR( snd_pcm_hw_params_set_period_size_near(pcm, hw_params, &period_size, &dir), MMSYSERR_INVALPARAM, "unable to set period time"); + if(buffer_size != buffer_size_old) ERR("buffer_size:%i buffer_size_old:%i\n", (int)buffer_size, (int)buffer_size_old);
http://bugs.winehq.org/show_bug.cgi?id=16329
butraxz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |butraxz@gmail.com
--- Comment #12 from butraxz@gmail.com 2012-05-20 10:52:37 CDT --- This bug has not been updated for two years. Is this still an issue in current (1.5.4 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #13 from Kevin Lyles kevinlyles@gmail.com 2012-05-22 18:16:51 CDT --- (In reply to comment #12)
This bug has not been updated for two years. Is this still an issue in current (1.5.4 or newer) wine?
I get a different error now (see below). Is there a way to skip to the next test to check for this one?
Unhandled exception: denormal float operand in 32-bit code (0x7b23ffcf). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7b23ffcf ESP:0032e570 EBP:7c96a180 EFLAGS:00010a87( R- --O I S - -P-C) EAX:00000005 EBX:00000002 ECX:00000002 EDX:00000537 ESI:7c969660 EDI:7c96992c Stack dump: 0x0032e570: 7cbd8eb8 7cbd8eb8 7cb0bb98 7cbc7a48 0x0032e580: 00000005 00000005 00000000 00000000 0x0032e590: 7c969660 00000000 7b238b3a 7c969660 0x0032e5a0: 00000000 00000000 7b25e268 00000000 0x0032e5b0: 01010101 7b229a7d 7c969660 7cb0bb98 0x0032e5c0: 7cb0bb98 7cb015b4 7b23809f 7c969660 Backtrace: =>0 0x7b23ffcf in fglrx_dri.so (+0x1877fcf) (0x7c96a180) 1 0x7b238b3a in fglrx_dri.so (+0x1870b39) (0x00000000) 2 0x7b23809f in fglrx_dri.so (+0x187009e) (0x7cb0bb98) 3 0x7b234458 in fglrx_dri.so (+0x186c457) (0x7c969660) 4 0x7b22c926 in fglrx_dri.so (+0x1864925) (0x7cb0bb98) 5 0x7b229c2e in fglrx_dri.so (+0x1861c2d) (0x7cb025ac) 6 0x7b114ded in fglrx_dri.so (+0x174cdec) (0x7cb025ac) 7 0x7b1144e4 in fglrx_dri.so (+0x174c4e3) (0x0032e73c) 8 0x7b119420 in fglrx_dri.so (+0x175141f) (0x7c8bd1f0) 9 0x7b498a92 in fglrx_dri.so (+0x1ad0a91) (0x7cbe9e78) 10 0x7acff46b in fglrx_dri.so (+0x133746a) (0x7cbe9e78) 11 0x00000000 (0x7bdf2888) 12 0x7acff0c0 in fglrx_dri.so (+0x13370bf) (0x7acfee84) 13 0xb78b0c24 (0x7c8b5657) 0x7b23ffcf: fcom %st(1),%st Modules: Module Address Debug info Name (62 modules) ELF 799c8000-7beff000 Dwarf fglrx_dri.so ELF 7bf00000-7bf04000 Deferred <wine-loader> ELF 7dfd8000-7e025000 Deferred libatiadlxx.so ELF 7e058000-7e060000 Deferred libatiuki.so.1 ELF 7e060000-7e07b000 Deferred libgcc_s.so.1 ELF 7e080000-7e16d000 Deferred libgl.so.1 ELF 7e1b8000-7e2f2000 Deferred wined3d<elf> -PE 7e1d0000-7e2f2000 \ wined3d ELF 7e2f8000-7e329000 Deferred d3d8<elf> -PE 7e300000-7e329000 \ d3d8 ELF 7e330000-7e336000 Deferred libxfixes.so.3 ELF 7e338000-7e342000 Deferred libxcursor.so.1 ELF 7e348000-7e351000 Deferred librt.so.1 ELF 7e3e8000-7e412000 Deferred libexpat.so.1 ELF 7e418000-7e447000 Deferred libfontconfig.so.1 ELF 7e448000-7e456000 Deferred libxi.so.6 ELF 7e458000-7e45c000 Deferred libxcomposite.so.1 ELF 7e460000-7e468000 Deferred libxrandr.so.2 ELF 7e468000-7e472000 Deferred libxrender.so.1 ELF 7e478000-7e47e000 Deferred libxxf86vm.so.1 ELF 7e480000-7e484000 Deferred libxinerama.so.1 ELF 7e488000-7e4aa000 Deferred imm32<elf> -PE 7e490000-7e4aa000 \ imm32 ELF 7e4b0000-7e4b6000 Deferred libxdmcp.so.6 ELF 7e4b8000-7e4bc000 Deferred libxau.so.6 ELF 7e4c0000-7e4da000 Deferred libxcb.so.1 ELF 7e4e0000-7e4e5000 Deferred libuuid.so.1 ELF 7e4e8000-7e605000 Deferred libx11.so.6 ELF 7e608000-7e620000 Deferred libice.so.6 ELF 7e620000-7e6aa000 Deferred winex11<elf> -PE 7e630000-7e6aa000 \ winex11 ELF 7e6b0000-7e6c1000 Deferred libbz2.so.1 ELF 7e6c8000-7e6dd000 Deferred libz.so.1 ELF 7e6e0000-7e76a000 Deferred libfreetype.so.6 ELF 7e770000-7e7b4000 Deferred libncurses.so.5 ELF 7e7e8000-7e84b000 Deferred advapi32<elf> -PE 7e7f0000-7e84b000 \ advapi32 ELF 7e850000-7e910000 Deferred gdi32<elf> -PE 7e860000-7e910000 \ gdi32 ELF 7e910000-7ea51000 Deferred user32<elf> -PE 7e920000-7ea51000 \ user32 ELF 7ea58000-7eaa4000 Deferred d3d8_test<elf> -PE 7ea60000-7eaa4000 \ d3d8_test ELF 7ec70000-7eea1000 Deferred kernel32<elf> -PE 7ec80000-7eea1000 \ kernel32 ELF 7eea8000-7eeb4000 Deferred libnss_files.so.2 ELF 7eeb8000-7eec3000 Deferred libnss_nis.so.2 ELF 7eec8000-7eede000 Deferred libnsl.so.1 ELF 7eee0000-7ef05000 Deferred libm.so.6 ELF 7ef08000-7ef18000 Deferred libxext.so.6 ELF 7ef18000-7ef31000 Deferred version<elf> -PE 7ef20000-7ef31000 \ version ELF 7ef38000-7effb000 Deferred ntdll<elf> -PE 7ef50000-7effb000 \ ntdll ELF f7420000-f7582000 Deferred libc.so.6 ELF f7588000-f75a1000 Deferred libpthread.so.0 ELF f75a8000-f75b0000 Deferred libsm.so.6 ELF f75d0000-f75d8000 Deferred libnss_compat.so.2 ELF f75d8000-f771a000 Dwarf libwine.so.1 ELF f7720000-f7740000 Deferred ld-linux.so.2 ELF f7740000-f7744000 Deferred libdl.so.2 ELF f7746000-f7747000 Deferred [vdso].so Threads: process tid prio (all id:s are in hex) 0000000c winemenubuilder.exe 0000000d 0 0000000e services.exe 0000003c 0 0000001e 0 00000015 0 00000010 0 0000000f 0 00000012 winedevice.exe 00000020 0 0000001a 0 00000014 0 00000013 0 0000001b plugplay.exe 00000021 0 0000001d 0 0000001c 0 00000024 explorer.exe 00000025 0 0000002a winedbg.exe 0000002b 0 00000041 (D) Z:\home\me\NOBACKUP-wine\dlls\d3d8\tests\d3d8_test.exe 00000040 0 <== System information: Wine build: wine-1.5.4-266-ge555139 Platform: i386 Host system: Linux Host version: 3.2.12-desktop-vanilla
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #14 from Austin English austinenglish@gmail.com 2012-05-22 18:27:24 CDT --- (In reply to comment #13)
(In reply to comment #12)
This bug has not been updated for two years. Is this still an issue in current (1.5.4 or newer) wine?
I get a different error now (see below). Is there a way to skip to the next test to check for this one?
A) please attach long output. B) use 'touch ds3d.ok' in the test directory to skip it.
http://bugs.winehq.org/show_bug.cgi?id=16329
--- Comment #15 from Austin English austinenglish@gmail.com 2012-05-22 18:28:25 CDT --- Sorry, misread. Do: $ cd $HOME/NOBACKUP-wine/dlls/dsound/tests $ make ds3d.ok
http://bugs.winehq.org/show_bug.cgi?id=16329
Kevin Lyles kevinlyles@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #16 from Kevin Lyles kevinlyles@gmail.com 2012-05-22 19:04:17 CDT --- (In reply to comment #15)
Sorry, misread. Do: $ cd $HOME/NOBACKUP-wine/dlls/dsound/tests $ make ds3d.ok
That one works now. I'll look into the other errors I'm getting and file bugs if appropriate.
Thanks!
http://bugs.winehq.org/show_bug.cgi?id=16329
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #17 from Alexandre Julliard julliard@winehq.org 2012-05-25 13:41:38 CDT --- Closing bugs fixed in 1.5.5.