PTB's rendering is jumbled on Intel Arc graphics on MS-Windows

Background info

I am trying to use PTB 3.0.19 on a Huawei laptop with Intel graphics that I bought for data collection. Currently I am running Windows 11 on it but it also persist on Windows 10.

When I set the display to 1920 x 1440 and scale to 100% the rendering looks normal for the first “trial” of the text demo but then the warning sign appears in the background and it gets messed up. The recommended settings of the laptop (display 2520 x 1680 and scale of 200%) don’t seem to work at all.

Main problem

Everything that PTB renders itself is completely messed up (e.g. text, the alpha demo etc.). If I show normal images, it looks fine.

Minimal code

e.g. DrawFormattedTextDemo

Demonstration of the issue

Detailed system info

Field Content
Device name DESKTOP-6KDIH4P
Processor Intel(R) Core™ Ultra 7 155H 3.80 GHz
Installed RAM 32.0 GB (31.5 GB usable)
Device ID E99BA424-E115-4EDB-BE87-CFD0FBC25760
Product ID 00331-20300-00000-AA480
System type 64-bit operating system, x64-based processor
Pen and touch Pen and touch support with 10 touch points
GPU Intel Arc Graphics
Field Content
OS Name Microsoft Windows 11 Pro
Version 10.0.22631 Build 22631
Other OS Description Not Available
OS Manufacturer Microsoft Corporation
System Name DESKTOP-6KDIH4P
System Manufacturer HUAWEI
System Model ENZH-XX
System Type x64-based PC
System SKU C233
Processor Intel(R) Core™ Ultra 7 155H, 3800 Mhz, 16 Core(s), 22 Logical Processor(s)
BIOS Version/Date HUAWEI 1.09, 9/12/2024
SMBIOS Version 3.6
Embedded Controller Version 1.09
BIOS Mode UEFI
BaseBoard Manufacturer HUAWEI
BaseBoard Product ENZH-XX-PCB
BaseBoard Version M1010

PTB message

PTB-INFO: This is Psychtoolbox-3 for Microsoft Windows, under Matlab 64-Bit (Version 3.0.19 - Build date: Jul 31 2024).
PTB-INFO: OS support status: Windows 11 (Version 11.0) is not supported.
PTB-INFO: Type ‘PsychtoolboxVersion’ for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file ‘License.txt’ in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: For information about paid support, support memberships and other commercial services, please type
PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-WARNING: Couldn’t determine end-line of vertical blanking interval for your display! Trouble with beamposition queries?!?
PTB-WARNING: Detected end-line is 1919, which is either lower or more than 1.250000 times higher than vbl startline 1440 → Out of sane range!

