PSVR2 on FW16

PlayStation recently released an app to use a PSVR2 on your PC, has anyone here tried to use it yet? I’m running Linux and it’s supposed to run on windows so I haven’t tried it yet.

I’ll update this thread when I have some time to try it out myself

I have installed the PS App and Steam VR, but haven’t had the time to actually plug it in to test. Hoping to do that tonight, but… we’ll see if I have time. I do not have the PS PC adapter, and haven’t found it in stock anywhere, available to order.

2 Likes

Please let us know!

Sorry for the delay.

Finally got a chance to hook up the PSVR2 to the FW16. I used the USB-C adapter in port #1. Unfortunately, as I expected, it did not provide sufficient power to power the headset. Though, positively, both controllers connected without issue and even seemingly successfully received firmware updates over bluetooth as the first step in setting up via the PSVR2 app.

I believe the PSVR2 headset expects a VirtualLink connection, which a bit of research many months ago led me to believe that it not only serves up a DisplayPort signal over USB-C (not to be confused with the DisplayPort Alt-Mode that is far more often sent over USB-C, I believe) and USB data connection, but it also carries a 12V power connection from the host (in this case the laptop). While the Framework 16 is more than capable of receiving 12V over USB-C via USB PD, I don’t believe that it is capable of generating it; and in case I’m wrong, which is easily likely, I don’t think VirtualLink follows the USB PD negotiation protocol, to request 12V, and instead just expects it… Though, admittedly, I have not looked into it.

I still have not found a source of Sony’s VR2 PC adapter in stock anywhere, so I doubt I’ll have a chance to do much more testing soon.

1 Like

The PSVR2 does apparently use DP Alt Mode (which, in addition to display signals, allows for USB 2.0 communication and PD power delivery), so likely the issue is on the laptop side with not supporting 12V output (which may or may not be possible, depends on if the hardware is capable of that power output alongside the PD controller supporting 12V out). Others can apparently plug the headset straight into their laptops (Lenovo Legion laptops seem to have a high success rate on this front).

I stand corrected! Good to know that it uses DP Alt-Mode.

I know there were a handful of desktop graphics cards that support VirtualLink natively, and I assume there are laptops that also support it. I hope a list is being compiled somewhere that shows which laptops support PSVR2 (and any other VirtualLink headsets).

The Verge has an article reviewing the PSVR2 PC adapter.

Similarly to his Framework 16 review, he has experienced some issues (TL;DR: Primarily with the controllers losing tracking) and is not endorsing this as ready for the general public.

However, I bring it up because he specifically mentions the FW 16:

Now, I admit that doesn’t entirely sound like a Bluetooth issue, and I could be wrong about that, but here’s why I suspect it might be:

  • I have no issues with the Quest 3’s controllers in the same space, so I don’t think my room or lighting is interfering with tracking.
  • I had no issues with the PSVR 2’s controllers with a Framework 16 laptop and its internal Bluetooth chip (though I did have other issues with that setup).
  • When I added the TP-Link adapter to that laptop, my controller started getting stuck.
  • The virtual controller gets stuck even if it stays within the field of view of the headset’s cameras, which should help with positional tracking.
  • It was always the same controller getting stuck — until I unpaired them and re-paired them. Now it’s the other one. It feels like it’s having trouble fully supporting two at once, which had long been a complaint with standardized Bluetooth wireless tech.

Emphasis mine

Multiple BestBuys in my area seem to be restocking PSVR2 PC adapters this week/tomorrow. I didn’t see that until after I ordered through Amazon, for one coming mid next week.

Dang, you got my hopes up.

No stock until next Saturday in my area.

I wonder if there is any way to get this working with a software update in the future or if the hardware simply cannot support it. Because I really wanted to use my PSVR2 with this laptop without having to use the breakout box that needs external power itself. I do have the adapter box but it’s so much cleaner to just have a one cable solution just like with the console plus playing beat saber on my PSVR2 away from power outlets wirelessly with a laptop in my backpack would be cool.

Finally got the adapter, but I haven’t had time to get it hooked up to test yet.

