wheaney / breezy-desktop

XR virtual workspace library for Linux
GNU General Public License v3.0
226 stars 22 forks source link

Add GNOME 44/43 support #27

Closed daemon-byte closed 2 months ago

daemon-byte commented 3 months ago

Hi,

I was wondering if there is a way to enable 3dof for viture when connected to a linux gnome computer? If not is it in the roadmap?

wheaney commented 3 months ago

That's exactly the intent of Breezy GNOME: to create a GNOME desktop view with 3DoF. Unless you mean something else when you say enable 3dof.

daemon-byte commented 3 months ago

It's intent or working functionality? I know this is an early project so I don't want to go on a goose chase for missing functions and I'm happy to wait and test. Right now though I didn't see a difference between before and after breezy. Except for a small ui called breezy desktop is now available where none of the options are interactive.

wheaney commented 3 months ago

Working functionality. But it won't do anything if the "XR Effect" switch is off in the application you found. Is that switch disabled? Or it switches and then switches back off when you click it? Can you send me a screenshot if it's fully disabled?

daemon-byte commented 3 months ago

ok so that's the issue. Yes the switch is off and when I turn it on then it goes back to off again. image

wheaney commented 3 months ago

Can you attach your logs in ~/.local/state/breezy_gnome/logs/gjs, the driver log at ~/.xreal_driver_log, and the output of journalctl --grep breezy.

daemon-byte commented 3 months ago

there was no gjs journal.log xreal_driver.log

daemon-byte commented 2 months ago

I got a bit distracted but I noticed this today. I have gnome 43.9 and wayland so guess that's where my problem lies

image

wheaney commented 2 months ago

Ah, ok. GNOME 44/43 support is on my roadmap, one of my next items actually. I'll leave this open just so you can track that work.

wheaney commented 2 months ago

@daemon-byte I've got an initial backport working with GNOME 43.9 in nested mode. Can you try it out?

  1. Download the setup script
  2. Set the execute flag on the script: chmod +x ~/Downloads/breezy_gnome_setup
  3. Run it with the tag for this version: ~/Downloads/breezy_gnome_setup --tag gnome-44-max-alpha-2
daemon-byte commented 2 months ago

The extension now turns on and I can toggle all the options. However, they don't seem to do anything. Any change I made does nothing. The screen doesn't fix, distance and size, widescreen, curved etc.

