PSVR2 on FW16

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.

Yep, correct. Imagine that you have a DisplayPort cable that’s plugged in on one end into the laptop’s built-in display. The mux chip just does the act of unplugging it from the port on one GPU and plugging it into another. Important here is that this is the “finished” DisplayPort connection which carriest monitor display data.

In this way I am not sure what happens in a non-full-screen scenario really. I would guess that the laptop display would still be served by the iGPU with dGPU rendering the in-window portion and streaming the picture data over PCIe into the iGPU’s framebuffer. But I may be wrong and it may instead start rendering the whole Windows UI on dGPU instead, so nothing at all is done on iGPU in that case. Come to think of it, it’s probably the latter.

(But I want to add here that I am not super familiar with this, so I’m making quite a number of assumptions/educated guesses here, so anyone who claims expertise should override what I’m saying here)

Oh, you definitely can have multiple GPUs on desktop outputting stuff to different monitors. Try it and see how the window that you drag across monitors is not super synchronized :slight_smile:

This is also common in the eGPU scenario as streaming the rendered graphics back over the cable (as PCIe data, not DisplayPort) takes up quite a bit of pretty limited bandwidth, so it’s customary to game on an external display plugged directly into eGPU.

1 Like

Thanks for the information, @Gmanny! I feel like an idiot for saying that you can’t run displays off multiple GPUs inside a computer simultaneously when I literally worked at Microsoft for 15 years, and my dev box was running 3 displays connected to 3 different PCIe GPUs that each had one DVI-I connector. I believe they were Matrox Mystique cards if I’m not mistaken because they gave the smoothest desktop rendering experience.

I’ll just chalk that up to having a senior moment since I’ll be turning 45 this month! :wink: I do remember back in the day dragging Windows between the screens, and they would not transition smoothly when you had two in landscape and one in portrait in the center, making an “H” configuration, which is what I ran with for most of my career as a developer. Only a single GPU in the box will display text modes when booting as the primary, but once you’re in Windows or another operating system that supports drivers, it can boot up the other cards and send data to them, so of course they could output that to the screens.

I think you have some good assumptions on how the Framework is compositing the two GPUs together. If you open the Task Manager in Windows, you can even add the “GPU Engine” column under Processes, and you can see which GPU each application is utilizing. The Framework will happily display all of them on the main display as if it’s just one big happy GPU. So, I think you’re probably right that when things are in windowed mode, whichever GPU is the primary is rendering the desktop, and any contents of a window that is displaying “hardware accelerated” graphics from the dGPU is just being streamed into the frame buffer as if it was the monitor, and it’s getting muxed together by Windows itself. You can even drag it between screens connected to different GPUs, and the contents of the window will continue to be rendered by the actual GPU it started with, supporting this theory.

But, as you said, when the application goes full screen, it can directly connect the GPU that is doing the rendering to the display to maximize performance, so it no longer has to go through the iGPU at all. This also explains why the dGPU USB-C port on the back of the Framework 16 can’t display anything on VR that is running on the dGPU, only things that run on the iGPU. I bet the reason for this has to do with how VR uses two different displays showing 2 different images at the same time instead of a single display like a monitor, which would work with the muxing, whereas the VR doesn’t work with it, so it has to be physically connected to the GPU that is displaying the full-screen graphics.

I’d love to see a Framework engineer jump in here and correct us so we could see how close we are to understanding how the MUX chip works and how it only seems to impact VR when it comes to which USB-C port you plug into on the Framework but doesn’t have any problem with standard displays rendering using both GPUs on whatever is plugged into it. I should try plugging my VR into my main PC and forcing a VR app to the iGPU to see if it has the same problem. Because if it does, then that would confirm that this isn’t even a Framework muxing-specific issue at all and it’s just Windows being Windows. :wink:

Thanks,
Jerry (aka. Barnacules)

Apologies to anyone waiting for more reviews of the PSVR2 on the FW16. Life has been hectic.