As I understand it, the PSVR2 needs USB data signals, DP (possibly DP alt-mode?), and 12v power (I think the PSVR2 power adapter is 5.1V at 3.1A or something close to 16W). The Framework can do the USB and DP, but currently, it doesn’t provide the 12v power. I have not looked at how complex the Framework DP adapter is, nor have I looked into one of the 12v compatible USB PD boards, but I’d think that if it didn’t need to fit entirely into the expansion card slot, and instead stuck out a bit like the ethernet card, having a Framework slot compatible card should be doable.

Thanks for the reply! I just hooked up the adapter and tried to get through the setup for the PSVR2, but when it gets to the point where I’m supposed to put on the headset, all I see is the Steam void field, while the laptop display shows what I should be seeing. The Steam VR Monitor says, “Make sure your VR headset is plugged into your primary graphics card.” Right now, I have it plugged into the DP 1.4 module in the rear-most slot on the left-hand side, since that’s the only one that seems to work without giving errors. However, if I open a game like Beat Saber, it will use the internal APU GPU, and then the game shows up and plays in the headset, albeit a little choppy because it’s using both the APU and the dGPU.

When I try to open the PSVR2 room setup, it shows up on the screen but not in the headset. The headset just displays the SteamVR environment running on the APU GPU, with a message saying the PSVR2 room setup is loading, even though it appears as loaded on the laptop display. I looked in Task Manager, and the PSVR2 room setup is running on the dGPU, while the headset is showing the VR Steam room that is running on the primary APU GPU.

What I can’t seem to figure out is how to get everything to run on the dGPU outputting through that module. I have to assume it’s possible since the laptop screen itself can display full-screen games running on the dGPU without any issues. For some reason, though, the VR headset won’t show anything that runs on the dGPU, only things running on the APU GPU (or internal GPU), if that makes sense.

I’ve ordered a USB-C to DP 1.4 cable from Amazon that I’m going to try plugging into the back of the unit. I’m hoping that the USB-C directly from the dGPU will somehow tell the PSVR2 adapter to output everything to the VR headset through the dGPU and stop using the low-powered internal GPU.

The odd thing is that even if I go into Windows Graphics Settings and add each SteamVR app, selecting “High Performance GPU” by hand, when the apps open, they seem to pick either internal or dGPU settings different from what I tried to force. It’s a really strange problem, and I’m almost sure it’s just Sony not testing on a system with more than one GPU, causing the issue. If I can find a way to get everything to render on the dGPU going to the main display, I have to assume the output through the DP module on the side should also do the same, making the headset work properly without the VR apps getting split between two different GPUs.

It’s a really strange problem because the headset will show the Steam VR menus and let me navigate them while the actual laptop screen displays what I want to see in the VR headset. Meanwhile, SteamVR says that I need to plug the headset directly into the primary GPU because it’s somehow running on the dGPU while the VR headset appears to be connected to the internal GPU.

Okay, I’m just being confusing at this point. I’ll let you guys know if the USB-C to DP cable plugged directly into the dGPU solves the problem when it arrives! :hugs:

Here is a link to the cable I ordered (Amazon Affiliate)
https://amzn.to/3ARzl3z

TL;DR - SteamVR runs on internal GPU and shows up fine in PSVR2 connected to Sony Adapter with DP cable plugged into DP 1.4 module attached to the rear most module slot on left hand side of Framework 16 laptop. I did try other module slots but only the one in the very back on left and right side worked without giving “bandwidth errors” and not displaying anything. However, when I run the PSVR2 environment setup it runs on the dGPU (GPU 1) and doesn’t show up in the headset and SteamVR monitor shows “You must plug VR headset into primary GPU (GPU 0)”. However, BeatSaber will run on the internal GPU and work in the headset but it’s choppy and even if I try to force it to dGPU (GPU 1) in windows settings it still runs on the internal GPU. But, anything that runs on dGPU will not show up in the headset, only on the laptop screen. I ordered a USB-DP1.4 cable and when it gets here from Amazon I’ll try using the discrete GPU USB-C port on the back of the laptop to see if that solves the issues, or at least shows the dGPU (GPU 1) apps in the headset, but I suspect it won’t show the GPU 0 stuff (vice versa). I need to find a way to make sure everything VR related runs on dGPU (GPU 1) and can output to the headset and not just the laptop screen. It’s odd that the laptop screen can display things running on both GPU 0 and GPU 1 but screen attached to the DP module cannot, it can only show things running on GPU 0 for some reason (at least with the headset)

