26 September 2022, 21:15 | #1 |
Registered User
Join Date: Nov 2009
Location: Top of the world
Posts: 161
|
Severe slowdown when enabling Direct on Serial port.
I enabled this after suggestion from another thread. The result was that previously snappy Workbench felt like wading trough mud. When opening drawers it uses several seconds to paint backdorp, which was instant before enabling direct.
So I tested with timed boot to WB desktop compleatly loaded with background-pic. Without serial-direct it boots in 24 seconds. With serial-direct it boots in 109 seconds. I repeated this test several times, switching direct on and off. Tried both restarting and quitting WinUAE between tests. Result is consequently the same every time. I must note that no access to serial port was made from amiga side during tests, I just flipped the direct switch in config. MuForce and friends where running, but not outputting anything. Attached are UAE logs from boot with direct enabled and WinUAE-config. |
26 September 2022, 22:28 | #2 |
Registered User
Join Date: Nov 2009
Location: Top of the world
Posts: 161
|
Well, the problem went away when I switched form emulated null-modem cable to raw tcp connection.
Edit: Quick question. Should I disable RTS/CTS in Winuae-Serial settings when using tcp serial port. Or should it be kept in sync with serial preferences in WB for some reason. Last edited by hceline; 26 September 2022 at 22:32. Reason: RTS/CTS question |
27 September 2022, 04:40 | #3 |
Registered User
Join Date: May 2021
Location: Los Angeles / USA
Posts: 135
|
Newer serial connections use this, before was flow control. RTS/CTS should be good.
Chris |
10 October 2022, 19:17 | #4 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,507
|
If emulated port is connected to physical port, direct might cause host side serial port write buffer to fill too much if Amiga side writes lots data to serial port quickly. This would stall WinUAE because it expects win32 serial API writes to finish immediately.
Direct = force 115200 (if smaller rate configured) and Amiga side sees the port as almost "immediate", any write finishes instantly. If you only use serial port to log some data, more optimal way is to use -serlog command line parameter (with -log) which outputs all serial data to log window. |
23 December 2022, 18:15 | #5 |
Registered User
Join Date: Nov 2009
Location: Top of the world
Posts: 161
|
This is excellent, it does practically the same as the function I requested in the other thread about hooking RawPutChar(). Thank you so much for pointing it out.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Serial port problem | amiga_amigo | support.WinUAE | 29 | 06 March 2021 10:19 |
Serial Port? | EugeneNine | support.FS-UAE | 5 | 23 February 2017 01:09 |
Debugging over Serial-Port | sigma63 | support.WinUAE | 1 | 14 March 2016 19:02 |
Serial port, parallel port, and pipe device mount errors | Samurai_Crow | support.FS-UAE | 4 | 13 March 2014 00:04 |
Direct serial port read/write | demolition | Coders. Asm / Hardware | 6 | 23 March 2013 03:59 |
|
|