I have tested and successfully used the PSVR2 exactly once, though for a good many hours. My setup was pretty much exactly as described by Sony with some Framework touches. A standard DisplayPort cable plugged in to a Framework DisplayPort adapter in the dGPU USB-C port, USB-A cable plugged into a Framework USB-A adapter in port 3 (front-left port), and the power plugged into the wall. I had previously paired the controllers, and upon powering them up, they both connected without any issue. The headset gave me some very brief issues and I’m not sure if it was the USB-C cable from the headset or the DisplayPort cable/adapter combo sticking out of the back of the laptop, but fiddling with both got the headset itself working (though I suspect it was the USB-C cable plugged into the Sony adapter, as the headset didn’t seem to be powering up). Once the headset did powerup, initial setup went well, and I was soon in SteamVR for the first time.

Once in SteamVR, it was relatively quick and easy to get setup and familiarized with the controls, movement options, and, most importantly, start playing PC VR games! Half-Life: Alyx! I lost track of time playing, and accidentally played until ~2AM.

Some of my thoughts on the experience, both PSVR2 specific and general PC VR:

  • I don’t think you need anything special (apart from the PSVR2 Adapter) in order to use the headset. I used a standard DisplayPort cable and a Framework DisplayPort adapter and it worked well. That being said, just because it did work, doesn’t mean I’d encourage others to do it too. The adapter hanging off the back of the laptop was a bit more precarious than I’d like, and adding a large, stiff DisplayPort cable didn’t improve how precarious things felt. @Barnacules_Nerdgasm’s suggested USB-C → DisplayPort cable isn’t necessary, but is something I’m likely to get.

  • The PSVR2 adapter is powered with a tiny 5V, 3A barrel jack. I believe FW16 supports 15W of output via USB-A or USB-C on most of the ports (though not the dGPU port, if memory serves). I’d like to try to make an adapter that is USB (probably A, because soldering to that pinout is significantly easier) to the tiny barrel jack, or remove the barrel jack and swap it for a USB-C port, so that the adapter can simply be powered by the laptop (or a multiport USB wall charger). If it uses 1 USB-A port for data, 1 USB-C port on the dGPU for video, and 1 USB port (either A or C) for power, while not being as compact and single cable as the headset connecting to the PS5, it would be a little bit tidier and more compact than the current implementation.

  • It works well enough that I lost track of time for a few hours.

  • Normally, I game with the FW16 on a balanced power profile, and while plugged into a 100W Anker charger. Under normal usage, getting a few hours of gameplay in before the laptop complains of low battery is common, with most play sessions not getting close to low battery levels. When playing Half-Life: Alyx, I used the 180W Framework charger (holy crap, it gets toasty), and turned the power profile up to performance mode in the hopes of getting as much performance as possible. If memory serves, I only stopped playing due to a low battery warning, though I didn’t have it fully charged when I started. I think the battery didn’t last as long as usual, though I really wasn’t paying that close of attention to it.

  • My experience with VR before this was Google Cardboard/Daydream, PSVR, and PSVR2. While I’d very much like the full features of the PSVR2 (eyetracking, foveated rendering, improved haptics in both the controllers and headset, and especially HDR support), the current level of support doesn’t disappoint me. Apart from the mura, which was somehow more noticeable to me on PC vs PS5. Not deal breaking, but, sadly, more noticeable.

1 Like

Beware that USB-A ports have lower power limits that USB-C.

Edit: But there are cables which expose power leads from USB-C plug

1 Like

When you played Halflife Alyx with the PSVR2 adapter plugged into the DP adapter on the side of your FW16 did you open Task Manager to see which GPU the game was running on? You can right click on any column header under Processes and enable the column GPU engine and it will show which GPU it’s running on.

With all of the testing I conducted with the PSVR2 plugged into the DP module on the side of the FW16 it would always run the game on the iGPU which would be laggy and slow and never achieve the full framerate of the headset or it would give me an error saying “You must plug the headset into the GPU that the game is running on” when Windows would select the dGPU as the target when running more intense games. For instance if I ran Beat Saber by default then everything worked fine but the framerate just wasn’t great and it would have little hiccups and microstutters. However, if I ran something like Microsoft Flight Sim 2020 in VR mode or HalfLife Alyx it would run it on the dGPU when Windows was configured to pick the GPU automatically depending on the game and then I would just see “Loading” through the VR headset in the Steam menu area while the game would be up and playing in the preview on the laptop screen and the error would be showing saying the headset needs to be plugged into the GPU that it’s running on.