I just wanted to mention another behavior I noticed while trying to get the PSVR2 to work, connected from the Sony PSVR2 adapter to the DP 1.4 module in the left rear-most slot of the Framework 16 laptop. If the laptop goes to sleep and you wake it up, the laptop screen will be black and will not display anything. The computer isn’t hung because I can see the Caps Lock indicator when I press it, and I can even log in and hear sounds. It seems like it’s trying to output video only to the DP-connected VR headset when it resumes from sleep.

I tried hard rebooting the laptop, but it showed a black screen once again after booting into Windows. I had to physically disconnect the DP cable from the port and hard reboot the system for it to display Windows video on the laptop monitor again. Then, when I plug in the DP cable from the PSVR2 adapter, it detects it, and I’m back to where I was before: the laptop screen shows everything from both GPUs, but the VR headset connected to the DP port will only display GPU 0 apps/games, with nothing that outputs to the dGPU. It’s really bizarre behavior.

Is there any way to ensure the laptop screen always displays something, even when something is connected to DP from a cold boot or resume from sleep? I don’t want to have to disconnect the DP cable from the laptop every time I boot or resume from sleep, if at all possible.

Again, when that Amazon USB-C to DP cable arrives in a day or two, I’ll give it a try and see if it resolves all these issues. If it does, I’ll update everyone, because if people can just pick up a $15 cable and it solves all these problems, that’s probably the best approach. I haven’t tried connecting the DP module to another screen yet to see if Windows shows up on the external monitor and just doesn’t output to the laptop screen anymore if it detects an external screen on boot or wake-up from sleep. But I’ve never seen this behavior before on another machine.

It’s entirely possible this whole problem stems from Sony’s adapter, as it seems to have a lot of issues due to limited testing on various PCs. It was even a pain to get working correctly on my gaming PC in my bedroom, which only has a single GPU with no internal APU.

Oh, I also tried unplugging the DP cable entirely and the USB cable from the Sony adapter before waking it up from sleep, and the primary screen is still sadly black. I have to power cycle the machine to get the primary display back on the laptop since nothing else works once it gets into this state, which is super bizarre. So, if you run into a problem with an external screen attached where the laptop screen refuses to turn back on when resuming from sleep, just unplug the DP, hard reboot the machine, and then plug the secondary display back in again, and it should work, I would reckon. This is most likely some kind of Windows bug regarding having two different GPUs in the same system.

But if you would like me to try anything else, let me know. I’m up for testing anything! :+1:

Do you have the Framework DisplayPort adapter?

Have you tried plugging it into the USB-C port on the back of the dGPU?

My understanding is that there is a physical/electrical mix switch for the built in display to switch between iGPU and dGPU, but it only supports the screen, not the ports on the sides. They always get routed through the iGPU, even if rendered on the dGPU.

Still haven’t had a chance to hook my own things up. Hoping to this weekend.

1 Like

I couldn’t try connecting the Sony PSVR2 adapter directly to the dGPU since I didn’t have a USB-C to DisplayPort 1.4 cable. I also confirmed that the USB-C port on the back of the RX 7000 series card in the Framework 16 will never support the PSVR2 directly without the Sony powered adapter since it requires a technology called VirtualLink that apparently only existed on the AMD Radeon RX 6000 series and the Nvidia GeForce RTX 20xx series cards and they never implemented it again so sadly the dGPU being an RX 7000 series won’t ever support it directly.

