Better Laptop or Remote Coding?

category: general [glöplog]
I love my little x220. It's really handy for various reasons. However, I can't get any OpenGL4 on there and I'd kinda like to learn all the newer styles of graphics programming (I've been ES and WebGL too long).

I was wondering, is there a decent secondhand thinkpad model with a gpu in it that can do OpenGL4 that I should consider getting?

OR, is it a better idea to do some kind of remote desktop-ing? SSH and SSHFS gets you all the way there, EXCEPT for viewing the results. Has anyone tried any setups that involve remote demo programming at all?
added on the 2018-04-12 23:16:38 by oni_ oni_
I have a thinkpad T450s with NVIDIA 940M, works okay for "non office" GPU coding but isn't as powerful as a proper desktop GPU.

Windows remote desktop seems to work pretty nicely for DirectX.
I didn't find a good way to get OpenGL to work properly (neither on Windows nor on Linux (ssh -X only got me X forwarding with oldschool OpenGL (no shaders) last time I tried)).
You could use things like TeamViewer but I'm not a fan of that.
added on the 2018-04-13 00:25:11 by las las
the x220 is really old by now, i have an x250 and the (intel) gfx barely cut it, no reason to think about games or even demos.
so yeah, you should probably think about upgrading, used thinkpads are usually affordable but keep in mind the x2x0 series usually has cpu-gfx (and while modern intel chips do support ogl 4 and above, they are not fast at all...). For demo development a slightly bigger machine like the one las mentioned would probably be a better idea.
added on the 2018-04-13 01:01:30 by wysiwtf wysiwtf
Remote coding works well, viewing gfx remote is better to be avoided:
Apart from the more or less noticeable unavoidable lag it adds an additional source of subtle errors. Different behavior of APIs is one thing, color/image compression another. Using different dpi settings on client and remote machine also tends to have nasty side effects.
added on the 2018-04-13 03:59:01 by T$ T$
I've spent some time last year researching possible solutions for remote OpenGL coding (server: Windows, client: anything).

TL;DR: there are no good solutions.

- RDP: doesn't like OpenGL, but will happily stream already running OpenGL window.
- RDP+RemoteFX. Couldn't get it to work, don't remember why (consumer windows version?)
- VNC: works with fps=3
- https://parsecgaming.com/ Buggy software, so-so video quality, lag. (Also: closed-source, requires registration, painful to set up under Gentoo)
- steam in-home streaming could be acceptable, but I was unable to reliably make it stream full desktop, and not just steam games.
added on the 2018-04-13 16:08:54 by provod provod
Better laptop.
added on the 2018-04-13 19:52:31 by yzi yzi
There isn't a magic way to stream video from the remote rendering to your laptop.

Network bandwidth is not enough for an uncompressed stream.

Compression needs CPU and will introduce lag.

Doing the OpenGL locally does not get you better performance since the local GPU would still be doing the work.
Maybe when Amazon and/or Nvidia come up with some cloud-gaming/rendering service it would be more viable but atm I dont see a better solution than running stuff locally (you can always offload the coding/compiling of course...).
Also if you think about working while travelling remember bandwidth is scarce on the road ;P
added on the 2018-04-13 21:01:36 by wysiwtf wysiwtf
Been using a service called shadow.tech for the past month and it's working like a charm.
But of course i'm close to their datacenter and have fiber, so can easily have ping <3ms and 50M streaming to the server so it appears like local.
Their thing is designed for gaming, but perfect for demos too... you get a win10 family PC to tend to yourself, a 1080 (currently, they udpate the GPU as they come) and reasonable xeon CPU with 250g ssd.
added on the 2018-04-13 22:18:31 by alkama alkama
About RDP: provod is right about the "already open windows work", but that is kind of impractical...
OpenGL over RDP is a mess in general, but kinda works with Win10. Make sure your host machine runs Win10! As a client anything should work, but Win10 is better. Then it depends on the GPU driver. Nvidia is being a bitch and restricts RDP OpenGL acceleration to their "professional" Quadro cards+drivers (no reason to). Intel should just work (tm), which obviously does not help you, and I have not the slightest idea about AMD cards.
Other remote desktop solutions (VNC, TeamViewer etc.) use different techniques and should mostly "just work", possibly with more lag and reduced visual quality though.

All-in-all you should maybe get a new laptop... :/ If you are willing to go 13" or 14", there are lots of options. If you want an ultrabook the Geforce MX150 might be your only choice (basically a better 940M).
There is also the option to get a laptop with a TB3 port and add an external GPU. It seems actually work quite well nowadays. Just make sure the TB3 port is connected by 4 PCIe lanes.
added on the 2018-04-14 17:21:53 by raer raer
Hey all! Thanks for the feedback - it's really useful. I think a new laptop might very well be in order eventually, when I get to starting demo programming on the road. In the meantime I wont look at remote as it seems not worth it - I'll get to doing the graphics work on my desktop.
added on the 2018-04-14 19:29:45 by oni_ oni_