If it’s not too much trouble, could you post a screen shot of your Task Manager showing the GPU engine column with Half-Life Alyx process showing so I can see which GPU Windows claims the game is running on. Also, if you have Beat Saber can you try booting that up and see if you get the strange error I was getting where SteamVR says “You must plug into the primary GPU” since it should default to iGPU for that game untill you go into Windows settings and force it to the dGPU.

Example of forcing the GPU the game runs on in Windows when 2 GPU’s present

Because ideally, I would absolutely love to run my PSVR2 adapter using the DP port on the side of the FW16 so I don’t need the USB-C to DP cable at all. But, I spent days trying everything I could possibly think of and I could never get a game running on the dGPU to show up in the VR headset that was plugged into the DP module on the side of the FW16 which links to the iGPU. It would only show games in the headset that were running on the much slower iGPU and if the game went to the dGPU because Windows detected it was more demanding than it would just who the SteamVR hub in the headset with “Loading [Game]” showing on the screen even though the game was already loaded and working in the SteamVR preview window showing on the laptop.

So technically you can use SteamVR with DP module on side of the FW16 for PSVR2 experience so long as the game you’re running defaults to the iGPU because the laptop isn’t plugged in or is in a low power profile setting while plugged in or you force the game to the iGPU using the System>Display>Graphics menu in Windows 11. But, if @takaides actually got a VR game running on the dGPU and displaying through the DP module on the side of the FW16 I would very much like to try and replicate that experience so that USB-C to DP cable is no longer needed hanging off the back of the laptop.

I laughed when I read you talking about how you lost track of time playing Halflife Alyx. Yes, you absolutely lose track of time until either you wife, girlfriend or loss of power pulls you out of the game. It’s absolutely additive and I honestly hope they make another one in the future because it still stands today as one of the best and most immersive VR experiences I’ve ever had. The fact you were able to run it makes me think it had to be on the dGPU since i don’t think the iGPU would be able to play it at any acceptable framerate even on the lowest graphics settings but I haven’t tried myself so I’m not really sure. The onboard iGPU is pretty capable for 3D graphics being able to almost play Beat Saber at ~70FPS with default graphics settings and it also handles RecRoom no problem.

As for the low power problem you were encountering, I have also noticed a few interesting things myself. Like for instance when I plug in the 180 watt power adapter into the FW16 and torture the CPU/dGPU using http://iprep.info/gpu it will always show 100% power remaining down in the Windows 11 task tray until I unplug the USB-C power adapter and then it will update to show the true percentage remaining. I found that when the CPU/dGPU is being fully hit 100% it drains the battery at about 5% every 15-30 minutes which isn’t bad and would give you quite a bit of runtime if you start from 100% before you do whatever it is you’re doing but it does mean that the laptop will die no matter what you do if you run at 100% for a prolonged period of time. I think they are coming out with a 240 watt power adapter soon that will resolve this problem by providing enough power that the battery doesn’t need to be touched. I also wonder if the 100% issue I see in Windows 11 has to do with Microsoft making a bad assumption that the battery can also be depleted while plugged into a wall so it just shows 100% and never updates from the battery status again until the charge state changes. But I’m curious if you’ve also observed this issue yourself?

And last but not least I wonder if the mura issue you were noticing with the PSVR2 had to possibly do with the games running on the iGPU instead of the dGPU which would disable a lot of the features the dGPU has to increase image quality. Because when running on the dGPU I got way better image quality vs. iGPU just with default graphics settings in every game I tried.

