8000 Priority(1) after Screen('OpenWindow') causes Screen('OpenMovie') crash · Issue #857 · Psychtoolbox-3/Psychtoolbox-3 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Priority(1) after Screen('OpenWindow') causes Screen('OpenMovie') crash #857

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
dcnieho opened this issue Jan 28, 2025 · 11 comments
Closed

Comments

@dcnieho
Copy link
Member
dcnieho commented Jan 28, 2025

Describe the bug
I had crashes when running code of mine that played videos. I hunted it down to an issue that involved when Priority(1) is called relative to OpenWindow. This bug crashes matlab (almost always without a stack trace, but when i got one, it was deep inside GStreamer, don't remember the exact issue)

To Reproduce
Steps to reproduce the behavior:

  1. open SimpleMovieDemo.m
  2. around line 40, add Priority(1) after Screen('OpenWindow', ...
  3. Run -> crash.
  4. If you add the Priority(1) call before Screen('OpenWindow', ..., there is no crash.

Desktop (please complete the following information):

  • OS: Windows 10 (Server 2022 to be exact, but thats basically Windows 10).
  • Runtime: Matlab R2022a & R2023b
  • Hardware NVidia 2080Ti
  • Version Psychtoolbox 3.0.19
  • GStreamer 1.22.5
@kleinerm
Copy link

Psychtoolbox 3.0.19 is no longer supported. On 3.0.20.1 with GStreamer 1.22 + Windows 11 + Octave I couldn't reproduce this with Intel graphics, don't have access to my Win10 machine with other graphics cards or Matlab atm.

@dcnieho
Copy link
Member Author
dcnieho commented Feb 1, 2025

I'm not in the lab next week, but will test again the week after, with latest PTB

@dcnieho
Copy link
Member Author
dcnieho commented Feb 7, 2025

I just tested with the latest 3.0.20.3, with MATLAB R2024b. The Windows build is 20348.2849 (21H2), still Windows server 2022 (so basically Windows 10). I get the same crash/hang in MATLAB, sadly again no traceback as Windows just closes the application after being non-responsive. I also tested on Octave 7.3, as that i think is the version you use? Anyway, same problem for me there too...
GStreamer 1.22.5. I am not sure how to provide further useful debug information, if you wish to pursue this.

@kleinerm
Copy link
kleinerm commented Feb 7, 2025

Octave 7.3 is the only supported version atm., as later versions have bugs in their MinGW64 build/runtime system which prevent compiling of complex mex files like Screen. But this means it is not a Matlab problem.

Does the same happen on other Windows machines or with the latest GStreamer versions? The only thing I can try is to see if it happens on my only Windows-10 machine, once I'm back at my flat.

I can't think of a reason why switching to above normal priority would cause a crash though, especially after OpenMovie was already successful.

@dcnieho
Copy link
Member Author
dcnieho commented Feb 14, 2025

It also happens with latest GStreamer (1.24.12). I got a stacktrace this time:

MATLAB Log File: C:\Users\ADMINI~1\AppData\Local\Temp\matlab_crash_dump.6140-1

------------------------------------------------
MATLAB Log File
------------------------------------------------ 


--------------------------------------------------------------------------------
                 abort() detected at 2025-02-14 08:35:29 +0100
--------------------------------------------------------------------------------

Configuration:
  Crash Decoding           : Disabled - No sandbox or build area path
  Crash Mode               : continue (default)
  Default Encoding         : UTF-8
  Deployed                 : false
  Graphics Driver          : Uninitialized hardware 
  Graphics card 1          : NVIDIA ( 0x10de ) NVIDIA GeForce RTX 2080 Ti Version 32.0.15.6614 (2024-11-6)
  Interpreter 0            : Executing request: 4D61746C6162526571756573742E637070
  Java Version             : Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
  MATLAB Architecture      : win64
  MATLAB Entitlement ID    : 862612
  MATLAB Root              : C:\Program Files\MATLAB\R2024b
  MATLAB Version           : 24.2.0.2773142 (R2024b) Update 2
  OpenGL                   : hardware
  Operating System         : Microsoft Windows Server 2022 Standard
  Process ID               : 6140
  Processor ID             : x86 Fam
8000
ily 6 Model 85 Stepping 4, GenuineIntel
  Session Key              : 697a3e9a-2b21-4a1b-8955-f6412ef1e281
  Window System            : Version 10.0 (Build 20348)

Fault Count: 1


Abnormal termination:
abort()

Current Thread: 'MCR 0 interpreter thread' id 6904

Register State (captured):
  RAX = 00007ff975c782c8  RBX = 00007ff975c782c8
  RCX = 00000067a3bf4e70  RDX = 00007ff975c21920
  RSP = 00000067a3bf4db0  RBP = 00000067a3bf5b40
  RSI = 0000000000000000  RDI = 00007ff975c782c8
 
   R8 = 0000000000000003   R9 = 00000067a3bf4d28
  R10 = 0000000000000014  R11 = 0000000000000000
  R12 = 00000067a3bf5a48  R13 = 0000000000000000
  R14 = 00007ff975c681f8  R15 = 00000067a3bf5480
 
  RIP = 00007ff975b621ca  EFL = 00000202
 
   CS = 0033   FS = 0053   GS = 002b

Stack Trace (captured):
[  0] 0x00007ff975b5b563 C:\Program Files\MATLAB\R2024b\bin\win64\libmwfl.dll+00046435 foundation::core::diag::thread_context::unspecified_bool+00000051
[  1] 0x00007ff975b59998 C:\Program Files\MATLAB\R2024b\bin\win64\libmwfl.dll+00039320 foundation::core::diag::stacktrace_base::capture+00000024
[  2] 0x00007ff975b5de0f C:\Program Files\MATLAB\R2024b\bin\win64\libmwfl.dll+00056847 foundation::core::diag::symbols::getSymbolAddress+00009903
[  3] 0x00007ff975b60cb7 C:\Program Files\MATLAB\R2024b\bin\win64\libmwfl.dll+00068791 foundation::core::diag::is_terminate_message_enabled+00000519
[  4] 0x00007ff96e385778   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00808824 mnFullExitFcn+00042264
[  5] 0x00007ff96e384eed   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00806637 mnFullExitFcn+00040077
[  6] 0x00007ff96e3809b5   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00788917 mnFullExitFcn+00022357
[  7] 0x00007ff96e382b49   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00797513 mnFullExitFcn+00030953
[  8] 0x00007ff9c088bb04                   C:\Windows\System32\ucrtbase.dll+00506628 raise+00000484
[  9] 0x00007ff9c088cad1                   C:\Windows\System32\ucrtbase.dll+00510673 abort+00000049
[ 10] 0x00007ff930e65a3a    C:\gstreamer\1.0\msvc_x86_64\bin\glib-2.0-0.dll+00547386 g_abort+00000026
[ 11] 0x00007ff930e2cd90    C:\gstreamer\1.0\msvc_x86_64\bin\glib-2.0-0.dll+00314768 g_log_structured_array+00000272
[ 12] 0x00007ff930e2bc36    C:\gstreamer\1.0\msvc_x86_64\bin\glib-2.0-0.dll+00310326 g_log_default_handler+00000310
[ 13] 0x00007ff930e2dd36    C:\gstreamer\1.0\msvc_x86_64\bin\glib-2.0-0.dll+00318774 g_logv+00000758
[ 14] 0x00007ff930e2c348    C:\gstreamer\1.0\msvc_x86_64\bin\glib-2.0-0.dll+00312136 g_log+00000024
[ 15] 0x00007ff930e5427d    C:\gstreamer\1.0\msvc_x86_64\bin\glib-2.0-0.dll+00475773 g_thread_new+00000189
[ 16] 0x00007ff922d76707 C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstmediafoundation.dll+00091911
[ 17] 0x00007ff9309bf443 C:\gstreamer\1.0\msvc_x86_64\bin\gobject-2.0-0.dll+00062531 g_object_new+00000387
[ 18] 0x00007ff9309bfc04 C:\gstreamer\1.0\msvc_x86_64\bin\gobject-2.0-0.dll+00064516 g_object_new_valist+00001140
[ 19] 0x00007ff9309bf2f2 C:\gstreamer\1.0\msvc_x86_64\bin\gobject-2.0-0.dll+00062194 g_object_new+00000050
[ 20] 0x00007ff922d78d08 C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstmediafoundation.dll+00101640
[ 21] 0x00007ff922d80095 C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstmediafoundation.dll+00131221
[ 22] 0x00007ff922d845ce C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstmediafoundation.dll+00148942
[ 23] 0x00007ff922d6e6d5 C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstmediafoundation.dll+00059093
[ 24] 0x00007ff922d87260 C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstmediafoundation.dll+00160352
[ 25] 0x00007ff930a93479 C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00472185 gst_plugin_load_file+00000697
[ 26] 0x00007ff930a90338 C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00459576 gst_pipeline_use_clock+00005480
[ 27] 0x00007ff930aa1c7f C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00531583 gst_registry_scan_path+00003087
[ 28] 0x00007ff930aa1a40 C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00531008 gst_registry_scan_path+00002512
[ 29] 0x00007ff930aa121f C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00528927 gst_registry_scan_path+00000431
[ 30] 0x00007ff930aa28d9 C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00534745 gst_update_registry+00002985
[ 31] 0x00007ff930a9ee12 C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00519698 gst_query_writable_structure+00000930
[ 32] 0x00007ff930aa1d53 C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00531795 gst_update_registry+00000035
[ 33] 0x00007ff930a2cc47 C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00052295 gst_version_string+00001671
[ 34] 0x00007ff930e32528    C:\gstreamer\1.0\msvc_x86_64\bin\glib-2.0-0.dll+00337192 g_option_context_parse+00002200
[ 35] 0x00007ff930a2c3cf C:\gstreamer\1.0\msvc_x86_64\bin\gstreamer-1.0-0.dll+00050127 gst_init_check+00000223
[ 36] 0x00007ff93113a28f     C:\utils\Psychtoolbox\PsychBasic\Screen.mexw64+00369295 mexFunction+00294095
[ 37] 0x00007ff93112ed5b     C:\utils\Psychtoolbox\PsychBasic\Screen.mexw64+00322907 mexFunction+00247707
[ 38] 0x00007ff9311660fd     C:\utils\Psychtoolbox\PsychBasic\Screen.mexw64+00549117 mexFunction+00473917
[ 39] 0x00007ff9310f29a5     C:\utils\Psychtoolbox\PsychBasic\Screen.mexw64+00076197 mexFunction+00000997
[ 40] 0x00007ff96d996149 C:\Program Files\MATLAB\R2024b\bin\win64\libmex.dll+00680265 mexfile::Inspector::needs_upgrade+00023801
[ 41] 0x00007ff96d999152 C:\Program Files\MATLAB\R2024b\bin\win64\libmex.dll+00692562 MexRetrieveVersion+00009074
[ 42] 0x00007ff96d9992c7 C:\Program Files\MATLAB\R2024b\bin\win64\libmex.dll+00692935 MexRetrieveVersion+00009447
[ 43] 0x00007ff96d9994b8 C:\Program Files\MATLAB\R2024b\bin\win64\libmex.dll+00693432 MexRetrieveVersion+00009944
[ 44] 0x00007ff96d97b6b8 C:\Program Files\MATLAB\R2024b\bin\win64\libmex.dll+00571064 mexUnlock+00018024
[ 45] 0x00007ff96e152a48 C:\Program Files\MATLAB\R2024b\bin\win64\m_dispatcher.dll+01190472 Mfh_file::dispatch_file_common+00000152
[ 46] 0x00007ff96e151909 C:\Program Files\MATLAB\R2024b\bin\win64\m_dispatcher.dll+01186057 Mfh_error::lookup+00012425
[ 47] 0x00007ff96e15299d C:\Program Files\MATLAB\R2024b\bin\win64\m_dispatcher.dll+01190301 Mfh_file::dispatch+00000045
[ 48] 0x00007ff96d45753d C:\Program Files\MATLAB\R2024b\bin\win64\libmwlxemainservices.dll+00423229 coretypes::array::Array<MathWorks::String::detail::StringArrayVariant,MathWorks::String::detail::StringArrayPolicy,coretypes::array::ArrayTypeList<MathWorks::String::detail::StringArrayVariant> >::resize+00351613
[ 49] 0x00007ff96d46639e C:\Program Files\MATLAB\R2024b\bin\win64\libmwlxemainservices.dll+00484254 coretypes::array::Array<MathWorks::String::detail::StringArrayVariant,MathWorks::String::detail::StringArrayPolicy,coretypes::array::ArrayTypeList<MathWorks::String::detail::StringArrayVariant> >::resize+00412638
[ 50] 0x00007ff968f90fe6 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+06361062 MathWorks::lxe::ReadOnlyXvaluePtr::operator=+00006966
[ 51] 0x00007ff968f92e2b C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+06368811 MathWorks::lxe::ReadOnlyXvaluePtr::operator=+00014715
[ 52] 0x00007ff968ebe7e8 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+05498856 MathWorks::lxe::XvalueFactory::XvalueDeleter::XvalueDeleter+00225192
[ 53] 0x00007ff968eddbc9 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+05626825 MathWorks::lxe::XvalueFactory::XvalueDeleter::XvalueDeleter+00353161
[ 54] 0x00007ff968c75f76 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+03104630 MathWorks::lxe::LXEConstants::IsIfElse+00547062
[ 55] 0x00007ff968c7a162 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+03121506 MathWorks::lxe::LXEConstants::IsY+00012018
[ 56] 0x00007ff968c77983 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+03111299 MathWorks::lxe::LXEConstants::IsY+00001811
[ 57] 0x00007ff968c7b265 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+03125861 MathWorks::lxe::LXEConstants::IsY+00016373
[ 58] 0x00007ff968c7b513 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+03126547 MathWorks::lxe::LXEConstants::IsY+00017059
[ 59] 0x00007ff968c7ae7e C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+03124862 MathWorks::lxe::LXEConstants::IsY+00015374
[ 60] 0x00007ff968c770c6 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+03109062 MathWorks::lxe::LxeTypes::GetTypeXvalueOf+00000262
[ 61] 0x00007ff968d73e67 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+04144743 MathWorks::lxe::SetEngineImplUnlinkFlagForAllCallsOnStack+00049303
[ 62] 0x00007ff968d779e5 C:\Program Files\MATLAB\R2024b\bin\win64\m_lxe.dll+04159973 MathWorks::lxe::SetEngineImplUnlinkFlagForAllCallsOnStack+00064533
[ 63] 0x00007ff96d559816 C:\Program Files\MATLAB\R2024b\bin\win64\libmwlxemainservices.dll+01480726 FeatureTestObservableWorkspace+00212358
[ 64] 0x00007ff96d49b0f6 C:\Program Files\MATLAB\R2024b\bin\win64\libmwlxemainservices.dll+00700662 mwboost::archive::detail::pointer_oserializer<mwboost::archive::xml_oarchive,MathWorks::lxe::PreLineExecutionEvent>::save_object_ptr+00074918
[ 65] 0x00007ff96d49cbf4 C:\Program Files\MATLAB\R2024b\bin\win64\libmwlxemainservices.dll+00707572 mwboost::archive::detail::pointer_oserializer<mwboost::archive::xml_oarchive,MathWorks::lxe::PreLineExecutionEvent>::save_object_ptr+00081828
[ 66] 0x00007ff96d51cb77 C:\Program Files\MATLAB\R2024b\bin\win64\libmwlxemainservices.dll+01231735 mwboost::archive::detail::oserializer<mwboost::archive::text_oarchive,MathWorks::MatlabComponents::ComponentIdentifier>::save_object_data+00327655
[ 67] 0x00007ff96d51e977 C:\Program Files\MATLAB\R2024b\bin\win64\libmwlxemainservices.dll+01239415 mwboost::archive::detail::oserializer<mwboost::archive::text_oarchive,MathWorks::MatlabComponents::ComponentIdentifier>::save_object_data+00335335
[ 68] 0x00007ff96d51dc60 C:\Program Files\MATLAB\R2024b\bin\win64\libmwlxemainservices.dll+01236064 mwboost::archive::detail::oserializer<mwboost::archive::text_oarchive,MathWorks::MatlabComponents::ComponentIdentifier>::save_object_data+00331984
[ 69] 0x00007ff96da69ca9 C:\Program Files\MATLAB\R2024b\bin\win64\libmwbridge.dll+00302249 mnGetPrompt+00013993
[ 70] 0x00007ff96e4bb676   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00505462 iqm::Iqm::instance+00002358
[ 71] 0x00007ff96e514ed2   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00872146 iqm::UserEvalPlugin::execute+00001314
[ 72] 0x00007ff96e4e229f   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00664223 iqm::Iqm::setupIqmFcnPtrs+00110911
[ 73] 0x00007ff96e4ee32d   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00713517 iqm::Iqm::setupIqmFcnPtrs+00160205
[ 74] 0x00007ff96e4aea0f   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00453135 iqm::Iqm::create+00010543
[ 75] 0x00007ff96da39546 C:\Program Files\MATLAB\R2024b\bin\win64\libmwbridge.dll+00103750 ioReadLine+00000406
[ 76] 0x00007ff96da39375 C:\Program Files\MATLAB\R2024b\bin\win64\libmwbridge.dll+00103285 ioReadLine+00000165
[ 77] 0x00007ff96da6a070 C:\Program Files\MATLAB\R2024b\bin\win64\libmwbridge.dll+00303216 mnGetCommandLineBuffer+00000288
[ 78] 0x00007ff96da6a517 C:\Program Files\MATLAB\R2024b\bin\win64\libmwbridge.dll+00304407 mnParser+00000487
[ 79] 0x00007ff96e32d19f   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00446879 mcr_initialize_main+00016975
[ 80] 0x00007ff96e2d91de   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00102878 mcrFunctionSignature::set_signature+00080062
[ 81] 0x00007ff96e2f63c2   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00222146 mwboost::archive::codecvt_null<wchar_t>::`default constructor closure'+00017266
[ 82] 0x00007ff96e50fe2a   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00851498 iqm::PackagedTaskPlugin::execute+00000074
[ 83] 0x00007ff96e4e229f   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00664223 iqm::Iqm::setupIqmFcnPtrs+00110911
[ 84] 0x00007ff96e4af32a   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00455466 iqm::Iqm::create+00012874
[ 85] 0x00007ff96e4af811   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00456721 iqm::Iqm::create+00014129
[ 86] 0x00007ff96e4aec9d   C:\Program Files\MATLAB\R2024b\bin\win64\iqm.dll+00453789 iqm::Iqm::create+00011197
[ 87] 0x00007ff96e311b7c   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00334716 mcrInstantiationError::operator=+00010652
[ 88] 0x00007ff96e31263f   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00337471 mcrInstantiationError::operator=+00013407
[ 89] 0x00007ff96e30fc41   C:\Program Files\MATLAB\R2024b\bin\win64\mcr.dll+00326721 mcrInstantiationError::operator=+00002657
[ 90] 0x00007ff99ef08fba C:\Program Files\MATLAB\R2024b\bin\win64\mwboost_thread-vc143-mt-x64-1_81.dll+00036794 mwboost::detail::win32::handle_manager::swap+00000650
[ 91] 0x00007ff9c0836b4c                   C:\Windows\System32\ucrtbase.dll+00158540 recalloc+00000092
[ 92] 0x00007ff9c0d54cb0                   C:\Windows\System32\KERNEL32.DLL+00085168 BaseThreadInitThunk+00000016
[ 93] 0x00007ff9c2e7edcb                      C:\Windows\SYSTEM32\ntdll.dll+00519627 RtlUserThreadStart+00000043


This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.

@kleinerm
Copy link

Should be fixed in the just built Screen mex files in my master branch, if you want to test.

@dcnieho
Copy link
Member Author
dcnieho commented Feb 25, 2025

Thanks for the investigation and fix! A working workaround for me has been to do this: dcnieho/Titta@f19f62b

I am not sure if that makes sense given the results of your investigations, but it prevents the hang or crash on my machines.

8000
@dcnieho
Copy link
Member Author
dcnieho commented Feb 25, 2025

I will test next week, when i am near the machines again

@kleinerm
Copy link
kleinerm commented Feb 25, 2025 via email

@dcnieho
Copy link
Member Author
dcnieho commented Feb 25, 2025

Ok, i see. I guess i am getting lucky with the way i have been using it so far. I'll keep my workaround in place for now to reduce crashing/hanging chances and keep things running on older PTB that do not include your fix. Glad you have something more robust. Guess it'll have to stay this way anyway, unless it gets fixed in GLib at some point and you can detect whether a fixed version is used or not (sounds like a hassle). Thanks again! I'll test when i can and you'll hear back.

@kleinerm
Copy link

I don't know if you are getting lucky, or if that workaround or fix would be perfectly sufficient and what I've implemented now is a bit of overkill. I just have no way to be sure that the simpler fix would be sufficient, so this is trading a bit of deterministic timing on MS-Windows for "peace of mind", and not having to spend multiple days on debugging again in the future.

kleinerm added a commit that referenced this issue Mar 21, 2025
PTB Beta update 3.0.20.4 "Sleight of Hand"

[This Psychtoolbox release was sponsored by Mathworks under the year 2024/2025
contract for significant enhancements, sponsoring the OpenXR hand tracking
support as major new feature.](https://www.mathworks.com/solutions/neuroscience.html)

### Compatibility changes wrt. Psychtoolbox 3.0.20.3:

- None.

### Highlights:

- OpenXR articulated handtracking and fingertracking support for VR applications.
  Sponsored by Mathworks.

### All:

- We now have OpenXR hand tracking support via our OpenXR driver, utilizing
  the XR_EXT_hand_tracking OpenXR extension! This works on Linux and Windows
  with any articulated hand tracking device that has suitable runtime support.
  Tested with Monado Mercury computer vision hand tracker and UltraLeap
  Leapmotion v2 vision based hand tracker on Linux Ubuntu 22.04/24.04 and on
  MS-Windows 10, both with Monado and SteamVR, Octave and Matlab.

  Thanks to Mathworks for sponsoring this work!

- PsychLicenseHandling(): Refine auto download and install for LM client libs.

- Various other smaller refinements, bug fixes and documentation updates.

### Linux:

- Psychtoolbox was built and tested against Matlab R2024a and Octave 5.2 and later.

- Our OpenXR VR/AR/MR/XR driver can now use articulated hand trackers to track
  a users hand and finger movements and configuration. Tested with a Ultraleap
  Leapmotion v2 controller under SteamVR and Monado runtimes with a real VR HMD
  and a simulated HMD, as well as under Monado with Monado's Open source Mercury
  hand tracker on a simulated NorthStar HMD and with a Luxonis W-Pro smart camera.

### Windows:

- Psychtoolbox was built and tested against Matlab R2024a and Octave 7.3.

- Screen(): Improve/Fix per-pixel alpha for onscreen window transparency, now also
  on Matlab, not just Octave!

  This used to work on WindowsXP, but got broken by some later version of
  MS-Windows. This change should fix it on Windows 10+, at least on the tested
  gpu's from Intel, AMD and NVidia.

- Screen(): Whenever GStreamer is used, disallow MMCSS scheduling. This is a
  workaround for a GStreamer bug present since at least GStreamer 1.22. If `Priority(1)`
  was called in a script before `Screen('OpenMovie')` to enable Realtime scheduling,
  it would end with a crash during movie playback. See GitHub issue #857 reported
  by Diederick Niehorster for the background info.

- Our OpenXR VR/AR/MR/XR driver can now use articulated hand trackers to track
  a users hand and finger movements and configuration. Tested with a Ultraleap
  Leapmotion v2 controller under SteamVR runtime with a real VR HMD.

### macOS:

- Psychtoolbox was built and tested against native Matlab R2024a and against native
  Octave 9.4 from HomeBrew, on macOS 13.7.1 Ventura for Intel Macs, and on macOS 14.5
  Sonoma for Apple Silicon Macs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
0