https://bugs.winehq.org/show_bug.cgi?id=44243
Bug ID: 44243 Summary: Spire and Serum paints very slowly Product: Wine Version: 3.0-rc3 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: bique.alexandre@gmail.com Distribution: ---
Hi,
The following programs take a lot of time to render the UI:
https://www.xferrecords.com/products/serum
A few versions before the UI was just black, and recently it started to paint correctly, so it must be that you have add new painting/rendering api recently.
Yet the painting performance is really slow, so it would be great if you guys could have a look and optimize it a bit? Maybe it is an easy thing to do?
Many thanks for your work guys!
To reproduce it you can install a plugin host like reaper: https://www.reaper.fm/ and then install the vst plugins and try them with reaper.
Regards, Alexandre
https://bugs.winehq.org/show_bug.cgi?id=44243
Alexandre Bique bique.alexandre@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bique.alexandre@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=44243
--- Comment #1 from Nikolay Sivov bunglehead@gmail.com --- Direct2D is a recent addition, and I know some vst plugins are definitely using it. Reason itself, at least some versions, is using double buffered API from uxtheme, that one was also implemented recently. So maybe you can do +d2d trace, and see if it's used at all.
https://bugs.winehq.org/show_bug.cgi?id=44243
--- Comment #2 from Alexandre Bique bique.alexandre@gmail.com --- How to do d2d trace?
https://bugs.winehq.org/show_bug.cgi?id=44243
--- Comment #3 from Alexandre Bique bique.alexandre@gmail.com --- WINEDEBUG=+d2d right?
https://bugs.winehq.org/show_bug.cgi?id=44243
--- Comment #4 from Nikolay Sivov bunglehead@gmail.com --- That's right, see https://wiki.winehq.org/FAQ#How_do_I_get_a_debug_trace.3F.
https://bugs.winehq.org/show_bug.cgi?id=44243
--- Comment #5 from Alexandre Bique bique.alexandre@gmail.com --- Also one more thing, the rendering has glitches with serum in the wave table, and I think some gradients are missing.
Yes it is full of d3d and d2d:
0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d2d:d2d_geometry_sink_AddArc iface 0x7fc975bddf58, arc 0x22d240 stub! 0033:fixme:d2d:d2d_d3d_render_target_DrawGeometry Ignoring stroke style 0x7fc973de48d0. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d2d:d2d_d3d_render_target_PushAxisAlignedClip Ignoring antialias_mode 0. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d2d:d2d_d3d_render_target_PushAxisAlignedClip Ignoring antialias_mode 0. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d2d:d2d_d3d_render_target_DrawGeometry Ignoring stroke style 0x7fc973de48d0. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d2d:d2d_d3d_render_target_DrawGeometry Ignoring stroke style 0x7fc973de48d0. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d2d:d2d_d3d_render_target_PushAxisAlignedClip Ignoring antialias_mode 0. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d11:d3d10_device_RSSetViewports Multiple viewports not implemented. 0033:fixme:d3d11:d3d10_device_RSSetScissorRects Multiple scissor rects not implemented. 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool). 0033:fixme:d3d:wined3d_buffer_create Ignoring access flags (pool).
https://bugs.winehq.org/show_bug.cgi?id=44243
Alexandre Bique bique.alexandre@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |d2d Hardware|x86 |x86-64
https://bugs.winehq.org/show_bug.cgi?id=44243
Alexandre Bique bique.alexandre@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Hardware|x86-64 |x86 Component|d2d |-unknown Distribution|--- |ArchLinux
https://bugs.winehq.org/show_bug.cgi?id=44243
Alexandre Bique bique.alexandre@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |d2d
https://bugs.winehq.org/show_bug.cgi?id=44243
Alexandre Bique bique.alexandre@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Hardware|x86 |x86-64
https://bugs.winehq.org/show_bug.cgi?id=44243
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Summary|Spire and Serum paints very |Spire and Serum VST plugins |slowly |using Direct2D render very | |slowly Keywords| |download URL| |https://web.archive.org/web | |/20201227172248/https://dis | |tribs.ams3.cdn.digitalocean | |spaces.com/Spire/Spire_1.5. | |5-5130/WIN/Reveal_Sound_Spi | |re_x64-1.5.5-5130.zip Status|UNCONFIRMED |NEEDINFO Ever confirmed|0 |1
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
adding stable download links via Internet Archive:
https://web.archive.org/save/https://distribs.ams3.cdn.digitaloceanspaces.co...
https://web.archive.org/web/20201227172414if_/https://dlcf.reaper.fm/6.x/rea...
===
Steps to register VST:
Main menu 'Options' -> 'Preferences' -> 'Plugins' -> 'VST'
Click 'Edit path list...' to add 'C:\Program Files\VSTPlugins'
--- snip --- C:\Program Files (x86)\Steinberg\VstPlugins;C:\Program Files\Steinberg\VstPlugins;C:\Program Files\Common Files\VST3;C:\Program Files\VSTPlugins --- snip ---
Click 'Re-scan...'
===
'Track' -> 'Insert virtual instrument on new track' -> select 'Spire ...'
It looks ok to me with regards to performance. There is a certain CPU load and some fixme spam in console but I don't perceive it as painfully slow.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/REAPER (x64)
$ wine ./reaper.exe ... 0180:fixme:d2d:d2d_device_context_PushAxisAlignedClip Ignoring antialias_mode 0. 0180:fixme:d2d:d2d_device_context_Flush iface 000000000A6741E0, tag1 0000000000000000, tag2 0000000000000000 stub! 0180:fixme:d2d:d2d_device_context_PushAxisAlignedClip Ignoring antialias_mode 0. ... --- snip ---
If you need to run from terminal instead of desktop link and the spam annoys you, pass 'WINEDEBUG=-all'.
I'll leave it to Alexandre (OP) to retest and make a final judgement.
From my point of view the case could be closed.
$ sha1sum reaper619_x64-install.exe 18c7f90a4322dcaa11beb6ac813b0aea986a5b35 reaper619_x64-install.exe
$ du -sh reaper619_x64-install.exe 14M reaper619_x64-install.exe
$ sha1sum Reveal_Sound_Spire_x64-1.5.5-5130.zip bb4c21b4d43ad0cc2f12880f501a74298b0a10da Reveal_Sound_Spire_x64-1.5.5-5130.zip
$ du -sh Reveal_Sound_Spire_x64-1.5.5-5130.zip 160M Reveal_Sound_Spire_x64-1.5.5-5130.zip
$ wine --version wine-6.0-rc4
Regards
https://bugs.winehq.org/show_bug.cgi?id=44243
--- Comment #7 from Alexandre Bique bique.alexandre@gmail.com --- I think it is good now! Good work guys.
https://bugs.winehq.org/show_bug.cgi?id=44243
Alexandre Bique bique.alexandre@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEEDINFO |RESOLVED
https://bugs.winehq.org/show_bug.cgi?id=44243
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 6.0-rc5.