I ordered this USB-C to DP 1.4 cable from Amazon (https://amzn.to/4dQBM4Y) yesterday for ~$15 and it just showed up today so I could test connecting the DP port on the Sony PSVR2 adapter directly to the USB-C dGPU port on the back of the Framework 16 laptop to see if it resolved my issues.

I’m happy to report that this USB-C to DP 1.4 cable resolves 100% of the VR issues that I was fighting with yesterday! Now when I open the PSVR2 setup app to configure your VR Room Environment you can see everything through the headset and complete setup correctly. I can also confirm that now every game starts on the dGPU and displays properly in the VR headset along with the Steam Environment and the Sony PSVR2 Room Setup app which didn’t happen before since the room setup would try to run on the dGPU and not be visible through the headset while SteamVR would run on iGPU and be visible through the headset and games would run on iGPU making them visible through the VR headset but they would run super slow. Now everything opens on the dGPU that is VR related and you never see that pesky warning on Steam VR Monitor saying you’re VR headset isn’t connect to the right GPU anymore.

I’m also happy to report that the other big issue I had was resolved where the Framework 16 laptop screen would be blank when you resume from sleep or boot/reboot the Laptop while the PSVR2 Adapter DP cable was connected to the DP 1.4 module on the side of the laptop. When the Sony PSVR2 adapter is connected to the USB-C to DisplayPort 1.4 cable plugged directly into the dGPU the laptop resumes from sleep and boots into window with the laptop screen staying on and the primary display which is the expected behavior. Honestly, this cable solved every issue I had.

I really hope people find this thread before they tear their hair out like I did trying to figure out why their VR headset connected to the DP 1.4 port module on the side of their Framework 16 laptop could only display things running on the iGPU, and not the dGPU despite the laptop screen itself clearly showing the VR game/app in a preview window regardless of which GPU it was running on. Also, it was strange that Windows would run some VR apps like the Steam VR home room on iGPU but then would run the Sony PSVR2 setup on the dGPU. Now with the PSVR2 plugged into the dGPU on the back of the laptop with the new cable everything VR related runs on the dGPU and you can even confirm this by adding the “3D Engine” column under task manager process details and looking at all the VR processes which is how I was able to determine which GPU things were running on while experimenting yesterday trying to get the DP 1.4 Module to work with the Sony PSVR2 properly.

I’m not sure if this would be possible but it would be great if Framework could somehow figure out how to allow the end user to select which GPU they would like as their primary GPU and that would be the one that outputs though the DP 1.4 port module on the side of the unit. Or, even better yet, an option in UEFI setup that would just let you select which GPU is output to which DP/HDMI module on the side of the laptop. I’m not quite sure if this is possible the way things are routed but it never hurts to ask. However, there is a workaround to this entire problem by just buying a $15 cable that works like an absolute dream. The only drawback is that you can’t play games on the iGPU to save power in VR once you connect to the dGPU USB-C port just like you couldn’t play on the dGPU while connected to the DP module on the side. I don’t see this as a big problem though since most VR games need more power than the iGPU provides to run optimally and you already have to plugin the Sony PSVR2 adapter since it requires 12v power to run the HMD so wherever you’re playing VR you’ll have to be near power anyways so you might as well just plugin the Framework laptop also, right?

I can now say I’m 100% happy with my PSVR2 experience so far on my Framework 16 now that I’ve figured out that I needed this $15 USB-C to DisplayPort 1.4 cable (https://amzn.to/4dQBM4Y) connected to the USB-C port on the back of the laptop running directly off the dGPU (Radeon RX 7700HX). Also, the other plus side is that with this USB-C to DP 1.4 cable you can plug in another external DP monitor when you’re not using VR and then you can use the DP/HDMI module on the side of your Framework 16 to run a secondary external monitor if you want to use your laptop as a desktop workstation when at home. Actually, now I’m wondering just how many external screens you could run with this thing in theory if you got creative with modules & USB-C thunderbolt hubs? :thinking:

TL;DR Section

  1. Buy this USB-C to DisplayPort 1.4 cable (https://amzn.to/4dQBM4Y)
  2. Buy this Sony PSVR2 PC adapter (Buy PlayStation®VR2 PC Adapter | PlayStation® (US))
  3. Connect USB-C to DisplayPort 1.4 cable between the USB-C port on the back of your Framework 16 laptop (NOT SIDE MODULE) and your PSVR2 Adapters Displayport
  4. Open Steam and install SteamVR App
  5. Also Install Playstation VR2 App while in Steam
  6. Run Playstation VR2 App and follow all directions on screen

If you followed these steps then your PSVR2 should be working perfectly and fully utilizing your AMD Radeon RX 7000HX series dGPU in your Framework 16 laptop instead of the iGPU which will be used if you try to plug DP from PSVR2 adapter into one of the DisplayPort modules on the side of the laptop. You’ll also notice that your Laptop will now resume from sleep and boot into Windows without any black screen issues which occur when you try to run PSVR2 off DP 1.4 module on side of Framework 16 laptop.

Enjoy!

3 Likes

I’m glad it worked for you! Hoping to get mine setup shortly, though I only have a regular DisplayPort to DisplayPort cable. Did you try using the Framework DisplayPort Module on the dGPU port on the back?

1 Like

Awesome! Could you post a photo of the complete wiring? I’m just curious, but others could use it for reference :slight_smile:

1 Like

I would be happy too @Gmanny!

  1. Plug USB-C to DP 1.4 cable (Link above a few posts) into USB-C port back of Framework 16 and DP Port on PSVR2 Adapter
  2. Fixed USB-A cable from PSVR2 Adapter box plugged into USB-A port on Framework 16 (or USB-C with adapter)
  3. PSVR2 Headset USB-C cable plugged into to USB-C port on PSVR2 Adapter box
  4. PSVR2 12v AC/DC Power plugged into PSVR2 power port via barrel plug (included with PSVR2 adapter)

The only thing you need to make PSVR2 work perfectly on the Framework 16 using the dGPU is the USB-C to DP 1.4 cable (~$15 linked in my last post) and the Sony PSVR2 adapter (Also linked in last post) since the only GPU’s that support plugging the PSVR2 directly into a USB-C port are the AMD Radeon RX 60xx series and Nvidia GeForce RTX 20xx series GPU’s because they supported a technology called VirtualLink which was discontinued after that generation of GPU’s because just not enough people utilized it. That is why you see some people saying that they can get PSVR2 working by just plugging the USB-C straight from the headset into their PC which is confusing.

If you have any more questions, feel free to ask! The USB-C to DP 1.4 cable and PSVR2 adapter solved all my problems on the Framework laptop and will also solve any problems people have getting PSVR2 working on their desktop computers also since they have the same exact problem if they are running newer generation GPU’s that don’t support VirtualLink.

I should also mention that if you plug the USB-C to DP 1.4 cable into the USB-C module on the side of the Framework 16 (instead of the USB-C on the back coming off the dGPU) it will have the same exact problem as plugging into a DP module where it just shows the SteamVR environment and never the game that is actually running.

So, if you plan to use an external display for gaming with your Framework 16 laptop I would advise you also get this USB-C to DP 1.4 cable and plug it into the back of the Framework 16 laptop so that your external display will be running directly off the dGPU. If you just plug the external screen into the side of the DP module on the side of the Framework 16 laptop it will be running off the much slower iGPU. This will be important for people who use this laptop for LAN parties where they want to use a bigger screen, etc.

So, if you see anyone in other threads talking about not being able to get their external screen to use the dGPU just direct them to this thread or give them this information so they know which cable to get to make it work correctly. And if you have an older VR headset that uses HDMI or a screen that uses HDMI instead of DisplayPort you can get this cable for around the same price to support HDMI instead of DisplayPort.

Just make sure you get the right USB-C to HDMI cable that supports 4k/144hz (ThunderBolt 4) because a lot of the cheaper cables only support 4k@60 which might be enough for the display you’re using but won’t be enough for any modern VR HMD like Valve Index or Rift. The Framework 16 dGPU is more than powerful enough for 4k/120hz if your screen supports it.

USB-C to HDMI (Thunderbolt 4) – Only for external HDMI screens, not for PSVR2
https://amzn.to/3B3J5Yy

USB-C to DP 1.4 – For PSVR2 & DisplayPort external screens
https://amzn.to/47tTqJE

I hope this clarifies everything for anyone that wants to use PSVR2 or external displays with Framework 16 laptop fully utilizing the dGPU rather than the much slower iGPU. And if you’re using an external display somewhere where you can’t plugin your laptop then just plug the USB-C side of the DP or HDMI cable into the side module rather than the port on the back of the laptop to get it to use the iGPU and conserve power. This would be useful for when you want to just connect to someone elses screen or TV to do something and you don’t want to plugin the laptop since the dGPU will take the battery down MUCH faster since it’s very power hungry given the performance.

I’m still not 100% sure how the Framework 16 built in screen is able to show both iGPU and dGPU apps/games on the same screen both in Window and Fullscreen mode without any issues. It would be awesome if they could figure out how to get the HDMI/DP modules plugged into the side of the Framework laptop to behave the same way so nobody needs any special USB-C Thunderbolt DP/HDMI cables to utilize the dGPU with external displays and VR headsets. But, until that happens this cable is the solution and you can simply change ports to determine which GPU is utilized to drive the screen.

Oh, and one more thing while I’m on this topic. If you want to force an application or game to run on iGPU or dGPU specifically instead of letting Windows 11 decide which is best you can open the System > Display > Graphics menu and select the app or game you want to change (or add it if it’s missing by it’s .exe) and go into options and directly force the GPU you want it to run on. Just be warned that this doesn’t work 100% of the time and sometimes the AMD Adrenaline software will take control and pick the GPU it wants despite these settings, and I haven’t figured out how to disable that behavior just yet (I’m new to AMD stuff). This is how I was able to get Beat Saber to work on PSVR2 without the USB-C to DP 1.4 cable I talked about earlier but running on the iGPU it’s too slow to actually play due to the frame drop and it can make you feel sick so I don’t recommend it. But, if you want to run a VR experience that the iGPU is more than powerful enough to handle then you can give it a try if you don’t have the cable. But, none of the VR experiences I’ve tried ran at a comfortable framerate even with display settings turned way down using the iGPU since it’s so low powered and on purpose to preserve battery life while using the laptop unplugged for business stuff.

Where to change which GPU is used for each app/game (Windows 11)

Sorry for the insanely large posts, blame the Adderall… :wink: If you have any other questions just tag me :+1:

1 Like

Thanks! Really nice! I play my Quest 2 with wireless streaming, but those cables would be nice to have!

To answer your question about how dGPU is displayed on the laptop display - the dGPU ribbon connector has a DisplayPort connection that goes back to the laptop and the laptop mainboard has a chip which switches sources for the internal display between iGPU and this DisplayPort line, like a simple KVM, but controlled programmatically by Adrenaline software. This chip is called “mux chip”, you can see references to it in Adrenaline.

So, in essence, Adrenaline has the ability to literally unplug the laptop display from iGPU and plug it into the dGPU.

1 Like

Oh wow, I didn’t even know technology like that existed! The way it does it is so seamless I don’t even realize it’s happening. So, when I’m running a game on dGPU in a window on my desktop, it’s in essence running the window frame and top bar on the iGPU, but the contents of the window are being rendered and superimposed over that window position from the dGPU? This kind of reminds me of the old 3Dfx cards that would use pass-through and could overlay graphics composited into your main GPU.

So, I take it this “Muxing” doesn’t work with anything connected directly to the dGPU or iGPU externally like on a second screen, right? Or is the “Muxer” smart enough to superimpose everything into a frame buffer before sending it out to the display regardless of how it’s attached to the system? I kind of want to hook up a secondary screen and experiment a bit since I’ve never owned a laptop that had 2 GPUs in it before, so this has never been a scenario to contend with.

I know you can have multiple GPUs in a desktop computer and utilize each GPU for computational work, but only the primary GPU outputs to the screens if memory serves. So if you plug monitors into both GPUs, only the primary GPU will kick in and display something, and the secondary GPU won’t show anything on the screens attached to it. Correct me if I’m wrong here. Then if you do something computationally heavy or play a game that would benefit from the other GPU, you simply tell it to render on the other GPU, but then it sends the graphics back to the primary GPU to be displayed on the screens that are attached to it. I’m guessing that happens over the bus in some way. I’ve even used mismatched GPUs before and was able to run a VM fully on one GPU while my main PC on the other and have them both displaying on the screens attached to the primary GPU. I wonder if that is similar to how the laptop is MUXing things, but instead of going through the bus, it’s going through its own ribbon cable and using some software to coordinate it instead.

I want to learn more about how this works for sure.