rob@robert-Laptop-16:~$ cat ~/.local/state/breezy_gnome/logs/gjs/2024-07-11.log 
breezydesktop: Gnome-Shell 43.9 / gjs 1.74.2 (17402) / wayland
breezydesktop: Found monitor DP-3, vendor CVT, product VITURE, serial 0x88888800, connector DP-3, index 1
breezydesktop: Found monitor eDP-1, vendor BOE, product 0x0bc9, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop: Found monitor DP-3, vendor CVT, product VITURE, serial 0x88888800, connector DP-3, index 1
breezydesktop: Found monitor eDP-1, vendor BOE, product 0x0bc9, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop: Disabling SBS mode due to disabling effect
breezydesktop: Found monitor DP-3, vendor CVT, product VITURE, serial 0x88888800, connector DP-3, index 1
breezydesktop: Found monitor eDP-1, vendor BOE, product 0x0bc9, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop: Disabling SBS mode due to disabling effect
breezydesktop: Found monitor DP-3, vendor CVT, product VITURE, serial 0x88888800, connector DP-3, index 1
breezydesktop: Found monitor eDP-1, vendor BOE, product 0x0bc9, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
Waiting for glasses
Driver has been re-enabled
Output mode has been changed to 'external_only'
Failed to get hardwareId, retrying in 5 seconds
Using hardware id 464a3397e289c6cf3dc032405bed1e709b597f04f650ab2bb6f519ff13a1329d
Feature productivity_basic granted.
Starting up XR driver
Waiting for glasses
Breezy desktop has been enabled
Driver has been re-enabled
Output mode has been changed to 'external_only'
Failed to get hardwareId, retrying in 5 seconds
Using hardware id 6891adc4df64b05521ad1fcf41c626209cb70d37dd3f5a5e9d546656e1d26413
Feature productivity_basic granted.
Starting up XR driver
Waiting for glasses
Breezy desktop has been enabled
Driver has been re-enabled
Output mode has been changed to 'external_only'
Failed to get hardwareId, retrying in 5 seconds
Using hardware id 464a3397e289c6cf3dc032405bed1e709b597f04f650ab2bb6f519ff13a1329d
Feature productivity_basic granted.
Starting up XR driver
Waiting for glasses
Breezy desktop has been enabled
Driver has been re-enabled
Output mode has been changed to 'external_only'
Failed to get hardwareId, retrying in 5 seconds
Using hardware id 6891adc4df64b05521ad1fcf41c626209cb70d37dd3f5a5e9d546656e1d26413
Feature productivity_basic granted.
Starting up XR driver
Waiting for glasses
Breezy desktop has been enabled
Driver has been re-enabled
Output mode has been changed to 'external_only'
Failed to get hardwareId, retrying in 5 seconds
Using hardware id 6891adc4df64b05521ad1fcf41c626209cb70d37dd3f5a5e9d546656e1d26413
Feature productivity_basic granted.
Starting up XR driver
Breezy desktop has been enabled
Waiting for glasses
Driver has been re-enabled
Output mode has been changed to 'external_only'
Failed to get hardwareId, retrying in 5 seconds
Using hardware id 6891adc4df64b05521ad1fcf41c626209cb70d37dd3f5a5e9d546656e1d26413
Feature productivity_basic granted.
Starting up XR driver
Breezy desktop has been enabled
Waiting for glasses
Driver has been re-enabled
Output mode has been changed to 'external_only'
Using hardware id 5a30e9ddf88bde28ccc874b1700f5eb434e955539c945cabbb842ce340607301
Feature productivity_basic granted.
Starting up XR driver
Breezy desktop has been enabled
Waiting for glasses
Found device with vendor ID 0x35ca and product ID 0x101d
Driver detached sucessfully from kernel.0
Driver detached sucessfully from kernel.0
IPC enabled
Waiting on device calibration
Feature productivity_basic granted.
Device connected, redirecting input to external_only...
Device calibration complete
Centering screen
Driver has been re-enabled
Output mode has been changed to 'external_only'
Failed to get hardwareId, retrying in 5 seconds
Using hardware id 6891adc4df64b05521ad1fcf41c626209cb70d37dd3f5a5e9d546656e1d26413
Feature productivity_basic granted.
Starting up XR driver
Breezy desktop has been enabled
Waiting for glasses
Found device with vendor ID 0x35ca and product ID 0x101d
Found device with vendor ID 0x35ca and product ID 0x101d
Driver detached sucessfully from kernel.0
Driver detached sucessfully from kernel.0
IPC enabled
Waiting on device calibration
Feature productivity_basic granted.
Device connected, redirecting input to external_only...
Device calibration complete
Centering screen
wheaney commented 2 months ago

Ah, I should have you enable debug logging: dconf write /com/xronlinux/BreezyDesktop/debug true

Try again and post your logs.

daemon-byte commented 2 months ago

I am not sure it matters now. I installed the tool and restarted my laptop. I was then able to open breezy and turn on the options but it did nothing. I then shutdown because it's late here. But since I saw your email I rebooted to try with the logs and this time it worked. I don't know if it's because I restarted breezy after having turned it on or if booting up with the glasses already plugged in did it but it works now. Everything but widescreen but I suspect that might be my glasses. When I turn that on it goes all double images and toggling it off doesn't fix it. I have to toggle it off and then unplug and replug the glasses. Otherwise, it works and works well. Thanks for all the support and I will happily keep testing it.

wheaney commented 2 months ago

Are you glasses plugged directly into your computer, or through an adapter? Can you take a photo of what you see in the glasses when you do widescreen?

daemon-byte commented 2 months ago

So I tried to screenshot the issue but the screenshot was of a big desktop, exactly as it should be. I don't know how I can show you what I see since I can only put the camera on 1 screen at a time. It seems though it's random. Sometimes it worked exactly as it should and sometimes it messed up. No obvious reason for it. The only thing that definitely happens every time is if you have widescreen toggled on, unplug and replug the toggle stays on but the widescreen isn't. You have to toggle it off and on again.

If there's a way I can show you the glasses I'm happy to learn. Also if you still want those logs I can turn them on. Either way it will have to wait for tomorrow as I need some sleep :)

wheaney commented 2 months ago

