Dithering issue with AMD graphic card (Linux - Ubuntu)

Hi everyone,

I’m trying to setup a computer with Psychtoolbox-3 and Datapixx3 but I’m having some issues with my graphic card. I followed the instructions to install Psychtoolbox for Linux and everything seemed to work out fine. I run the suggested test and stimulus display/timing seem in order.

Nonetheless, by using the “vline” command of Datapixx3 through the VPUtil, I can see that there is dithering. Whenever I present a screen with a solid color, I can see that some pixels are offset by +1 in value in some of the RGB channels. As a consequence, I can’t use the “pixel synch” functionality (Datapixx(‘RegWrPixelSync’)) of Datapixx3 to time my stimuli.

To address the issue, I tried to disable dithering using the following command (also by running matlab as root, just in case):

Screen(‘ConfigureDisplay’, ‘Dithering’, screenID, 0);

but it did not solve the problem (I still see the +1 offset when using the vline command).

I tried to disable dithering via Linux, but I could not find a viable solution. So, the question is how can I disable dithering in order to use the PixelSync functions provided by Datapixx? Attached below there’s the configuration of the system I’m using.

Any help is greatly appreciated!

Thanks,

Antimo

CPU:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Model name: Intel(R) Core™ i9-10940X CPU @ 3.30GHz

Graphic card:
Version: ‘4.6 (Compatibility Profile) Mesa 20.2.6’
Vendor: ‘X.Org
Renderer: ‘Radeon Pro WX 9100 (VEGA10, DRM 3.35.0, 5.4.0-65-lowlatency, LLVM 11.0.0)’
Visual: ‘Visual 0x55f, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double buffer, Antialias 8 samples)’

Operating system: Ubuntu 20.04.2 LTS

Should be easy as pie, just use PTB’s builtin tools for that instead of the more clunky manual approach of yours.

What you want to do is run DatapixxGPUDitherpatternTest which will not only demonstrate how to enable identity pixel passthrough for exactly these use-cases, but also test it. LoadIdentityClut is meant for that if one wants to do it manually, but PTB has builtin support for many VPixx related functionality wrt. video and audio.

For a full and thorough test of how well PTB + graphics card + Datapixx work together, wrt. color drawing precision and identity pixel passthrough, you’d run BitsPlusImagingPipelineTest, followed by BitsPlusIdentityClutTest([], 1);.

For testing the timing, there’s VBLSyncTest with the optional usedpixx parameter set to 2, or even more thorough FlipTimingWithRtBoxPhotodiodeTest. They not only test your setup carefully, but also demonstrate how to optimally use VPixx devices builtin timestamping with Psychtoolbox.

It would be useful to post the output of some of these scripts, e.g., VBLSyncTest, including all figures, here. You are the first person to post here which has a AMD Vega gpu, so it would be nice to have a look over the output and plots and get final confirmation that PTB works nicely with Vega class gpu’s on Linux. I do know from my own frequent testing and from others testing that older and newer gpu’s work nicely with PTB, but Vega compatibility is the one gap in my set of testing results. I’d expect it to work splendid until proven otherwise.

-mario

Antimo - I assume you are Antimo Buoncore? If so, hi! What AMD card are you using?

Hi Mario,

