Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 105K
|
+xThis turns out to be another case where appending a size indicator via string manipulation running afoul of the local locale. In this particular case replace all the concat(value, "%") code with display.getpixelsx(value): In the attached scripts case modify the relevant <expressions> to the following: / AATTargetStimulusXSize = if (expressions.MovementDirection == "Approaching") display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 + values.HopCounter*(values.FinalZoomFactorText-1)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Avoiding") display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 - values.HopCounter*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)) else display.getpixelsx(values.StartingAATTargetTextHeightInPercent) / AATTargetStimulusXSizeForError = if (expressions.MovementDirection == "Approaching" && script.currentblock == "PracticeAAT" && !values.ErrorFeedbackInPracticePhaseInsteadOfZoom) display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 + values.NumZoomSteps*(values.FinalZoomFactorText-1)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Avoiding" && script.currentblock == "PracticeAAT" && !values.ErrorFeedbackInPracticePhaseInsteadOfZoom) display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 - values.NumZoomSteps*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Approaching" && script.currentblock == "AAT" && !values.ErrorFeedbackInSRBindingPhaseInsteadOfZoom) display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 + values.NumZoomSteps*(values.FinalZoomFactorText-1)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Avoiding" && script.currentblock == "AAT" && !values.ErrorFeedbackInSRBindingPhaseInsteadOfZoom) display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 - values.NumZoomSteps*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)) else display.getpixelsx(values.StartingAATTargetTextHeightInPercent) / BGPicXSize = if (expressions.MovementDirection == "Approaching") display.getpixelsx(values.StartingBGPicWidth * (1 + values.HopCounter*(values.FinalZoomFactorBGPic-1)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Avoiding") display.getpixelsx(values.StartingBGPicWidth * (1 - values.HopCounter*(1-1/values.FinalZoomFactorBGPic)/values.NumZoomSteps)) else display.getpixelsx(values.StartingBGPicWidth)
and things should work as expected regardless of the locale.
The next release will at least issue a warning that the person running the experiment will see if Inquisit fails to parse a size. Erik beat me to the punch while I was still working on this. Note that the code provided by Erik will result in slightly to noticeably larger text sizes compared to the original code. A/B testing, I am getting identical results with the below alternative, which should (and does, on my systems) work regardless of locale / regional format settings. <expressions> / AATTargetStimulusXSize = if (expressions.MovementDirection == "Approaching") { 1pct*(values.StartingAATTargetTextHeightInPercent * (1 + values.HopCounter*(values.FinalZoomFactorText-1)/values.NumZoomSteps)); } else if (expressions.MovementDirection == "Avoiding") { 1pct*(values.StartingAATTargetTextHeightInPercent * (1 - values.HopCounter*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)); } else { 1pct*(values.StartingAATTargetTextHeightInPercent); }; / AATTargetStimulusXSizeForError = if (expressions.MovementDirection == "Approaching" && script.currentblock == "PracticeAAT" && !values.ErrorFeedbackInPracticePhaseInsteadOfZoom) { 1pct*(values.StartingAATTargetTextHeightInPercent * (1 + values.NumZoomSteps*(values.FinalZoomFactorText-1)/values.NumZoomSteps)) } else if (expressions.MovementDirection == "Avoiding" && script.currentblock == "PracticeAAT" && !values.ErrorFeedbackInPracticePhaseInsteadOfZoom) { 1pct*(values.StartingAATTargetTextHeightInPercent * (1 - values.NumZoomSteps*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)) } else if (expressions.MovementDirection == "Approaching" && script.currentblock == "AAT" && !values.ErrorFeedbackInSRBindingPhaseInsteadOfZoom){ 1pct*(values.StartingAATTargetTextHeightInPercent * (1 + values.NumZoomSteps*(values.FinalZoomFactorText-1)/values.NumZoomSteps)) } else if (expressions.MovementDirection == "Avoiding" && script.currentblock == "AAT" && !values.ErrorFeedbackInSRBindingPhaseInsteadOfZoom) { 1pct*(values.StartingAATTargetTextHeightInPercent * (1 - values.NumZoomSteps*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)) } else { 1pct*(values.StartingAATTargetTextHeightInPercent) }; / BGPicXSize = if (expressions.MovementDirection == "Approaching") { 1pct*(values.StartingBGPicWidth * (1 + values.HopCounter*(values.FinalZoomFactorBGPic-1)/values.NumZoomSteps)) } else if (expressions.MovementDirection == "Avoiding") { 1pct*(values.StartingBGPicWidth * (1 - values.HopCounter*(1-1/values.FinalZoomFactorBGPic)/values.NumZoomSteps)) } else { 1pct*(values.StartingBGPicWidth) }; </expressions>
|
|
|
Erik
|
|
Group: Moderators
Posts: 13,
Visits: 199
|
This turns out to be another case where appending a size indicator via string manipulation running afoul of the local locale. In this particular case replace all the concat(value, "%") code with display.getpixelsx(value): In the attached scripts case modify the relevant <expressions> to the following: / AATTargetStimulusXSize = if (expressions.MovementDirection == "Approaching") display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 + values.HopCounter*(values.FinalZoomFactorText-1)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Avoiding") display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 - values.HopCounter*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)) else display.getpixelsx(values.StartingAATTargetTextHeightInPercent) / AATTargetStimulusXSizeForError = if (expressions.MovementDirection == "Approaching" && script.currentblock == "PracticeAAT" && !values.ErrorFeedbackInPracticePhaseInsteadOfZoom) display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 + values.NumZoomSteps*(values.FinalZoomFactorText-1)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Avoiding" && script.currentblock == "PracticeAAT" && !values.ErrorFeedbackInPracticePhaseInsteadOfZoom) display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 - values.NumZoomSteps*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Approaching" && script.currentblock == "AAT" && !values.ErrorFeedbackInSRBindingPhaseInsteadOfZoom) display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 + values.NumZoomSteps*(values.FinalZoomFactorText-1)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Avoiding" && script.currentblock == "AAT" && !values.ErrorFeedbackInSRBindingPhaseInsteadOfZoom) display.getpixelsx(values.StartingAATTargetTextHeightInPercent * (1 - values.NumZoomSteps*(1-1/values.FinalZoomFactorText)/values.NumZoomSteps)) else display.getpixelsx(values.StartingAATTargetTextHeightInPercent) / BGPicXSize = if (expressions.MovementDirection == "Approaching") display.getpixelsx(values.StartingBGPicWidth * (1 + values.HopCounter*(values.FinalZoomFactorBGPic-1)/values.NumZoomSteps)) else if (expressions.MovementDirection == "Avoiding") display.getpixelsx(values.StartingBGPicWidth * (1 - values.HopCounter*(1-1/values.FinalZoomFactorBGPic)/values.NumZoomSteps)) else display.getpixelsx(values.StartingBGPicWidth)
and things should work as expected regardless of the locale.
The next release will at least issue a warning that the person running the experiment will see if Inquisit fails to parse a size.
Developer at Millisecond Software, LLC.
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 105K
|
+x+x+x+xA driver update to the current Intel build changed nothing, the error persisted. And yes - the uploaded script is the same as the one being used in the testing, as is the picture. Alright, I've compiled all the information into a bug report. We'll have to see if we can find some system among ours on which the problem is reproducible (no luck with that yet). If you get the specs from the other systems you've observed this on, please add them here. We're not having any luck trying to reproduce the issue. To help us narrow down potential causes, it would be great if you could try the following on the affected Dell machine and report back the result: Set values.TimeInMSBetweenAnimationHops to twice the nominal refresh interval reported by the system, i.e. <values> ... / TimeInMSBetweenAnimationHops = 2*display.refreshinterval ... </values> This will obviously slow down the animation and make it choppy, but it would be very helpful to know whether the text layer is still being omitted on some trials or whether it is displayed reliably with a longer hop time. Increasing the time between animation hops in this way did NOT solve the issue on at least one affected system (the one with the old Intel driver). The zoom effect was visibly slower as expected, but the word still flickered and there were still "jumps" in the zoom. Thanks for taking the time to test (also regarding the other, progress bar / shape sizing issue; https://www.millisecond.com/forums/FindPost31710.aspx ). My guess is that the two are indeed related, and I suspect the ultimate cause is some misinterpretation of the calculated size values happening due to confustion about the decimal separator ("," vs ".") either at the driver-level or somewhere deep inside the engine. Your test results should give us enough to go on and either fix (if it's engine-level) or work around (if it's driver-level) that in the next update.
|
|
|
AKrishna
|
|
Group: Forum Members
Posts: 118,
Visits: 396
|
+x+x+xA driver update to the current Intel build changed nothing, the error persisted. And yes - the uploaded script is the same as the one being used in the testing, as is the picture. Alright, I've compiled all the information into a bug report. We'll have to see if we can find some system among ours on which the problem is reproducible (no luck with that yet). If you get the specs from the other systems you've observed this on, please add them here. We're not having any luck trying to reproduce the issue. To help us narrow down potential causes, it would be great if you could try the following on the affected Dell machine and report back the result: Set values.TimeInMSBetweenAnimationHops to twice the nominal refresh interval reported by the system, i.e. <values> ... / TimeInMSBetweenAnimationHops = 2*display.refreshinterval ... </values> This will obviously slow down the animation and make it choppy, but it would be very helpful to know whether the text layer is still being omitted on some trials or whether it is displayed reliably with a longer hop time. Increasing the time between animation hops in this way did NOT solve the issue on at least one affected system (the one with the old Intel driver). The zoom effect was visibly slower as expected, but the word still flickered and there were still "jumps" in the zoom.
|
|
|
AKrishna
|
|
Group: Forum Members
Posts: 118,
Visits: 396
|
+x+x+xA driver update to the current Intel build changed nothing, the error persisted. And yes - the uploaded script is the same as the one being used in the testing, as is the picture. Alright, I've compiled all the information into a bug report. We'll have to see if we can find some system among ours on which the problem is reproducible (no luck with that yet). If you get the specs from the other systems you've observed this on, please add them here. We're not having any luck trying to reproduce the issue. To help us narrow down potential causes, it would be great if you could try the following on the affected Dell machine and report back the result: Set values.TimeInMSBetweenAnimationHops to twice the nominal refresh interval reported by the system, i.e. <values> ... / TimeInMSBetweenAnimationHops = 2*display.refreshinterval ... </values> This will obviously slow down the animation and make it choppy, but it would be very helpful to know whether the text layer is still being omitted on some trials or whether it is displayed reliably with a longer hop time. Haven't been able to test this yet, but will do so hopefully later today. For now, the specs of another affected system: Windows 10 Build 19042 Intel Core i5-10210U 16 GB RAM Intel UHD Graphics, driver version 26.20.100.7985 Resolution: 1920 x 1080 x 60 Hz
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 105K
|
+x+xA driver update to the current Intel build changed nothing, the error persisted. And yes - the uploaded script is the same as the one being used in the testing, as is the picture. Alright, I've compiled all the information into a bug report. We'll have to see if we can find some system among ours on which the problem is reproducible (no luck with that yet). If you get the specs from the other systems you've observed this on, please add them here. We're not having any luck trying to reproduce the issue. To help us narrow down potential causes, it would be great if you could try the following on the affected Dell machine and report back the result: Set values.TimeInMSBetweenAnimationHops to twice the nominal refresh interval reported by the system, i.e. <values> ... / TimeInMSBetweenAnimationHops = 2*display.refreshinterval ... </values> This will obviously slow down the animation and make it choppy, but it would be very helpful to know whether the text layer is still being omitted on some trials or whether it is displayed reliably with a longer hop time.
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 105K
|
+xA driver update to the current Intel build changed nothing, the error persisted. And yes - the uploaded script is the same as the one being used in the testing, as is the picture. Alright, I've compiled all the information into a bug report. We'll have to see if we can find some system among ours on which the problem is reproducible (no luck with that yet). If you get the specs from the other systems you've observed this on, please add them here.
|
|
|
AKrishna
|
|
Group: Forum Members
Posts: 118,
Visits: 396
|
A driver update to the current Intel build changed nothing, the error persisted.
And yes - the uploaded script is the same as the one being used in the testing, as is the picture.
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 105K
|
+x+xDriver date on the PC in the footage: October 20, 2016; version 21.20.16.4541 In contrast, I DON'T have the issue on my PC: Inquisit 6.4.2 64bit (build 6307) Windows 10 Pro Build 19042 Intel Core i7-5960X 32GB RAM Geforce GTX980 graphics card, driver version 27.21 14.6109 (December 31, 2020) The driver on the affected system is fairly ancient and outdated, and a driver bug is a distinct possibility. According to Intel's website, the latest release available for the HD 520 is driver version 27.20.100.9466 (date: 05/14/2021): https://www.intel.com/content/www/us/en/support/products/88355/graphics/graphics-for-6th-generation-intel-processors/intel-hd-graphics-520.htmlPlease try updating to that driver and let me know if the issue persists after doing so. One more question for clarification: The script run on the affected system is the exact same one you provided in this thread, correct? I'd like to rule out that we're looking at slightly different bits of code, with a subtle mistake in one version, but not the other. Adding: If you don't want to install the non-branded Intel driver, the Dell support portal for your system should also offer a more recent OEM driver version (these typically lag a little behind the Intel releases, but can contain OEM customizations integrating them with other Dell-proprietary features on the system, such as hotkey integration).
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 105K
|
+xDriver date on the PC in the footage: October 20, 2016; version 21.20.16.4541 In contrast, I DON'T have the issue on my PC: Inquisit 6.4.2 64bit (build 6307) Windows 10 Pro Build 19042 Intel Core i7-5960X 32GB RAM Geforce GTX980 graphics card, driver version 27.21 14.6109 (December 31, 2020) The driver on the affected system is fairly ancient and outdated, and a driver bug is a distinct possibility. According to Intel's website, the latest release available for the HD 520 is driver version 27.20.100.9466 (date: 05/14/2021): https://www.intel.com/content/www/us/en/support/products/88355/graphics/graphics-for-6th-generation-intel-processors/intel-hd-graphics-520.htmlPlease try updating to that driver and let me know if the issue persists after doing so. One more question for clarification: The script run on the affected system is the exact same one you provided in this thread, correct? I'd like to rule out that we're looking at slightly different bits of code, with a subtle mistake in one version, but not the other.
|
|
|