Oh, so both eyes are seeing the screen as they should, but they're not "lined up" exactly, making it appear doubled? Or is the issue that the extension isn't rendering two/stereo images, it's just rendering one image and splitting it between the two?

What do you have your display distance set to?

daemon-byte commented 2 months ago

That's what I think is happening yes. If I have a window open I can see it on the right and a shadow of the window on the left. And the whole thing is thus very blurry.

I have size and distance both set to 1. I tailed the 2 log files while I enabled widescreen and it went weird

Found device with vendor ID 0x35ca and product ID 0x101d
Driver detached sucessfully from kernel.0
Driver detached sucessfully from kernel.0
IPC enabled
Waiting on device calibration
Feature productivity_basic granted.
Device connected, redirecting input to external_only...
Device calibration complete
Centering screen
Error setting requested SBS mode
SBS mode has been enabled
breezydesktop:  DEBUG - MonitorManager _on_monitors_change
breezydesktop: Found monitor DP-3, vendor CVT, product VITURE, serial 0x88888800, connector DP-3, index 1
breezydesktop: Found monitor eDP-1, vendor BOE, product 0x0bc9, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop:  DEBUG - BreezyDesktopExtension _setup
breezydesktop:  DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop:  DEBUG - BreezyDesktopExtension _find_supported_monitor - Identified supported monitor: DP-3
breezydesktop:  DEBUG - MonitorManager checkOptimalMode: DP-3
breezydesktop:  DEBUG - monitormanager.js performOptimalModeCheck for DP-3
breezydesktop:  DEBUG - BreezyDesktopExtension _setup - driver running but async monitor action needed
breezydesktop:  DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [16,[[["DP-3","CVT","VITURE","0x88888800"],[["1920x1080@120.000",1920,1080,120,1,[1,2],{}],["1920x1080@119.880",1920,1080,119.87999725341797,1,[1,2],{}],["1920x1080@90.000",1920,1080,90,1,[1,2],{}],["1920x1080@89.926",1920,1080,89.92565155029297,1,[1,2],{}],["1920x1080@60.000",1920,1080,60,1,[1,2],{"is-current":{},"is-preferred":{}}],["1920x1080@59.963",1920,1080,59.96284484863281,1,[1,2],{}],["1920x1080@59.940",1920,1080,59.94020080566406,1,[1,2],{}],["1680x1050@89.937",1680,1050,89.93714141845703,1,[1,2],{}],["1680x1050@60.000",1680,1050,60,1,[1,2],{}],["1680x1050@59.954",1680,1050,59.95425033569336,1,[1,2],{}],["1600x900@119.948",1600,900,119.94825744628906,1,[1],{}],["1600x900@89.882",1600,900,89.88216400146484,1,[1],{}],["1600x900@59.946",1600,900,59.946022033691406,1,[1],{}],["1440x1080@119.925",1440,1080,119.92491912841797,1,[1,2],{}],["1440x1080@89.926",1440,1080,89.92565155029297,1,[1,2],{}],["1440x1080@59.989",1440,1080,59.98883819580078,1,[1,2],{}],["1440x900@119.939",1440,900,119.93866729736328,1,[1],{}],["1440x900@89.827",1440,900,89.82671356201172,1,[1],{}],["1440x900@60.000",1440,900,60,1,[1],{}],["1440x900@59.887",1440,900,59.88744354248047,1,[1],{}],["1400x1050@119.897",1400,1050,119.89696502685547,1,[1],{}],["1400x1050@89.922",1400,1050,89.92228698730469,1,[1],{}],["1400x1050@59.978",1400,1050,59.97844314575195,1,[1],{}],["1368x768@119.831",1368,768,119.83133697509766,1,[1],{}],["1368x768@89.743",1368,768,89.74282836914062,1,[1],{}],["1368x768@59.882",1368,768,59.882049560546875,1,[1],{}],["1280x1024@60.000",1280,1024,60,1,[1],{}],["1280x960@119.885",1280,960,119.88526153564453,1,[1],{}],["1280x960@89.911",1280,960,89.91097259521484,1,[1],{}],["1280x960@59.939",1280,960,59.939048767089844,1,[1],{}],["1280x800@119.846",1280,800,119.84611511230469,1,[1],{}],["1280x800@89.887",1280,800,89.88741302490234,1,[1],{}],["1280x800@60.000",1280,800,60,1,[1],{}],["1280x800@59.810",1280,800,59.810325622558594,1,[1],{}],["1280x720@119.858",1280,720,119.85794830322266,1,[1],{}],["1280x720@89.804",1280,720,89.80436706542969,1,[1],{}],["1280x720@60.000",1280,720,60,1,[1],{}],["1280x720@59.855",1280,720,59.855125427246094,1,[1],{}],["1152x864@119.773",1152,864,119.77281188964844,1,[1],{}],["1152x864@89.804",1152,864,89.80391693115234,1,[1],{}],["1152x864@59.959",1152,864,59.95863342285156,1,[1],{}],["1024x768@119.804",1024,768,119.80427551269531,1,[1],{}],["1024x768@89.724",1024,768,89.7242660522461,1,[1],{}],["1024x768@60.000",1024,768,60,1,[1],{}],["1024x768@59.920",1024,768,59.92013168334961,1,[1],{}],["800x600@119.854",800,600,119.853515625,1,[1],{}],["800x600@89.850",800,600,89.85027313232422,1,[1],{}],["800x600@60.000",800,600,60,1,[1],{}],["800x600@59.861",800,600,59.86140441894531,1,[1],{}]],{"is-underscanning":{},"is-builtin":{},"display-name":{}}],[["eDP-1","BOE","0x0bc9","0x00000000"],[["2560x1600@165.000",2560,1600,165,1,[1,2,3],{"is-current":{},"is-preferred":{}}],["2560x1600@60.002",2560,1600,60.001670837402344,1,[1,2,3],{}],["1920x1200@165.000",1920,1200,165,1,[1,2],{}],["1920x1080@165.000",1920,1080,165,1,[1,2],{}],["1680x1050@165.000",1680,1050,165,1,[1,2],{}],["1600x1200@165.000",1600,1200,165,1,[1,2],{}],["1440x900@165.000",1440,900,165,1,[1],{}],["1280x1024@165.000",1280,1024,165,1,[1],{}],["1280x800@165.000",1280,800,165,1,[1],{}],["1280x720@165.000",1280,720,165,1,[1],{}],["1024x768@165.000",1024,768,165,1,[1],{}],["800x600@165.000",800,600,165,1,[1],{}]],{"is-underscanning":{},"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["eDP-1","BOE","0x0bc9","0x00000000"]],{}],[2560,0,1,0,false,[["DP-3","CVT","VITURE","0x88888800"]],{}]],{"renderer":{},"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop:  DEBUG - monitormanager.js performOptimalModeCheck updatedLogicalMonitors: [[0,0,1,0,false,[["eDP-1","2560x1600@165.000",{}]]],[2560,0,1,0,true,[["DP-3","1920x1080@120.000",{}]]]]
breezydesktop:  DEBUG - MonitorManager _on_monitors_change
breezydesktop: Switched to optimal mode for monitor DP-3
breezydesktop: Found monitor DP-3, vendor CVT, product VITURE, serial 0x88888800, connector DP-3, index 1
breezydesktop: Found monitor eDP-1, vendor BOE, product 0x0bc9, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop:  DEBUG - BreezyDesktopExtension _setup
breezydesktop:  DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop:  DEBUG - BreezyDesktopExtension _find_supported_monitor - Identified supported monitor: DP-3
breezydesktop:  DEBUG - MonitorManager checkOptimalMode: DP-3
breezydesktop:  DEBUG - MonitorManager checkOptimalMode: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop:  DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop:  DEBUG - CursorManager enable
breezydesktop:  DEBUG - CursorManager _enableCloningMouse
breezydesktop:  DEBUG - CursorManager startCloning
breezydesktop:  DEBUG - CursorManager _startCloningMouse
breezydesktop:  DEBUG - inhibit_unfocus
breezydesktop:  DEBUG - BreezyDesktopExtension _update_follow_threshold 15
breezydesktop:  DEBUG - BreezyDesktopExtension _update_widescreen_mode_from_settings true
breezydesktop:  DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop:  DEBUG - BreezyDesktopExtension _update_widescreen_mode_from_settings false
breezydesktop:  DEBUG - effect.widescreen_mode_state already matched setting
breezydesktop:  DEBUG - BreezyDesktopExtension _update_widescreen_mode_from_settings true
breezydesktop:  DEBUG - MonitorManager _on_monitors_change
breezydesktop: Found monitor eDP-1, vendor BOE, product 0x0bc9, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop:  DEBUG - BreezyDesktopExtension _setup
breezydesktop: Reset triggered, disabling XR effect
breezydesktop:  DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop:  DEBUG - CursorManager disable
breezydesktop:  DEBUG - CursorManager _disableCloningMouse
breezydesktop:  DEBUG - CursorManager _stopCloningMouse
breezydesktop:  DEBUG - uninhibit_unfocus
breezydesktop:  DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop:  DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop:  DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop:  DEBUG - MonitorManager _on_monitors_change
breezydesktop: Found monitor DP-3, vendor CVT, product VITURE, serial 0x88888800, connector DP-3, index 1
breezydesktop: Found monitor eDP-1, vendor BOE, product 0x0bc9, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop:  DEBUG - BreezyDesktopExtension _setup
breezydesktop:  DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop:  DEBUG - BreezyDesktopExtension _find_supported_monitor - Identified supported monitor: DP-3
breezydesktop:  DEBUG - BreezyDesktopExtension _setup - driver not running, starting poller
breezydesktop:  DEBUG - BreezyDesktopExtension _poll_for_ready
wheaney commented 2 months ago

Alright, I see what happened. You enabled the widescreen toggle, it sent a request to the driver, the driver asked the glasses to change but it failed:

Error setting requested SBS mode

The extension doesn't double-check that the requested state change never happened, so it would continue with widescreen/sbs mode. I will add a check that makes sure the change actually happened, and if not it toggles the widescreen switch back to off.

But that doesn't explain what you saw. If widescreen mode was on but your glasses were no in SBS mode, you'd see two screens in each eye (a total of 4 screens if you saw the whole image). What your describing sounds like the opposite: the glasses switched to SBS mode but the extension thought it was off, so the extension is displaying 1 screen that's being cut in half to display to two lenses.

daemon-byte commented 2 months ago

If there's something I can do to help figure out which it is?

wheaney commented 2 months ago

Does that same thing happen every time you try to enable widescreen? Can you verify whether you're on the latest firmware? Last thing I'd have you check is switching to SBS mode via the glasses, to do that, long-press the small/mode button. The extension is built to detect when the sbs mode state changes on the glasses and handle it just the same as if you had toggled it in the settings, except in your case it should actually be in SBS mode so I'm curious if it will work.

wheaney commented 2 months ago

@daemon-byte See above.

daemon-byte commented 2 months ago

So if I push and hold the button widescreen comes on. Pushing and holding again doesn't seem to turn it off though. But it does turn on just fine. Unlike using the trigger. When I did the trigger it went wrong again and then at that point holding the button just fixes it back to a regular display as if I didn't have breezy on at all. Then holding it again turns it to 2 duplicate screens side by side.

Then I checked the firmware and apparently there was a new one 2 days ago so I installed that which proved to be a bad idea. Now breezy claims to be working but it doesn't and when I push and hold the button the screen turns into a coloured barcode like a smashed screen. Not really surprised from a company that does a browser update but doesn't support linux or does a web design which breaks the page if the url doesn't have a trailing / :D I'll keep poking and see if I can get it back to where it was

wheaney commented 2 months ago

Oh shoot, I hope that firmware issue is something that can be reversed. Which VITURE model are you using?

So if I'm understanding correctly, widescreen worked when it was triggered through the glasses? But interactions with the toggle switch remained broken?

daemon-byte commented 2 months ago

After retriggering a firmware update many times I eventually got it to downgrade 1 and upgrade again.

That was the way it was working. I don't know if the upgrade has changed anything or if it's just randomness at play. Now both the button and toggle seem to fail and they fail consistently at the moment.

It's the viture pro xr.

daemon-byte commented 2 months ago

Definitely random. It worked with the toggle and broke again with the button

wheaney commented 2 months ago

Unfortunately, this seems more like an issue with the hardware. Are you using an adapter or plugged right into USB-C?

daemon-byte commented 2 months ago

I figured it might be. Working sometimes is enough for now. It seems the glasses are getting a lot of firmware updates so I guess they rushed it out. It's plugged directly into the laptop.

wheaney commented 2 months ago

Closing this out since the gnome-44-max release is available.