thanks a lot for your quick reply. When setting up, I had run some of the test you suggested and I had mixed results. Now, I rerun everything and I`m copying the console outcome of each test and the figures produced by the scripts.

1. VBLSyncTest, this seems to work for me only when I run my system at 120Hz. If I try to run it at 144Hz, that the monitor would still allow, I get some error. For this reason, also the other tests were run at 120Hz (figures attached at the end).
Radeon Pro WX 9100 (VEGA10, DRM 3.35.0, 5.4.0-67-lowlatency, LLVM 11.0.0) :: 4.6 (Compatibility Profile) Mesa 20.2.6
PTB-INFO: VBL startline = 1080 , VBL Endline = -1
PTB-INFO: Will try to use OS-Builtin OpenML sync control support for accurate Flip timestamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 8.333540 ms [119.997025 Hz]. (50 valid samples taken, stddev=0.000547 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.
LoadIdentityClut: Could not use GPU low-level setup for pixel passthrough. Will use fallback.
The refresh interval reported by the operating system is 8.33333 ms.
Measured refresh interval, as reported by “GetFlipInterval” is 8.33354 ms. (nsamples = 0, stddev = 0.00000 ms)

ans =

 1

Average discrepancy between Flip timestamping and DataPixx is 4162.574541 msecs, stddev = 2406.887698 msecs.
PTB missed 0 out of 1000 stimulus presentation deadlines.
One missed deadline is ok and an artifact of the measurement.
PTB completed 0 stimulus presentations before the requested target time.
Have a look at the plots for more details…

2. BitsPlusImagingPipelineTest seem to work fine, but I get some warnings:
Test with DataPixx/ViewPixx/ProPixx (d), Bits+ (b) or Bits# (s)? d
Converting test stim to color++ format
PTB-INFO: Failed to map GPU low-level control registers for screenId 0 [Operation not permitted].
PTB-INFO: Beamposition timestamping on NVidia and AMD gpu’s, and other special functions on AMD gpu’s, disabled.
PTB-INFO: You need to run the setup script PsychLinuxConfiguration once, followed by a reboot, for this to work.
PTB-INFO: Additionally, on machines with EFI firmware, EFI secure boot must be disabled, or kernel lockdown lifted.
PTB-INFO: If you are using the open-source graphics drivers, then this usually doesn’t matter for typical use.
PTB-INFO: All display tests and calibrations disabled. Assuming a refresh interval of 120.000000 Hz. Timing will be inaccurate!
PTB - Info: Your framebuffer is configured for maximum precision. All internal processing will be done
PTB - Info: with about 23 bits of linear precision – DataPixx will be able to finally output with 16 bits precision.
PTB - Info: Alpha-blending should be fully supported at this precision by your hardware.

PTB - Info: Classic half horizontal resolution color conversion for C48 mode selected.
PTB - Info: Aspect ratio will be horizontally distorted, ie., 2:1.

LoadIdentityClut: Could not use GPU low-level setup for pixel passthrough. Will use fallback.
Building a fragment shader:Reading shader from file /usr/share/psychtoolbox-3/PsychOpenGL/PsychGLSLShaders/ICMClampedPassThroughShader.frag.txt …
Compiling all shaders matching Bits++_Color++_FormattingShader * into a GLSL program.
Building a fragment shader:Reading shader from file /usr/share/psychtoolbox-3/PsychOpenGL/PsychGLSLShaders/Bits++_Color++_FormattingShader.frag.txt …
PsychDatapixx:GPU-Rasterizertest: Warning: glVertex2i() command draws at wrong position (Offset -1, 1)!
PsychDatapixx:GPU-Rasterizertest: Warning: glVertex2f() command draws at wrong position (Offset -1, 1)!

ReadbackOffset (0, 0): Maximum raw data difference: red= 0.000000 green = 0.000000 blue = 0.000000

WARNING: This session of your experiment was run by you with the setting Screen(‘Preference’, ‘SkipSyncTests’, 2).
WARNING: This means that some internal self-tests and calibrations were skipped. Your stimulus presentation timing
WARNING: may have been wrong. This is fine for development and debugging of your experiment, but for running the real
WARNING: study, please make sure to set Screen(‘Preference’, ‘SkipSyncTests’, 0) for maximum accuracy and reliability.

------------------- Color++ test success! -------------------------------------

Converting test stim to mono++ format
PTB-INFO: Failed to map GPU low-level control registers for screenId 0 [Operation not permitted].
PTB-INFO: Beamposition timestamping on NVidia and AMD gpu’s, and other special functions on AMD gpu’s, disabled.
PTB-INFO: You need to run the setup script PsychLinuxConfiguration once, followed by a reboot, for this to work.
PTB-INFO: Additionally, on machines with EFI firmware, EFI secure boot must be disabled, or kernel lockdown lifted.
PTB-INFO: If you are using the open-source graphics drivers, then this usually doesn’t matter for typical use.
PTB-INFO: All display tests and calibrations disabled. Assuming a refresh interval of 120.000000 Hz. Timing will be inaccurate!
PTB - Info: Your framebuffer is configured for maximum precision. All internal processing will be done
PTB - Info: with about 23 bits of linear precision – DataPixx will be able to finally output with 16 bits precision.
PTB - Info: Alpha-blending should be fully supported at this precision by your hardware.

LoadIdentityClut: Could not use GPU low-level setup for pixel passthrough. Will use fallback.
Building a fragment shader:Reading shader from file /usr/share/psychtoolbox-3/PsychOpenGL/PsychGLSLShaders/ICMClampedPassThroughShader.frag.txt …
Compiling all shaders matching Bits++_Mono++_FormattingShader * into a GLSL program.
Building a fragment shader:Reading shader from file /usr/share/psychtoolbox-3/PsychOpenGL/PsychGLSLShaders/Bits++_Mono++_FormattingShader.frag.txt …
PsychDatapixx:GPU-Rasterizertest: Warning: glVertex2i() command draws at wrong position (Offset -1, 1)!
PsychDatapixx:GPU-Rasterizertest: Warning: glVertex2f() command draws at wrong position (Offset -1, 1)!

Maximum raw data difference: red= 0.000000 green = 0.000000 blue = 0.000000

------------------- Mono++ test success! -------------------------------------

SUMMARY: BitsPlusPlus imaging pipeline verified to work correctly. Validation info stored.
You may want to run BitsPlusIdentityClutTest next to test the path from framebuffer to output device.

3. BitsPlusIdentityClutTest([], 1); seem to work fine but I get a warning:

Run DataPixx/Bits# based diagnostics as well [Time consuming]? [y/n] n
PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.17 - Build date: Oct 31 2020).
PTB-INFO: OS support status: Linux 5.4.0-67-lowlatency 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 priority support, community membership and commercial services, please type
PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-INFO: Failed to map GPU low-level control registers for screenId 0 [Operation not permitted].
PTB-INFO: Beamposition timestamping on NVidia and AMD gpu’s, and other special functions on AMD gpu’s, disabled.
PTB-INFO: You need to run the setup script PsychLinuxConfiguration once, followed by a reboot, for this to work.
PTB-INFO: Additionally, on machines with EFI firmware, EFI secure boot must be disabled, or kernel lockdown lifted.
PTB-INFO: If you are using the open-source graphics drivers, then this usually doesn’t matter for typical use.

PTB-WARNING: Flip for window 10 didn’t use pageflipping for flip. Visual presentation timing and timestamps are likely unreliable!
PTB-WARNING: Something is misconfigured on your system, otherwise pageflipping would have been used by the graphics driver for reliable timing.
PTB-WARNING: However, if you see this message only sporadically, this might be caused by onscreen popup messages a la “You have new mail!” or
PTB-WARNING: “New updates are ready to install” etc. Being low on free system memory can cause this as well, especially on integrated graphics chips.
PTB-WARNING: Read the Linux specific section of ‘help SyncTrouble’ for some other common causes and fixes for this problem.

4. DatapixxGPUDitherpatternTest fails:
BitsPlusPlus: Could not find a Bits# config file under [/.Psychtoolbox/BitsSharpConfig.txt]. Assuming a Bits+ device instead of a Bits# is connected.
BitsPlusPlus: Please create a config file under this name if you have a Bits# and want to use it as Bits# instead of as a Bits+.
BitsPlusPlus: The most simple way is to create an empty file. A more robust way is to store the name of the Bits# serial port
BitsPlusPlus: in the first line of the text file, e.g., COM5 [Windows], or /dev/ttyACM0 [Linux] or similar.

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.17 - Build date: Oct 31 2020).
PTB-INFO: OS support status: Linux 5.4.0-67-lowlatency 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 priority support, community membership and commercial services, please type
PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-INFO: Failed to map GPU low-level control registers for screenId 0 [Operation not permitted].
PTB-INFO: Beamposition timestamping on NVidia and AMD gpu’s, and other special functions on AMD gpu’s, disabled.
PTB-INFO: You need to run the setup script PsychLinuxConfiguration once, followed by a reboot, for this to work.
PTB-INFO: Additionally, on machines with EFI firmware, EFI secure boot must be disabled, or kernel lockdown lifted.
PTB-INFO: If you are using the open-source graphics drivers, then this usually doesn’t matter for typical use.
PTB-INFO: Trying to enable at least 10 bpc fixed point framebuffer.
PTB-INFO: Linux native 10 bit per color framebuffer requested, and the OS claims it is working fine. Good.
PTB-INFO: Real (OS native, queried) color resolution of the GPU framebuffer is 10 bits per RGB color component.

PTB-INFO: OpenGL-Renderer is X.Org :: Radeon Pro WX 9100 (VEGA10, DRM 3.35.0, 5.4.0-67-lowlatency, LLVM 11.0.0) :: 4.6 (Compatibility Profile) Mesa 20.2.6
PTB-INFO: VBL startline = 1080 , VBL Endline = -1
PTB-INFO: Will try to use OS-Builtin OpenML sync control support for accurate Flip timestamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 8.333530 ms [119.997162 Hz]. (50 valid samples taken, stddev=0.000609 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.
LoadIdentityClut: Could not use GPU low-level setup for pixel passthrough. Will use fallback.

Ref 0: RGB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ref 1: RGB 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Ref 2: RGB 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 → TROUBLE! WRONG VALUE

I get all the values wrong and then I get this:

INFO: PTB’s Screen(‘Flip’, 10) command seems to have missed the requested stimulus presentation deadline
INFO: a total of 105 times out of a total of 256 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.

WARNING: This session of your experiment was run by you with the setting Screen(‘Preference’, ‘SkipSyncTests’, 1).
WARNING: This means that some internal self-tests and calibrations were skipped. Your stimulus presentation timing
WARNING: may have been wrong. This is fine for development and debugging of your experiment, but for running the real
WARNING: study, please make sure to set Screen(‘Preference’, ‘SkipSyncTests’, 0) for maximum accuracy and reliability.

FAILURE! Many wrong pixels detected! Trouble for 254 separate levels!!!

So it seems that there are some issues going on and I’m struggling to understand where the problem is.

VBLSyncTest figure and DatapixxGPUDitherpatternTest:

About hardware, as monitor I’m using two AOC AG273QX 27" connected to the Datapixx3.

Thanks a lot for your help!

Antimo

Hi James! Yes that’s me.

this is the system I’m using:

CPU:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Model name: Intel(R) Core™ i9-10940X CPU @ 3.30GHz

Graphic card:
Version: ‘4.6 (Compatibility Profile) Mesa 20.2.6’
Renderer: ‘Radeon Pro WX 9100 (VEGA10, DRM 3.35.0, 5.4.0-65-lowlatency, LLVM 11.0.0)’
Visual: ‘Visual 0x55f, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double buffer, Antialias 8 samples)’

Operating system: Ubuntu 20.04.2 LTS

Monitor: two AOC AG273QX 27" connected to the Datapixx3

Antimo

This is very helpful @antimo! I am planning on putting together a very similar system (as you may have seen in my other post), with the main difference being VIEWPixx instead of DATAPixx. One thing I noticed in the output you posted is a few repeats of an instruction to:

Have you tried doing this before the other steps (IdentityClutTest / DitherPatternTest)?

Running PsychLinuxConfiguration as advised would be a first good step.
The other thing i notice is that the system seems to be configured for a 10 bpc framebuffer instead of 8 bpc? That would be most likely incompatible with the 8 bpc identity pixel passthrough needed for most things one would use a VPixx device for, also with the builtin high-precision display modes of many VPixx devices btw. Our DatapixxGPUDitherpatternTest is not capable atm. of testing other than 8 bpc framebuffers btw.

So fixing those two issues and rerunning all the tests would be a good start. If this requires more advice from myself, i think it would be appropriate to get priority support at this point via guidance of PsychPaidSupportAndServices.

-mario

Hi Mario,

thanks for your help. Yes, actually we are thinking of getting the priority support. I work in the lab of Prof. Hafed, he will take care of this aspect.

@jamespherman about PsychLinuxConfiguration, I run it and rebooted the system when I did all the installation. I did not get any warning doing that process. I’m using 10 bits because I was suggested to do so by Datapixx support. I will now try to revert to the 8 bits and see if things changes.

Thanks a lot for your suggestions!

Antimo

If you ran PsychLinuxConfiguration successfully then this file
/etc/udev/rules.d/psychtoolbox.rules
should exist, and enable low-level access after a reboot (can’t remember atm. if the reboot is required, but it doesn’t hurt).

One reason it would still not work would be if the machine has EFI Secure boot enabled. In that case, the secure boot measures would trigger a lockdown of certain kernel features like the ones one needs for this type of hardware access. If you type sudo dmesg to print the kernel log, or maybe cat /var/log/syslog and you see a message containing “lockdown”, that may tell you if this is the culprit.

My assumption is that the failure you observe is due to the use of the 10 bpc framebuffer. It doesn’t make sense to me why that was recommended? Your AOC monitors are not 10 bpc capable, they can only do 8 bpc natively. The only way to get 10 bpc out of them – and thereby take advantage of a 10 bpc framebuffer – would be by use of spatial dithering. But spatial dithering is what you do not want if you want to use the Datapixx builtin timestamping. Now the Datapixx3 is the first VPixx device to my knowledge that uses DisplayPort instead of DVI, and maybe there is some reason i am not informed off, why this is supposed to work with the Datapixx3?

And if you wanted to have better than 8 bpc precision, there are many commercially available monitors now which can process a 10 bpc video signal without dithering. They will either implement their own builtin dithering (e.g., FRC) if they have a 8 bit panel – hopefully optimized in quality toward the specific panel used, or they will have a native 10 bit panel – probably only expensive models in the >> 2000 Euro range.

Testing the low level access feature on Vega gpu’s is interesting to me, because while PTB does implement low-level access to the DCE-12 display engines of Vega, this code has not ever been tested by myself as i don’t have any access to Vega gpu’s. And you are the first person ever to report using a Vega gpu, so we don’t have any feedback from any users either. So it is conceivable that there are bugs in the code, which should be fixable though with a collaborative user.

Vega is the last AMD gpu for which PTB provides low-level access at the moment, so it would be good to close this gap in testing.

-mario

Thanks Mario for the very detailed explanation. Indeed it seems that there’s a lockdown issue that is preventing hardware access.

Before to dive in with further testing, I have a basic question. How do I overwrite the PsychLinuxConfiguration files that are already present in the system? It seems that if I run again the PsychLinuxConfiguration I only get asked about some of the settings while others are skipped (compared to the very first time I run it).

Also, we proceeded with the PsychPaidSupportAndServices. I will now generate the code for the priority support.

Thanks a lot!

Antimo

The endless tension between security and usability…

Short of disabling secure boot in the Firmware setup of your machine (Dragons ahead if you have also MS-Windows with Bitlocker drive encryption installed – it will not like this and probably refuse to boot), what you could try is pressing “AltGr” + SysRQ/Print + x on your physical keyboard and see if “sudo dmesg” gives you a “Lockdown lifted” message, and then see how it goes.

The were properly written, so no need for action here, and our setup script will check if updates of the file are needed, by comparing the date of that file against the date of the file in your PTB distribution and prompt you accordingly. If you wanted to remove it, you could delete it manually.

Great, any finanical support, also independent of immediate actual need for priority support, is very much needed. So far we are deeply underwhelmed by the “success” of the community membership program, based on data from our user surveys we’d have expected way more. It spells new trouble for the future if participation from labs stays as poor as in the first 4 months.

Did you try reverting to a 8 bpc framebuffer already? That should be imho enough to fix dithering. I test proper identity pixel passthrough on AMD and Intel hardware regularly, and also with more recent AMD hardware where we don’t use the low-level tricks anymore, and it works. So failure would be very surprising.

I just checked, and the SysRQ + x key combo will probably not work anymore on current systems. It was found to be a way to break secure boot security, so it was removed a year ago.

Seems the only way to get this working is to either completely disable secure boot in the system firmware - which can affect what Windows-10 etc. would do if disk encryption is enabled.

Or you keep secure boot on in the firmware, but disable “secure boot validation” for Linux only. The procedure is described under this link as “Method 2”:

https://wiki.ubuntu.com/UEFI/SecureBoot/DKMS

Maybe it would work then even with Secure boot enabled in the firmware.

Hi Mario,

I disabled the Secure Boot from the bios settings. This machine has only linux installed, I hope this is not an issue. After Disabling the Secure Boot, dmesg was not showing anymore a message about the system being “Lockdown” (but also there was no explicit message saying “Lockdown lifted”). I also set the screen configuration to 8 bits.

With the Secure Boot disable, I first run the PsychLinuxConfiguration once more and rebooted. Then I tried to run the DatapixxGPUDitherpatternTest, which failed again (same as before). I also run the VBLSyncTest which works correctly only if I don’t set the “use datapixx” option. If I run VBLSyncTest wiht use datapixx option, I get a timing error:

PsychDataPixx: Warning: DataPixx command RegWrRd returned error code -1010

Interstingly, VBLSyncTest works with the dapitaxx option if I use 10bits color depth.

I just want to add that as driver for the graphic card I’m relying on the ones shipped with Ubuntu 20.04. I did not install any extra package from the AMD. In my understanding this should be sufficient.

Antimo

=============================================================================

JFLJ5VF2-2021326163824:57ae18affd39096cbb797a2c7cda39e70d0a8e599dd9bc5880505eadeb23c05d

=============================================================================

Good. That’s how it is supposed to behave.

Can you run clear all; VBLSyncTest; and post the plots it produces and also the Matlab output here? I want to know if low-level access now works.

That is very weird, even more so if it works at 10 bits color depth. I wonder if this is caused by the Datapixx3 behaving differently from other VPixx devices, given that it is as far as i know the only device not using DVI video input, but DisplayPort?

But if VBLSyncTest works with the usedatapixx option, then you should actually be set, as that uses Psychtoolbox builtin support for the Psync timestamping, iow. what you wanted to do in the first place, which only works if dithering is disabled?

Can you run Screen('Preference','Verbosity', 5); DatpixxGPUDitherpatternTest and post its full output here?

How is the system set up? Two X-Screens, screen 0 for the regular desktop GUI with Matlab on some monitor, and screen 1 for the dual-monitor setup connected to the Datapixx?

What’s the full output of xrandr --screen 1 --verbose in a terminal, assuming this is a dual-X-Screen setup?

Yes, those are the drivers you should use.
-mario

Hi Mario,

thanks again for the feedback. Maybe in my previous post I did not clarify well, but the VBLSynch test is NOT working with the datapixx (in 8 bits). It is only working if I call the function with the “use dapitapixx” option equal to 0. I don’t know why this is the case, but you are correct in saying that the datapixx3 uses a Display port. I’m also in contact with the datapixx support, but now they advise me to first solve the dithering issue because it seems independent from the datapixx.

The system that I’m using is setup with two X-screens, screen 0 is for Matlab GUI and screen 1 is for displaying the stimuli (at the end of the post I attached also my configuration file). Screen 1 goes to the datapixx where the signal is split so that one monitor show the actual stimuli and a secondary “console” monitor is used for us to overlay eye position etc. and monitor ongoing behavior.

I run the test that you asked and attached here the full logs. All the tests are run at 120Hz, 8 bits and the secure boot disabled. I first run the clear all; VBLSyncTest;, then Screen('Preference','Verbosity', 5); DatpixxGPUDitherpatternTest and finally the xrandr --screen 1 --verbose. I hope we can make sense of this!

1. clear all; VBLSyncTest;, then `Screen(‘Preference’,‘Verbosity’, 5);

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.17 - Build date: Oct 31 2020).
PTB-INFO: OS support status: Linux 5.4.0-70-lowlatency 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 priority support, community membership and commercial services, please type
PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-INFO: Connected to Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XT [Radeon PRO WX 9100] GPU with DCE-12.0 display engine [6 heads].

