After seeing itsage's build here I decided to try my own hand at a Galaxy Book Flex build, and wanted to document it here as it has several workarounds for issues I encountered along the way. Hopefully others with the same/similar laptop can find this useful.
2020 Samsung Galaxy Book Flex (Samsung 950QCG), 15" QLED Screen (1080p)
Intel Core i7-1065G7 CPU @ 1.30GHz (Ice Lake-U, 15W TDP)
Intel Iris Plus Graphics 940 (Ice Lake-U GT2 64EU, 1GB dedicated vram)
Windows 10 Professional x64 Build 19041.450 (2004/May 2020 Update)
Using a LG GSM76E4 Ultrawide monitor as an external display via GPU, and the laptop's integrated 1080p display
Enclosure: Razer Core X Chroma (with all 4 extra USB ports occupied)
Cable: This cable from Amazon, though the Core Chroma included one. I ended up using it for something else because the one from Amazon is slightly longer.
Can't upload images directly because this is my first post, but have a direct link to Imgur.
1) Assembled Chroma Core (installed GPU, connected PSU, no issues)
2) Connected via TB3 to laptop rearmost port on right side (laptop has two TB3 ports on right side)
3) Waited, after an extended period, Windows installed old NVIDIA drivers.
4) Replaced NVIDIA drivers with modern ones (451.67, signed Jul 04, 2020)
5) Encountered several issues, with workarounds documented below
Again new to all of this, so can't directly post images and only the trial version of AIDA, but, cut me some slack!
-- Issue 1: Freezing --
I encountered very frequent freezing, similar to itsage (post linked at top). I fixed it without reverting to old drivers by adjusting two things:
1) In the NVIDIA Control Panel, Manage 3D Settings > Global Settings Tab > Power management mode: Prefer maximum performance
2) Added two vales to the registry (both DWORD):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers + TdrDdiDelay = 20 (dec)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers + TdrDelay = 10 (dec)
This resolved the freezing issue I was encountering, and allowed me to remain on current drivers.
-- Issue 2: Input Delay --
I noticed there was some input delay with the mouse (something I'm personally sensitive to, but perhaps wouldn't annoy others). I fixed this by adjusting a setting in Windows 10, "Hardware-accelerated GPU scheduling" was disabled, so I enabled it and rebooted. I feel like the input delay issue is gone (and this setting does reportedly affect that).
-- Issue 3: NVIDIA GPU disconnect button --
When the eGPU is connected, the NVIDIA software tosses a little GPU status monitor icon in the system tray that shows processes using the NVIDIA GPU. I remember having this app on an old laptop with Optima and stuff. ... Anyway, it has a 'Disconnect GPU' button that I assume is similar to the sort of 'Safely remove USB devices' thing Windows has, where it can scrape processes away from the GPU. After clicking it, the button changes to 'Connect GPU'.
Problem is, after using it and unplugging the TB3 cable, the icon disappears (I assume NVIDIA considers itself no longer needed and kills that process). Reconnecting the cable to the eGPU does nothing (other than connect me to the extra USB ports on the enclosure), because... that 'Disconnect GPU' seems to just disable the GPU in device manager! So whip up devmgmt.msc and re-enable the NVIDIA GPU there once connected via TB3, and it tosses the display right back up. It would be nice if that app would stay open, but, whatever.
Hopefully this can help someone out there.
@arokha, Thank you for sharing this build and the excellent instructions to remedy freezing issue with RTX eGPU! Can't believe Samsung cut cost with whichever lowest cost NVMe drive they could find. I don't understand the 12GB soldered RAM either. This laptop is otherwise very good.
Yes, a bit strange. I'm more a fan of WD at least so I got that drive. Overall an enjoyable laptop. I have a bit of buyer's remorse for maybe a Yoga or an XPS 15, but I don't have any real complaints that I haven't just been able to fix.
I'd like to find a way to script re-enabling the nvidia GPU. Maybe a scheduled task that tries to re-enable it every hour, so as long as I'm undocked for one of those periods, I won't need to open device manager to re-enable it. Or just a way to make the nvidia applet stay open so I can click that 'Connect GPU' button.
@arokha, I've used previous generations of Yoga and XPS. I still think the Samsung has better build quality. That QLED display is very nice. I wish it was a regular laptop form factor without a touch screen.
The disabled status in Device Manager upon hot-unplug is something I've noticed too. Would be great if you figure out a solution!
I'm messing around in powershell with a friend to try and come up with a solution. It can potentially be handled by either listening to window messages or WMI events, and do something when it's reconnected, like opening the little GPU applet or just re-enabling the device (fairly safe bet given if you just plugged it in, you want to use it).
Behold, @itsage, GPUbap.ps1. It runs (make sure it's running as an admin, otherwise it can't enable devices), waits for devices to be connected to your Windows machine, and checks to see if a GPU (by name) is connected, but disabled. If so, it enables it.
You should configure two lines in the script: the name of your GPU, and how many seconds until it's enabled after being detected. That is also how long you have to unplug the cable after clicking 'Disconnect GPU' before it re-enables it. Not because of the loop (not really a loop, see below), but because some event during that NVIDIA applet's shenanigans reconnects various devices and triggers the script.
Due to limitations in WMI and window messages, it's 'very annoying' to actually set up a way to get notified when specific devices are connected. I'm totally open to someone improving this though, please, someone, anyone, lol. So, for now, it checks the GPU every time you connect a new device to your laptop (how often is that, really?).
The script does run in a loop, but it's not a tight loop. The loop is setting up an event listener (for a device change) and then waiting on that, so it's not using CPU while just waiting. It does use CPU every time a device comes or goes on your PC, but, very little.
I tested this and it works fine for me, but...
I dont have the time to really look into it but maybe this could be helpfull: https://www.reddit.com/r/eGPU/comments/cdqu5w/autodisable_your_igpus_automagically_using_a/
@gerd_fuafsljfe, pretty similar to what I wanted, but backwards. I end up with my eGPU disabled, and want to enable it. They want to disable the iGPU. Would have been easy to repurpose that script though! They did basically the same thing, though (except I couldn't get Enable-PnPDevice to work at all on the graphics card device, only pnputil).
Minor update: I went through three separate external drive enclosures, attempting to connect to the laptop or the eGPU (as it has 4 USB ports), as well as to the GPU itself (which has a type-c port). All three enclosures would simply 'cut out' at high writes, disconnecting from the machine. The disk in the enclosure is a 2TB Crucial SSD.
I ended up finding this Sabrent enclosure which has an external power supply and that seems to have fixed that issue.