PTB-INFO: OpenGL-Renderer is Intel :: Intel(R) Arc™ Graphics :: 4.6.0 - Build 31.0.101.5382
PTB-INFO: VBL startline = 1440 , VBL Endline = 1919
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback.
PTB-INFO: Timestamps returned by Screen(‘Flip’) will be therefore less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 8.336054 ms [119.960835 Hz]. (50 valid samples taken, stddev=0.137148 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 8.333333 ms [120.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: ==============================================================================================================================
PTB-INFO: WINDOWS DWM DESKTOP COMPOSITOR IS ACTIVE. On this Windows-10 or later system, Psychtoolbox can no longer reliably detect if
PTB-INFO: this will cause trouble for timing and integrity of visual stimuli or not. You might be just fine, or you could be in trouble.
PTB-INFO: Use external measurement equipment and independent procedures to verify reliability of timing if you care about proper timing.
PTB-INFO: ==============================================================================================================================

----- ! PTB - WARNING: SYNCHRONIZATION TROUBLE ! -----

One or more internal checks (see Warnings above) indicate that
queries of rasterbeam position are not properly working for your setup.

Psychtoolbox will work around this by using a different timing algorithm,
but it will cause Screen(‘Flip’) to report less accurate/robust timestamps
for stimulus timing.
Read ‘help BeampositionQueries’ for more info and troubleshooting tips.

Average redraw duration for scrolling in msecs: 8.645200

INFO: PTB’s Screen(‘Flip’, 10) command seems to have missed the requested stimulus presentation deadline
INFO: a total of 4 times out of a total of 50 flips during this session.

INFO: This number is fairly accurate (and indicative of real timing problems in your own code or your system)
INFO: if you provided requested stimulus onset times with the ‘when’ argument of Screen(‘Flip’, window [, when]);
INFO: If you called Screen(‘Flip’, window); without the ‘when’ argument, this count is more of a ‘‘mild’’ indicator
INFO: of timing behaviour than a hard reliable measurement. Large numbers may indicate problems and should at least
INFO: deserve your closer attention. Cfe. ‘help SyncTrouble’, the FAQ section at www.psychtoolbox.org and the
INFO: examples in the PDF presentation in PsychDocumentation/Psychtoolbox3-Slides.pdf for more info and timing tips.

Short update

Following some LLM suggestions I tried playing around the compatibility settings under the properties of the matlab.exe, which didn’t do much.

However, the problem is completely gone when I plugged in a second monitor via an HDMI cable, which would completely solve my issue because in the scanner it would also be plugged into a monitor.

I have a wheel device I’d like to read with PsychHID, but I can’t figure out how to do it.

I have the device and element number of the wheel (see below). What I’d really like to do is to read the instantaneous state of the wheel, but PsychHID(‘RawState, 13, 8) doesn’t do anything. I’m not sure which parameters to use for PsychHID(‘GetReport’), but there are 5 buttons and a wheel on this device so I assume it would report 6 bytes….

Thanks for any help.

Keith

octave:79> elements(8)
ans =

scalar structure containing the fields:

typeMaskName = input
name = 
deviceIndex = 13
elementIndex = 8
typeValue = 1
typeName = Miscellaneous Input
usagePageValue = 1
usageValue = 56
usageName = Wheel
dataSize = 8
rangeMin = -127
rangeMax = 127
scaledRangeMin = -127
scaledRangeMax = 127
relative = 1
wrapping = 0
nonLinear = 0
preferredState = 1
nullState = 0
calMin = 2.1475e+09
calMax = -2.1475e+09
scalingMin = 0
scalingMax = 255

octave:80> devices(13)
ans =

scalar structure containing the fields:

usagePageValue = 1
usageValue = 2
usageName = Mouse
index = 13
transport = USB
vendorID = 12990
productID = 5408
version = 535
manufacturer = Baolian industry Co., Ltd.
product = TS-BSP-02
serialNumber = 5D7433583835
locationID = 1.3841e+08
interfaceID = -1
totalElements = 8
features = 0
inputs = 8
outputs = 0
collections = 2
axes = 2
buttons = 5
hats = 0
sliders = 0
dials = 0
wheels = 1
touchDeviceType = -1
maxTouchpoints = -1

I think you’d be more likely to get a helpful answer if you created your own post as yours is unrelated to my issue.

Indeed, should be a post under a suitable topic. But I think GetMouseWheel() should hopefully cover this, as your device seems to be a HID mouse with a wheel?

I still don’t know what is causing this mess but I am happy that it works when another monitor is plugged in so I will leave it at that.

The jumbling you describe and show in your photo is almost certainly due to Intel graphics driver bugs. In general, our system recommendations on our webpage very strongly advise against using Intel graphics on MS-Windows due to the buggy drivers with known deficiencies in the area of display timing, this has been discussed here quite often, although the problems you describe are an unrelated and new level of “broken”. Nothing caused by Psychtoolbox, nothing that could be done about it, apart from hoping for some bug fixed Intel drivers in the future. Or you could switch to Linux, where Intel graphics is usually of high quality with no known problems.

In general, MS-Windows on HiDPI displays, ie. with scaling factors other than 100%, can be fragile due to OS limitations and long time unfixed limitations of Matlab. Sometimes Octave works better, especially for multi-display setups.

Some of the output also makes me wonder if VRR Variable Refresh Rate is active on that laptop display panel, causing additional problems, as that is not supported on MS-Windows for use with Psychtoolbox (or other similar toolkits) and should be switched off? The forum will have some advice about this stuff somewhere to find.

1 Like

I feared as much after looking at the graphics recommendation. I mainly posted so others can see that this might be a general issue instead something wrong with the task. Fortunately, it works at least when I use an HDMI cable and mirror the screen.

Be aware that mirroring the screen will almost certainly break visual stimulation timing. Assuming it worked in the first place, as this is a thing that is almost always severely broken with Intel graphics on Windows. Various posts about this…

Thanks for the warning I will keep this in mind. Luckily it’s very simple task where very accurate timing is not important.