TL;DR - Could you run Half-Life Alyx with PSVR2 plugged into DP on side of laptop via DP module and check the GPU engine column under Task manager for the Half-Life Alyx process and then do it again with the USB-C to DP cable coming out of the back USB-C connector on the FW16 laptop? I want to verify that you’re seeing dGPU in the GPU engine column for both configurations. Also, if you use System>Display>Graphics in Windows 11 to force Half-Life Alyx to the iGPU will it show up in the headset when you run the game while connect to the USB-C port on the back of the laptop and vice versa when plugged into the DP on the side of the laptop with Half-Life Alyx forced to dGPU? If you’re able to confirm that you’re able to see both iGPU and dGPU games through either USB-C on back or DP on the side of the laptop in the headset then I’ve gotta figure out how in the heck you’re hardware configuration is different from mine so I can replicate your same results since I would love to ditch the USB-C to DP cable if I can. :+1:

I looked at the cables that you linked too, and it looks like they just put out 5V at 3A which is the same power a USB-A port puts out. I think this is just the default voltage that any USB-C port sends out to start the negotiation with the device and it will only send more power upon request from the device itself.

Cable from Amazon that can only send 5V at 3A

I think for takaides idea to work they would need to pull a lot more power than that which would require a handshake with the USB-C controller to request more power. I found this cable over on AdaFruit that looks like it has a programable chip inside that can be programmed with an included programmer unit to send any voltage up to 20V at 2A giving a total power of 40 watts available. I don’t know if that is enough for the PSVR2 headset off the top of my head but I’m sure if this cable exists there are others out there that supporter higher power output. But this cable could easily be housed in a 3D printed module that could just slide into the side of the framework directly into the nested USB-C port in the back after it’s been programmed for the correct voltage to the barrel jack. And you could easily buy a barrel jack converter to get it to the right size and polarity for the PSVR2 box. Honestly, this would be a super cool module that people would actually use if @takaides makes it!

Re-programmable USB Type-C PD to 2.1/5.5mm Barrel Jack (LINK)

If you end up making one of these @takaides and it works let me know. I’d like to use something like this myself. It would be fun to play Beat Saber out in the front yard on a nice day fully unplugged! :wink:

When you played Halflife Alyx with the PSVR2 adapter plugged into the DP adapter on the side of your FW16 did you open Task Manager to see which GPU the game was running on?

Apologies if I was unclear, but I also used the port on the back of the laptop, not the side. I did pull the DisplayPort adapter from the side of the laptop, but only used it in the back dGPU port. I do happen to generally always run task manager, but I was distracted by VR and never checked the task manager during VR use.

Well, they want to power the PSVR PC adapter, which they said themselves requires rather 5V 3A:


Their idea, as I read it, is to have a way to power the PSVR PC adapter from the laptop, i.e. to not require an external power brick, but rather have a solution which just plugs into the laptop fully. Or at least that’s what I would do. So this is where we stop being able to rely on any USB Power Delivery, as the laptop can output only 5 volts, no power delivery negotiation possible.

And my point with proposing a USB-C cord was that they mentioned not wanting to solder tiny USB-C headers.

The cord makes the soldering work much less involved.

and also that power delivery through a USB-A expansion card is limited by the card, so it might not output enough power:

thusly starting with USB-C for that project is much preferred.

I’m actually shocked that the PSRV2 adapter needs that little power. It really is starting to make me wonder why in the hell the headset can’t take power directly from the USB-C port and not need the adapter at all?! :man_shrugging:

I think, it just comes down to user experience: USB ports are rarely rated for power officially, and it wouldn’t be nice for people to plug the headset into a USB port only to get it shutting down at points because the port can’t supply enough power.

I’m using external SSDs which get their power from a USB port they’re plugged into, and it’s a pretty frustrating experience to see the drive reboot in the middle of heavy usage because the port I’m plugging it into couldn’t handle the drive’s power draw.

I assume that’s the main issue.

Also, if I really wanted to muck around with the circuit, I’d love to have USB-PD passthrough, so I’d plug the power adapter for the laptop into the PSVR2 adapter (in an appropriately labeled PD-IN USB-C port), grab ~15-18W off of that, and send the rest to the laptop through the currently existing USB-C cable tail.

That won’t work with the Framework 16, assuming the user wants to plug the PSVR2 adapter into the dGPU; it can’t do any power in, let alone PD-IN. And honestly, adding a PD controller/power circuit seems like a lot of effort if the whole point is simplifying it… Though, I’m now curious if there’s any data pins to spare on the FW 16 interposer.

1 Like