JingYenLoh / trigger6

Linux Driver for MCT Trigger 6 display adapter
GNU General Public License v2.0
3 stars 2 forks source link

Feedback / improvement #1

Open MatthieuLeboeuf opened 1 week ago

MatthieuLeboeuf commented 1 week ago

Hello !

I’d like to share some information regarding the process of compiling the driver and report the bugs I’ve encountered, in the hopes that it will be helpful.

I am using the StarTech USB32HDES dongle (Rev 2).

Firstly, I had to make some modifications for the compilation to succeed : https://github.com/MatthieuLeboeuf/trigger6/commit/5086fcc787e74d694a956a2e97151f6f8949474d

(I'm not an expert in drivers, but these changes appear to make the driver work.)

Afterward, when I connect the dongle, the display performance slows down, which is expected. However, moving windows is very slow / doesn’t work.

Moreover, when the dongle is disconnected, the window manager crashes, and the session is logged out, but disconnecting only the HDMI works without issue.

I hope this information helps ! 👍

JingYenLoh commented 6 days ago

Hey! Great to hear from someone!

Firstly, I had to make some modifications for the compilation to succeed : MatthieuLeboeuf@5086fcc

That's my bad, I didn't fully check through the last commit and it wasn't fully working :sweat: Thanks for reporting!

Afterward, when I connect the dongle, the display performance slows down, which is expected. However, moving windows is very slow / doesn’t work.

Yep, I'm currently copying over data synchronously, which is one of the causes of poor performance. I was supposed to chunk them and dispatch it to the workqueues, which should help a bit.

Moreover, when the dongle is disconnected, the window manager crashes, and the session is logged out,

AFAIK, that is a behavior of most display managers, which were not designed with USB hot pluggable displays in mind, so they crash when the device is disconnected. I'm not sure what can be done on the driver side.

but disconnecting only the HDMI works without issue.

Ahh, I wasn't aware of that, sounds like a workaround.

I hope this information helps ! 👍

Thanks! It's very helpful, you've given me motivation to revisit this project now that I know someone is using it :)

benjaminpotter commented 6 days ago

Hello,

I recently purchased the JCD543 display adapter which implements the Trigger6 protocol. I have spent this morning looking into driver support for the MCT T6 protocol. I stumbled upon this driver through a related issue. What a strange coincidence that this issue was opened so recently. @JingYenLoh, I am glad you are considering maintaining this project. I am finding it useful.

With the changes by MatthieuLeboeuf/trigger6@5086fcc787e74d694a956a2e97151f6f8949474d, the driver works on my machine running Asahi Fedora 40 Linux. Thank you for making this public!

If you need some help with the maintenance of this driver, I would be happy to lend a hand. I will be using it daily to support my home display.

JingYenLoh commented 5 days ago

the driver works on my machine running Asahi Fedora 40 Linux.

That's great to hear! That means it works on other architectures properly, which is something I couldn't test previously :)

If you need some help with the maintenance of this driver, I would be happy to lend a hand.

I'll try to improve the performance when I have time (unfortunately no guarantees on timeline), I would definitely appreciate testing on your platform!

benjaminpotter commented 5 days ago

Although performance is one problem, there are a few other things that I have noticed. For example, the driver only detects a display before a login session is started. This may be an issue with the sway window manager, but I digress. Of course, this is in addition to crashes when the USB is disconnected during an active session first documented by Matthieu. In my case, this requires a full reboot.

I am interested in contributing fixes for these issues, and others. Please let me know if you would consider accepting PRs to this repository.

JingYenLoh commented 3 days ago

Yes, please feel free to PR! I've just added a GPLv2 license as well, to allow for the possibility of upstreaming this into the Linux kernel when the driver is in better shape.