PTB-WARNING: Querying rasterbeam-position doesn’t work on your setup! (Returns a constant value 0)
PTB-WARNING: This can happen if Psychtoolbox gets the mapping of connected displays to graphics card
PTB-WARNING: outputs wrong. See ‘help DisplayOutputMappings’ for tips on how to resolve this problem.
PTB-WARNING: However, this probably doesn’t really matter on your setup for most purposes, as i can use OpenML
PTB-WARNING: timestamping instead, which is even more precise. Only few applications need beampos queries in this case.

PTB-INFO: OpenGL-Renderer is X.Org :: Radeon Pro WX 9100 (VEGA10, DRM 3.35.0, 5.4.0-70-lowlatency, LLVM 11.0.0) :: 4.6 (Compatibility Profile) Mesa 20.2.6
PTB-INFO: VBL startline = 1080 , VBL Endline = -1
PTB-INFO: Will try to use OS-Builtin OpenML sync control support for accurate Flip timestamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 8.333530 ms [119.997162 Hz]. (50 valid samples taken, stddev=0.000674 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.
The refresh interval reported by the operating system is 8.33333 ms.
Measured refresh interval, as reported by “GetFlipInterval” is 8.33353 ms. (nsamples = 0, stddev = 0.00000 ms)

ans =

 1

INFO: PTB’s Screen(‘Flip’, 10) command seems to have missed the requested stimulus presentation deadline
INFO: a total of 2 times out of a total of 605 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.

PTB missed 1 out of 600 stimulus presentation deadlines.
One missed deadline is ok and an artifact of the measurement.
PTB completed 0 stimulus presentations before the requested target time.
Have a look at the plots for more details…

2. Screen(‘Preference’,‘Verbosity’, 5); DatpixxGPUDitherpatternTest`

BitsPlusPlus: Could not find a Bits# config file under [/home/ziadhafed/.Psychtoolbox/BitsSharpConfig.txt]. Assuming a Bits+ device instead of a Bits# is connected.
BitsPlusPlus: Please create a config file under this name if you have a Bits# and want to use it as Bits# instead of as a Bits+.
BitsPlusPlus: The most simple way is to create an empty file. A more robust way is to store the name of the Bits# serial port
BitsPlusPlus: in the first line of the text file, e.g., COM5 [Windows], or /dev/ttyACM0 [Linux] or similar.
RandR: 1920x1080_120.00 (0x9d) 368.8MHz
h: width 1920 start 2072 end 2288 total 2656 skew 0
v: height 1080 start 1081 end 1084 total 1157

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.17 - Build date: Oct 31 2020).
PTB-INFO: OS support status: Linux 5.4.0-70-lowlatency 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 priority support, community membership and commercial services, please type
PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E DMI3 Registers] with class x00060000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E MM/Vt-d Configuration Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E RAS] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E IOAPIC] with class x00080020 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Ubox Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Ubox Registers] with class x00110100 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Ubox Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller] with class x000c0330 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH Thermal Subsystem] with class x00118000 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH CSME HECI #1] with class x00078000 …
PTB-DEBUG: Checking PCI device [Intel Corporation C600/X79 series chipset SATA RAID Controller] with class x00010400 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH PCI Express Root Port #5] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation X299 Chipset LPC/eSPI Controller] with class x00060100 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller] with class x00058000 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH HD Audio] with class x00040300 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller] with class x000c0500 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series/Z370 Chipset Family SPI Controller] with class x00000000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Ethernet Connection (2) I219-V] with class x00020000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCI Express Root Port A] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E VT-d] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E RAS Configuration Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E IOxAPIC Configuration Registers] with class x00080020 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCI Express Root Port A] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E VT-d] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E RAS Configuration Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E IOxAPIC Configuration Registers] with class x00080020 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LM Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMS Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMDP Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E DECS Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LM Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMS Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMDP Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LM Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMS Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMDP Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E DECS Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LM Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMS Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMDP Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Advanced Micro Devices, Inc. [AMD] (null)] with class x00060400 …
PTB-DEBUG: Checking PCI device [Advanced Micro Devices, Inc. [AMD] (null)] with class x00060400 …
PTB-DEBUG: Checking PCI device [Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XT [Radeon PRO WX 9100]] with class x00030000 …
PTB-INFO: Advanced Micro Devices, Inc. [AMD/ATI] - Vega 10 XT [Radeon PRO WX 9100] GPU found. Trying to establish low-level access…
PTB-DEBUG: Mapping GPU BAR address 0xc6000000 …
PTB-DEBUG: Mapping 0x80000 bytes…
PTB-INFO: Connected to Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XT [Radeon PRO WX 9100] GPU with DCE-12.0 display engine [6 heads].
PTB-INFO: Trying to detect screenId to display head mapping for screenid 0 …
… probing for video output 0 …
PsychOSKDGetLUTState(): Checking LUT and bias values on GPU for headId 0.
PsychOSKDGetLUTState(): Skipping headId 0 as it is disabled [EVERGREEN_GRPH_ENABLE].
PsychOSKDGetLUTState(): Checking LUT and bias values on GPU for headId 1.
PsychOSKDGetLUTState(): headId 1 [Offset 0x5ab4] uses old modesetting with REGAMMA_LUT [0].
PsychOSKDOffsets: Black 0 : White 65535.
0:0,0,0
1:0,0,0

etc etc

255:0,0,0
found GPU hardware headId 1 for output 0.
Done.
PTB-INFO: Trying to detect screenId to display head mapping for screenid 1 …
… probing for video output 0 …
PsychOSKDGetLUTState(): Checking LUT and bias values on GPU for headId 0.
PsychOSKDGetLUTState(): Skipping headId 0 as it is disabled [EVERGREEN_GRPH_ENABLE].
PsychOSKDGetLUTState(): Checking LUT and bias values on GPU for headId 1.
PsychOSKDGetLUTState(): headId 1 [Offset 0x5ab4] uses old modesetting with REGAMMA_LUT [0].
PsychOSKDOffsets: Black 0 : White 65535.
0:0,0,0
1:0,0,0

etc etc

255:0,0,0
found GPU hardware headId 1 for output 0.
Done.
PTB-INFO: Using old-style override-redirect (=1) setup path for onscreen window creation.
PTB-INFO: GLX Visual info depths is 24 bits
PTB-INFO: Running on Mesa version 20.2.6
PTB-INFO: This combo of X-Server and Mesa is considered safe for use under DRI3/Present.
PTB-INFO: Using GLEW version 2.1.0 for automatic detection of OpenGL extensions…
PTB-INFO: Using GLX_MESA_swap_control extension for control of vsync.
PTB-INFO: Disabling VRR Variable Refresh Rate mode for this fullscreen window on Mesa graphics driver.
PTB-INFO: INTEL_swap_event support for additional swap completion correctness checks enabled.
PTB-INFO: Fixed point precision integer framebuffer enabled.
PTB-INFO: System Frame buffer provides 8 bits for red channel.
PTB-INFO: System Frame buffer provides 8 bits for green channel.
PTB-INFO: System Frame buffer provides 8 bits for blue channel.
PTB-INFO: System frame buffer provides 8 bits for alpha channel, but effective alpha bits depends on imaging pipeline setup, if any.

OpenGL-Vendor / renderer / version are: X.Org - Radeon Pro WX 9100 (VEGA10, DRM 3.35.0, 5.4.0-70-lowlatency, LLVM 11.0.0) - 4.6 (Compatibility Profile) Mesa 20.2.6

I CUT HERE SOME STUFF OTHERWISE IT DOES NOT FIT

OpenGL-Extensions are: GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color

PTB-Info: Running on ‘The X.Org Foundation’ XServer, Vendor release 12009000.
RandR: 1920x1080_120.00 (0x9d) 368.8MHz
h: width 1920 start 2072 end 2288 total 2656 skew 0
v: height 1080 start 1081 end 1084 total 1157
RandR: 1920x1080_120.00 (0x9d) 368.8MHz
h: width 1920 start 2072 end 2288 total 2656 skew 0
v: height 1080 start 1081 end 1084 total 1157
PTB-INFO: Threshold Settings for successfull video refresh calibration are: maxStdDev = 0.200000 msecs, maxDeviation = 10.000000 %, minSamples = 50, maxDuration = 5.000000 secs.

PTB-WARNING: Querying rasterbeam-position doesn’t work on your setup! (Returns a constant value 0)
PTB-WARNING: This can happen if Psychtoolbox gets the mapping of connected displays to graphics card
PTB-WARNING: outputs wrong. See ‘help DisplayOutputMappings’ for tips on how to resolve this problem.
PTB-WARNING: However, this probably doesn’t really matter on your setup for most purposes, as i can use OpenML
PTB-WARNING: timestamping instead, which is even more precise. Only few applications need beampos queries in this case.

PTB-DEBUG: Output of all acquired samples of calibration run follows:
PTB-DEBUG: Sample 0: 0.000000
PTB-DEBUG: Sample 1: 0.008334
PTB-DEBUG: Sample 2: 0.008333
PTB-DEBUG: Sample 3: 0.008334
PTB-DEBUG: Sample 4: 0.008332
PTB-DEBUG: Sample 5: 0.008334
PTB-DEBUG: Sample 6: 0.008334
PTB-DEBUG: Sample 7: 0.008333
PTB-DEBUG: Sample 8: 0.008334
PTB-DEBUG: Sample 9: 0.008333
PTB-DEBUG: Sample 10: 0.008333
PTB-DEBUG: Sample 11: 0.008334
PTB-DEBUG: Sample 12: 0.008333
PTB-DEBUG: Sample 13: 0.008333
PTB-DEBUG: Sample 14: 0.008334
PTB-DEBUG: Sample 15: 0.008333
PTB-DEBUG: Sample 16: 0.008334
PTB-DEBUG: Sample 17: 0.008333
PTB-DEBUG: Sample 18: 0.008334
PTB-DEBUG: Sample 19: 0.008334
PTB-DEBUG: Sample 20: 0.008333
PTB-DEBUG: Sample 21: 0.008334
PTB-DEBUG: Sample 22: 0.008333
PTB-DEBUG: Sample 23: 0.008334
PTB-DEBUG: Sample 24: 0.008333
PTB-DEBUG: Sample 25: 0.008334
PTB-DEBUG: Sample 26: 0.008333
PTB-DEBUG: Sample 27: 0.008334
PTB-DEBUG: Sample 28: 0.008334
PTB-DEBUG: Sample 29: 0.008333
PTB-DEBUG: Sample 30: 0.008333
PTB-DEBUG: Sample 31: 0.008334
PTB-DEBUG: Sample 32: 0.008334
PTB-DEBUG: Sample 33: 0.008333
PTB-DEBUG: Sample 34: 0.008333
PTB-DEBUG: Sample 35: 0.008333
PTB-DEBUG: Sample 36: 0.008334
PTB-DEBUG: Sample 37: 0.008333
PTB-DEBUG: Sample 38: 0.008334
PTB-DEBUG: Sample 39: 0.008333
PTB-DEBUG: Sample 40: 0.008334
PTB-DEBUG: Sample 41: 0.008333
PTB-DEBUG: Sample 42: 0.008334
PTB-DEBUG: Sample 43: 0.008333
PTB-DEBUG: Sample 44: 0.008334
PTB-DEBUG: Sample 45: 0.008333
PTB-DEBUG: Sample 46: 0.008333
PTB-DEBUG: Sample 47: 0.008334
PTB-DEBUG: Sample 48: 0.008333
PTB-DEBUG: Sample 49: 0.008334
PTB-DEBUG: Sample 50: 0.008333
PTB-DEBUG: End of calibration data for this run…

PTB-INFO: OpenGL-Renderer is X.Org :: Radeon Pro WX 9100 (VEGA10, DRM 3.35.0, 5.4.0-70-lowlatency, LLVM 11.0.0) :: 4.6 (Compatibility Profile) Mesa 20.2.6
PTB-INFO: VBL startline = 1080 , VBL Endline = -1
PTB-INFO: Will try to use OS-Builtin OpenML sync control support for accurate Flip timestamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 8.333535 ms [119.997093 Hz]. (50 valid samples taken, stddev=0.000562 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: Using OpenGL GL_TEXTURE_RECTANGLE_EXT extension for efficient high-performance texture mapping…
PTB-INFO: Support for fast OffscreenWindows enabled.
PTB-INFO: SetDitherMode: Trying to disable digital display dithering on display head 1.
PTB-INFO: SetDitherMode: Dithering already disabled. Skipped.
PsychOSKDGetLUTState(): Checking LUT and bias values on GPU for headId 1.
PsychOSKDGetLUTState(): headId 1 [Offset 0x5ab4] uses old modesetting with REGAMMA_LUT [0].
PsychOSKDOffsets: Black 0 : White 65535.
0:0,0,0
1:0,0,0
etc etc
255:0,0,0
PTB-INFO: [screen 1, head 1] 1st LUT query rc = 1.
PsychOSKDLoadIdentityLUT(): Uploading identity LUT and bias values into GPU for headId 1.
PsychOSKDGetLUTState(): Checking LUT and bias values on GPU for headId 1.
PsychOSKDGetLUTState(): headId 1 [Offset 0x5ab4] uses old modesetting with REGAMMA_LUT [0].
PsychOSKDOffsets: Black 0 : White 65535.
0:0,0,0
etc etc
255:0,0,0
PTB-INFO: [screen 1, head 1] 2nd LUT query rc = 1.
PTB-INFO: GPU framebuffer passthrough setup II completed on screenid 1, head 1. Failed to establish identity passthrough!
PTB-INFO: Could not upload a perfect identity LUT. May still work due to hopefully disabled dithering, who knows?
LoadIdentityClut: Warning: GPU low-level setup code for pixel passthrough failed for some reason! Using fallback…

Ref 0: RGB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ref 1: RGB 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 → TROUBLE! WRONG VALUE

all wrong values

Ref 254: RGB 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 255 254 255 255 255 255 255 255 254 255 255 255 255 255 255 255 255 255 255 255 255 → TROUBLE! WRONG VALUE
Ref 255: RGB 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

WARNING: This session of your experiment was run by you with the setting Screen(‘Preference’, ‘SkipSyncTests’, 1).
WARNING: This means that some internal self-tests and calibrations were skipped. Your stimulus presentation timing
WARNING: may have been wrong. This is fine for development and debugging of your experiment, but for running the real
WARNING: study, please make sure to set Screen(‘Preference’, ‘SkipSyncTests’, 0) for maximum accuracy and reliability.

FAILURE! Many wrong pixels detected! Trouble for 254 separate levels!!!

3. xrandr --screen 1 --verbose
xrandr --screen 1 --verbose
Screen 1: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
DisplayPort-2 connected primary 1920x1080+0+0 (0x9d) normal (normal left inverted right x axis y axis) 597mm x 336mm
Identifier: 0x9b
Timestamp: 2822846
Subpixel: unknown
Gamma: 1.0:1.0:1.0
Brightness: 1.0
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
EDID:
00ffffffffffff005a1801043e000000
2a1d0104b53c22780265e5ad5047a626
125054bfef00d1c081803168317c4568
457c6168617c565e00a0a0a029503020
350055502100001e98fc006aa0a01e50
0820350055502100001a000000fc0044
415441506978783320525831000000fd
0030a5fafa42010a20202020202001ae
020311b14c0103051404131f12021190
3f40e7006aa0a0675008209804555021
00001a023a801871382d40582c450055
502100001ef03c00d051a0355060883a
0055502100001c000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
0000000000000000000000000000006d
GAMMA_LUT_SIZE: 4096
range: (0, -1)
DEGAMMA_LUT_SIZE: 4096
range: (0, -1)
GAMMA_LUT: 0
range: (0, 65535)
CTM: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 1
DEGAMMA_LUT: 0
range: (0, 65535)
TearFree: auto
supported: off, on, auto
vrr_capable: 0
range: (0, 1)
max bpc: 8
range: (8, 16)
underscan vborder: 0
range: (0, 128)
underscan hborder: 0
range: (0, 128)
underscan: off
supported: off, on, auto
scaling mode: None
supported: None, Full, Center, Full aspect
link-status: Good
supported: Good, Bad
CONNECTOR_ID: 67
supported: 67
non-desktop: 0
range: (0, 1)
1920x1080_120.00 (0x9d) 368.760MHz -HSync +VSync *current +preferred
h: width 1920 start 2072 end 2288 total 2656 skew 0 clock 138.84KHz
v: height 1080 start 1081 end 1084 total 1157 clock 120.00Hz
2560x1440 (0x9e) 241.500MHz +HSync +VSync +preferred
h: width 2560 start 2608 end 2640 total 2720 skew 0 clock 88.79KHz
v: height 1440 start 1443 end 1448 total 1481 clock 59.95Hz
2560x1440 (0x9f) 646.640MHz +HSync -VSync
h: width 2560 start 2568 end 2600 total 2666 skew 0 clock 242.55KHz
v: height 1440 start 1443 end 1448 total 1470 clock 165.00Hz
2560x1440 (0xa0) 592.000MHz +HSync -VSync
h: width 2560 start 2568 end 2600 total 2666 skew 0 clock 222.06KHz
v: height 1440 start 1465 end 1473 total 1543 clock 143.91Hz
1920x1200 (0xa1) 241.500MHz +HSync +VSync
h: width 1920 start 2608 end 2640 total 2720 skew 0 clock 88.79KHz
v: height 1200 start 1443 end 1448 total 1481 clock 59.95Hz
1920x1080 (0xa2) 297.000MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 135.00KHz
v: height 1080 start 1084 end 1089 total 1125 clock 120.00Hz
1920x1080 (0xa3) 296.703MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 134.87KHz
v: height 1080 start 1084 end 1089 total 1125 clock 119.88Hz
1920x1080 (0x52) 148.500MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.50KHz
v: height 1080 start 1084 end 1089 total 1125 clock 60.00Hz
1920x1080 (0xa4) 148.500MHz +HSync +VSync
h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 56.25KHz
v: height 1080 start 1084 end 1089 total 1125 clock 50.00Hz
1920x1080 (0x53) 148.352MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.43KHz
v: height 1080 start 1084 end 1089 total 1125 clock 59.94Hz
1600x1200 (0xa5) 241.500MHz +HSync +VSync
h: width 1600 start 2608 end 2640 total 2720 skew 0 clock 88.79KHz
v: height 1200 start 1443 end 1448 total 1481 clock 59.95Hz
1280x1440 (0xa6) 156.000MHz -HSync +VSync
h: width 1280 start 1376 end 1512 total 1744 skew 0 clock 89.45KHz
v: height 1440 start 1443 end 1453 total 1493 clock 59.91Hz
1680x1050 (0xa7) 241.500MHz +HSync +VSync
h: width 1680 start 2608 end 2640 total 2720 skew 0 clock 88.79KHz
v: height 1050 start 1443 end 1448 total 1481 clock 59.95Hz
1280x1024 (0x56) 135.000MHz +HSync +VSync
h: width 1280 start 1296 end 1440 total 1688 skew 0 clock 79.98KHz
v: height 1024 start 1025 end 1028 total 1066 clock 75.02Hz
1280x1024 (0x57) 108.000MHz +HSync +VSync
h: width 1280 start 1328 end 1440 total 1688 skew 0 clock 63.98KHz
v: height 1024 start 1025 end 1028 total 1066 clock 60.02Hz
1440x900 (0xa8) 241.500MHz +HSync +VSync
h: width 1440 start 2608 end 2640 total 2720 skew 0 clock 88.79KHz
v: height 900 start 1443 end 1448 total 1481 clock 59.95Hz
1280x800 (0xa9) 241.500MHz +HSync +VSync
h: width 1280 start 2608 end 2640 total 2720 skew 0 clock 88.79KHz
v: height 800 start 1443 end 1448 total 1481 clock 59.95Hz
1280x720 (0x5b) 74.250MHz +HSync +VSync
h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 45.00KHz
v: height 720 start 725 end 730 total 750 clock 60.00Hz
1280x720 (0xaa) 74.250MHz +HSync +VSync
h: width 1280 start 1720 end 1760 total 1980 skew 0 clock 37.50KHz
v: height 720 start 725 end 730 total 750 clock 50.00Hz
1280x720 (0x5c) 74.176MHz +HSync +VSync
h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 44.96KHz
v: height 720 start 725 end 730 total 750 clock 59.94Hz
1024x768 (0xab) 139.110MHz -HSync +VSync
h: width 1024 start 1104 end 1216 total 1408 skew 0 clock 98.80KHz
v: height 768 start 769 end 772 total 823 clock 120.05Hz
1024x768 (0xac) 113.274MHz -HSync +VSync
h: width 1024 start 1096 end 1208 total 1392 skew 0 clock 81.38KHz
v: height 768 start 769 end 772 total 814 clock 99.97Hz
1024x768 (0x5d) 78.750MHz +HSync +VSync
h: width 1024 start 1040 end 1136 total 1312 skew 0 clock 60.02KHz
v: height 768 start 769 end 772 total 800 clock 75.03Hz
1024x768 (0x5e) 75.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1328 skew 0 clock 56.48KHz
v: height 768 start 771 end 777 total 806 clock 70.07Hz
1024x768 (0x5f) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
832x624 (0x60) 57.284MHz -HSync -VSync
h: width 832 start 864 end 928 total 1152 skew 0 clock 49.73KHz
v: height 624 start 625 end 628 total 667 clock 74.55Hz
800x600 (0xad) 84.011MHz -HSync +VSync
h: width 800 start 856 end 944 total 1088 skew 0 clock 77.22KHz
v: height 600 start 601 end 604 total 643 clock 120.09Hz
800x600 (0xae) 68.175MHz -HSync +VSync
h: width 800 start 848 end 936 total 1072 skew 0 clock 63.60KHz
v: height 600 start 601 end 604 total 636 clock 99.99Hz
800x600 (0x61) 50.000MHz +HSync +VSync
h: width 800 start 856 end 976 total 1040 skew 0 clock 48.08KHz
v: height 600 start 637 end 643 total 666 clock 72.19Hz
800x600 (0x62) 49.500MHz +HSync +VSync
h: width 800 start 816 end 896 total 1056 skew 0 clock 46.88KHz
v: height 600 start 601 end 604 total 625 clock 75.00Hz
800x600 (0x63) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
800x600 (0x64) 36.000MHz +HSync +VSync
h: width 800 start 824 end 896 total 1024 skew 0 clock 35.16KHz
v: height 600 start 601 end 603 total 625 clock 56.25Hz
720x576 (0xaf) 27.000MHz -HSync -VSync
h: width 720 start 732 end 796 total 864 skew 0 clock 31.25KHz
v: height 576 start 581 end 586 total 625 clock 50.00Hz
720x480 (0xb0) 27.027MHz -HSync -VSync
h: width 720 start 736 end 798 total 858 skew 0 clock 31.50KHz
v: height 480 start 489 end 495 total 525 clock 60.00Hz
720x480 (0xb1) 27.000MHz -HSync -VSync
h: width 720 start 736 end 798 total 858 skew 0 clock 31.47KHz
v: height 480 start 489 end 495 total 525 clock 59.94Hz
640x480 (0xb2) 52.404MHz -HSync +VSync
h: width 640 start 680 end 744 total 848 skew 0 clock 61.80KHz
v: height 480 start 481 end 484 total 515 clock 119.99Hz
640x480 (0xb3) 43.162MHz -HSync +VSync
h: width 640 start 680 end 744 total 848 skew 0 clock 50.90KHz
v: height 480 start 481 end 484 total 509 clock 100.00Hz
640x480 (0x65) 31.500MHz -HSync -VSync
h: width 640 start 656 end 720 total 840 skew 0 clock 37.50KHz
v: height 480 start 481 end 484 total 500 clock 75.00Hz
640x480 (0x66) 31.500MHz -HSync -VSync
h: width 640 start 664 end 704 total 832 skew 0 clock 37.86KHz
v: height 480 start 489 end 492 total 520 clock 72.81Hz
640x480 (0x67) 30.240MHz -HSync -VSync
h: width 640 start 704 end 768 total 864 skew 0 clock 35.00KHz
v: height 480 start 483 end 486 total 525 clock 66.67Hz
640x480 (0x68) 25.200MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.50KHz
v: height 480 start 490 end 492 total 525 clock 60.00Hz
640x480 (0x69) 25.175MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
v: height 480 start 490 end 492 total 525 clock 59.94Hz
720x400 (0x6a) 28.320MHz -HSync +VSync
h: width 720 start 738 end 846 total 900 skew 0 clock 31.47KHz
v: height 400 start 412 end 414 total 449 clock 70.08Hz

For completeness, I attach also my screen configuration:

Auto generated xorg.conf - Created by Psychtoolbox XOrgConfCreator.

Section “ServerLayout”
Identifier “PTB-Hydra”
Screen 0 “Screen0” 0 0
Screen 1 “Screen1” RightOf “Screen0”
EndSection

Section “Monitor”
Identifier “DisplayPort-3”
EndSection

Section “Monitor”
Identifier “DisplayPort-2”
Modeline “1920x1080_120.00” 368.76 1920 2072 2288 2656 1080 1081 1084 1157 -HSync +Vsync
Option “PreferredMode” “1920x1080_120.00”
EndSection

Section “Device”
Identifier “Card0”
Driver “amdgpu”
Option “VariableRefresh” “off”
Option “DRI” “2”
Option “ZaphodHeads” “DisplayPort-3”
Option “Monitor-DisplayPort-3” “DisplayPort-3”
Screen 0
EndSection

Section “Device”
Identifier “Card1”
Driver “amdgpu”
Option “VariableRefresh” “off”
Option “DRI” “2”
Option “ZaphodHeads” “DisplayPort-2”
Option “Monitor-DisplayPort-2” “DisplayPort-2”
Screen 1
EndSection

Section “Screen”
Identifier “Screen0”
Device “Card0”
Monitor “DisplayPort-3”
EndSection

Section “Screen”
Identifier “Screen1”
Device “Card1”
Monitor “DisplayPort-2”
EndSection

You said that VBLSyncTest with usedpixx 2 worked with a 10 bpc framebuffer? Or did i misunderstand that?

Anyway, looking at your posted debug output for a long time, i see a couple of odd things:

Screen() misdetects both the type of display driver used, and the mapping of screens to display engines, so clearly our low-level code has some problems with Vega’s DCE-12 display engine. That throws off all diagnostics and workarounds and needs some code fix from myself. Edit: After some more comparison of driver source code, it turns out that the location of every single hardware register important for PTB has changed for Vega, so our low-level code won’t work at all on Vega without updates :frowning: .

The xorg.config file looks ok, except that it enforces DRI-2, which is not the default, but that should not matter for this problem. It also enforces a specific video mode, which seems to be non-native to your display monitors?

Have you tried what happens if you don’t enforce 1920x1080@120Hz? This is not the native resolution or refresh rate of the display as far as i can see? Generally it is not advisable to use non-native resolutions on flat panels, as it can cause spatial or temporal aliasing artifacts from the monitors own panel-fitter or temporal resampling.

Can you post the full output of DatapixxGPUDitherpatternTest? I need the exact pattern for all 256 reference values, not just the few first and last llines. It doesn’t look like dithering, more like some kind of truncation. Have you also tried replugging the cables, just to make sure we don’t have some bad cable issue or similar?

The EDID suggests that the Datapixx + monitor combo is 10 bpc capable. The display driver is setup to output at most 8 bpc content though.

As root user in a terminal (sudo su -), the output of the following commands could be useful:

cat /sys/kernel/debug/dri/0/DP-2/output_bpc
cat /sys/kernel/debug/dri/0/DP-2/link_settings

Replace DP-2 with DP-0, DP-1, DP-3, … and report the output for all that work. Some may just say “file not found”. One of these corresponds to your DisplayPort-2 connected Datapixx, probaby DP-2, but maybe there is an offset in numbering of 1 between the “DisplayPort-” names and the corresponding low-level “DP-” names.

The full output of dmesg | grep drm and dmesg | grep amd could also be useful.

[Work time spent so far: 3 hours - All paid priority support way more than exhausted].

Hi Mario,

this sounds like a bad news! So, before to continue with the suggested testing, I wanted to ask you if you think these PTB updates will be made soon or if at this stage it is better that we look for a replacement for our video card (and in this case, I would ask you which one would be the best option to minimize possible problems considering our setup, i.e. datapixx3 with display ports). We are also happy to help you out with further testing of this Vega card, if you think it is useful for PTB development. If you are based in Tuebingen we could also arrange a meeting and you could get the card for testing once we have the replacement.

Let me know what would you think it’s the best course of action and if I should run the tests you suggested in the previous message.

Thanks a lot!

Antimo

Please continue with the suggested testing steps, as soon as possible. The problems with Vega restrict diagnostic possibilities and possible workarounds for the moment, but your setup should ideally also work without the low-level access. All AMD cards more recent than Vega, e.g., the integrated graphics of AMD Ryzen processors, and the new AMD Navi, do not have those low-level tricks in PTB anyway, and they still should work fine, i just take a different approach.

Today is my first day of eastern vacation, so i’m planning to spend little time until after eastern with tedious and annoying tasks. Luckily working on Linux falls in the category of “usually not annoying” tasks, but we should try to get to the bottom of this before i get into an actual vacation mood and realize that there are nice books to read and an outside world with good spring weather and sunshine, or it will have to wait until sometime next week.

I will probably give it a try maybe sometime today or tomorrow and see how annoyed i feel about it. If it is just about adding some if (isDCE12()) statements and register definitions, it could be rather tedious but quick. Otherwise it might not be worth it to fix Vega at all, or at least take longer. Vega was supposed to be end of the line for these kind of PTB tricks anyway, as there is rarely a need for them on Linux nowadays, and from the fact that this was broken since over two years without anybody ever noticing, we can conclude that you might be the only Linux user of Vega - or the only one for which it could matter at all. There are extra expensive and over-priced Apple macOS machines for which the current complete lack of Vega low-level support is much much worse, but we advise against use of Apple iToys since many years, so that doesn’t really count and is broken for many other Apple induced reasons out of my control.

Unless we know what the cause of the Datapixx3 problems is, i can’t give recommendations, as this is not neccessarily a problem with the Vega card. The switch from DVI to DisplayPort and from “only 8 bpc input” to “10 bpc input possible” changes things a lot, and not only opens up interesting new opportunities, but a whole bag of new complexity and potential trouble.

At the moment, potential culprits for your problems could be bad cables, bad connection, an unsuitable video mode, some weird interactions between bit-depth negotiation caused by your specific setup… – Unfortunately DisplayPort and HDMI are complex and fragile beasts with many failure modes, compared to old VGA or DVI.

Thanks. Unfortunately i also don’t have a suitable PC with a strong enough power supply at home to plug in a Vega. Direct access to a suitable machine or a Datapixx3 setup could become necessary if this goes badly. But lets first see where continuing with the diagnostic steps from my previous message brings us. I am based in Tuebingen, and in non-Pandemic times this would be quite straightforward. But atm. i’m far behind in various paid PTB work projects, and not super-keen on hanging out at the CIN and mingling with random people in labs or on public transport.