View Issue Details

IDProjectCategoryView StatusLast Update
0001003OpenMPT[All Projects] User Interfacepublic2017-08-16 16:15
ReporterareckxAssigned To 
PrioritynormalSeverityminorReproducibilityalways
Status confirmedResolutionopen 
Platformx86OSWindowsOS VersionXP
Product VersionOpenMPT 1.26.12.00 / libopenmpt 0.2-beta26 (upgrade first) 
Target VersionOpenMPT 1.?? (long term goals)Fixed in Version 
Summary0001003: Pattern View :: Smoothscrolling enabled :: displays artifacts
Description

When clicking in and out of pattern view while smoothscrolling is enabled, the pattern window will appear as artifacts of previous window.

As a temporary fix, maximizing/floating either the main program window or the pattern window will restore the window.

Minimizing the pattern window seems to not work, but maximizing or floating the window does.

Disabling smoothscrolling resolves the issue.

Steps To Reproduce
  1. Enable smooth scrolling.

  2. Enter pattern window

  3. Click to any other tab

  4. Click back to pattern window. It happens seemingly at random. Perhaps more likely when currently playing a module.
Additional Information

I love this program. Thank you so much.

Running 32-bit Windows XP SP3 in virtualbox on 64-bit Archlinux 4.12.4-1-ARCH

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Relationships

related to 0000522 resolvedmanx Playback Cursor always jitters when you run it under Wine 1.7 

Activities

manx

manx

2017-08-10 07:49

administrator   ~0003132

Last edited: 2017-08-10 10:06

View 3 revisions

This may be related to the same root cause as an older issue: 0000522 / r4043 .

Edited: Originally referenced the wrong issue.

manx

manx

2017-08-10 08:51

administrator   ~0003133

Could you please test with r8736 (or later) and set the advanced setting [Pattern Editor]AlwaysDrawWholePatternOnScrollSlow to 1? Note that this will slow down pattern display considerably. Are you still able to reproduce the display artefacts that way?

You can get current test builds at https://builds.openmpt.org/ .

areckx

areckx

2017-08-10 09:16

reporter   ~0003134

Still setting up my compile environment, and auto build is still on r8733 so I will have to get back to you on that.

manx

manx

2017-08-10 10:04

administrator   ~0003135

Automated builds will always turn up eventually after some time. They are available now.

Saga Musix

Saga Musix

2017-08-10 10:31

administrator   ~0003136

Hm, sounds like an overzealous optimization in some graphics driver trying to "optimize" GDI's scrolling API.

areckx

areckx

2017-08-10 10:52

reporter   ~0003137

Problem appears resolved with r8736 and with the advanced setting.

I can't believe I failed to mention I am running my copy of 32 bit win XP sp3 in virtualbox on a 64-bit archlinux. Could have been useful to note...

manx

manx

2017-08-10 11:07

administrator   ~0003138

You mentioned Windows XP as OS version, and thus it was evident that it might be driver related (as in Windows XP, this stuff is handled by each individual driver (in contrast to how things work since Vista)).
Anyway, what OpenMPT is doing here is frankly stupid and, in the long run, should get fixed (by using an additional backbuffer and reblitting from that). What OpenMPT is doing is also painfully slow when using multiple AMD GPU cards and running OpenMPT on a display on the secondary card. In fact, I should re-test in that setup to find out if the redraw-everything work-around is actually faster there.

Until this gets fixed properly in OpenMPT, you can use that setting (as mentioned, this can be measurably slower).
I'll backport that setting to 1.26, so the next stable release will also have it.

manx

manx

2017-08-10 11:39

administrator   ~0003139

Documented at https://wiki.openmpt.org/Manual:_Hidden_Settings#.5BPattern_Editor.5D .
Committed as r8737 in 1.26 (1.26 test builds for Windows XP will appear at https://builds.openmpt.org/builds/auto/openmpt-win32old/ (different location compared to 1.27 test builds)).

Midori

Midori

2017-08-16 16:07

reporter   ~0003175

The same issue occurs on my old machine running Windows XP Professional SP3 32bit natively, so i'd safely rule out any influence of Virtualbox.

Saga Musix

Saga Musix

2017-08-16 16:10

administrator   ~0003176

That's not correct, since VirtualBox provides its own graphics driver. It's just true that VirtualBox is not the only wait to trigger this issue.

manx

manx

2017-08-16 16:15

administrator   ~0003177

I'm still almost 100% confident that the root cause is actually OpenMPT intermixing synchronous (ScrollWindow) and asynchronous (OnPaint) window drawing here. That cannot possibly interact sensibly with something like Smooth Scrolling (which I'd imagine basically does similar things, but on the driver side). I'd imagine display drivers (or GDI) going through quite some hassle to even handle that at all.
I have nothing factual to back up the theory, but it appears highly likely to me.

Issue History

Date Modified Username Field Change
2017-08-10 07:37 areckx New Issue
2017-08-10 07:49 manx Note Added: 0003132
2017-08-10 08:51 manx Status new => feedback
2017-08-10 08:51 manx Note Added: 0003133
2017-08-10 08:54 manx Relationship added related to 0000873
2017-08-10 09:16 areckx Note Added: 0003134
2017-08-10 09:16 areckx Status feedback => new
2017-08-10 10:04 manx Note Added: 0003135
2017-08-10 10:05 manx Relationship deleted related to 0000873
2017-08-10 10:06 manx Relationship added related to 0000522
2017-08-10 10:06 manx Note Edited: 0003132 View Revisions
2017-08-10 10:06 manx Note Edited: 0003132 View Revisions
2017-08-10 10:31 Saga Musix Note Added: 0003136
2017-08-10 10:52 areckx Note Added: 0003137
2017-08-10 10:55 areckx Additional Information Updated View Revisions
2017-08-10 11:07 manx Note Added: 0003138
2017-08-10 11:07 manx Status new => confirmed
2017-08-10 11:39 manx Note Added: 0003139
2017-08-10 11:40 manx Target Version => OpenMPT 1.?? (long term goals)
2017-08-16 16:07 Midori Note Added: 0003175
2017-08-16 16:10 Saga Musix Note Added: 0003176
2017-08-16 16:15 manx Note Added: 0003177