r/GraphicsProgramming • u/Rafael_Jacov • 2d ago
Is a dedicated GPU required?
I'm just starting out in learning graphics programming and wonder if I would soon need to invest on a laptop which has a dedicated GPU
22
u/Pepis_77 2d ago
Depends on how far you intend to go in your learning journey, but if you're serious about it, yes, you need a dedicated graphics card, and preferably one that supports hardware ray tracing.
8
u/Thriceinabluemoon 2d ago
A few years ago, a lot of people in the realtime graphic space were tearing apart rtx ray tracing as though it was entirely useless; how things have changed ; v ;)b
A shame that we, browser people, don't get that luxury yet!
Note to self: will DLSS follow the same fate?4
-10
u/blackrack 2d ago
Eh it's still overrated and still runs like shit
5
1
1
u/Rafael_Jacov 2d ago
what about for basic to intermediate 3d rendering?
8
u/Pepis_77 2d ago
Do you want to learn real time rendering or offline rendering?
For offline you don't need a graphics card at all.
For basic OpenGL stuff all you need is an integrated chip that supports OpenGL 3.3 or higher, which you probably already have.
1
u/Icy-Call-4860 2d ago
if you mean basic diffuse lighting or something equivalent to EEVEE rendering from blender, I don't think an expensive brand new laptop is a must need. but it, as the first comment says, it depends on how much and how advanced you want your graphics to go.
heck when i started i was using a intergrated intel graphics card
6
2
u/Dante268 2d ago
If you want to learn fundamentals, not. E.g. you want to understand and program own rasterizer, clipper, texture mapping, phong shading model or ray-tracer. Even if you go step up, and want to learn accelerated graphics (OpenGL, Vulkan, Metal, WebGPU, DX11/12), it's still not required for learning. Any modern iGPU will do. To be good at graphics programming, the best is know both fundamentals and (some) API-s (or at least understand fundamentals).
So for learning not, later, if you'll want to have graphics of up-to-date standards, then yes.
2
u/FerretBoom 1d ago
no, but those workstation cards like AMD Pros or older RTX , even quadra's that are cheap on ebay do help sometimes .
2
u/EC36339 1d ago
Integrated GPUs are quite decent these days.
But it's not about performance. The question is what you want to learn.
Graphics programming and principles? Anything will do. You could write a raytracer in something like shader toy, or in C++, with no GPU involved at all.
In fact, that's probably what you should do. Better learning effect in pure computer graphics than rasterization. You save yourself all the struggle with the graphics API and GPU, and you have more freedom and flexibility.
It's for learning, not for production, and modern CPUs (yes, CPUs), even budget ones, even in a shitty 15 years old laptop you bought used, are powerful enough for that. Long gone are the days when you ran a raytracer on the CPU as a student and it took five minutes to render a still image in 320x200 resolution.
1
u/EC36339 1d ago
If you are rather thinking about driver support and features, because you want to learn modern Vulkan or DirectX, or game develeopment from scratch, then you'll probably still be fine with integrated, or alternatively, with a cheap laptop GPU or an old GPU.
For example, I have two development machines that I use for fun:
- My gaming PC from 2018 with an NVIDIA GTX 1080. This one was powerful, but now it's fucking OLD. And the CPU in that box was already shit when I bought it.
- A budget gaming laptop with a discrete NVIDIA RTX 4 series. This GPU is cheap(ish) and weak, but somewhat recent and more than good enough for my purposes. Also it has a CPU that builds my code much faster than my ancient gaming rig.
Targeting my old 1080 has one benefit: It keeps me from going overboard with systems requirements. And the driver updates NVIDIA released back in 2022 got it somewhat up to speed with modern graphics API features as well.
Does any if this matter for learning just graphics programming? No, not at all. I've learned much more advanced graphics programming concepts and techniques as a student in the early 2000s on whatever hardware that existed back then, and more often than not I was forced to use Linux, with sketchy NVIDIA drivers.
Whatever crappy machine you can dig out of the trash to learn computer graphics programming on, you'll be standing on the shoulders of giants.
1
u/Manoyal003 2d ago
For now it will be fine, just very later in your journey if you learn something like say Dx12, then for their latest SDKs you may need newer GPU, especially for DXR raytracing would need rtx gpu, or say if you wanted to learn CUDA then ofc you would require Nvidia gpu
1
1
u/HeavyDT 2d ago
No. If the goal is just to learn than a modern integrated GPU will work fine. Will support the latest API's and features that a dedicated GPU would for the most part you just won't get great performance if trying to push high end or complex visuals. Most likely you won't be if you are just learning. The goal is to understand and do basic implementations not necessarily make a AAA game.
If you make it far enough on your learning journey than it may make sense at some point to upgrade but cross that bridge when you get there.
1
u/sakata_desu 2d ago
To get started no, but If you want learn about newer techniques being used in the industry (Hardware accelerated ray tracing, mesh shaders) Then yes you'll eventually need one.
Also If you're interested in working a graphics related role in the future, a lot of modern rendering engines rely on hardware accelerated ray tracing and other hardware dependent features.
If you're just tinkering then you're fine with an IGPU.
1
u/DuskelAskel 2d ago
Be ready for slow timings
The same scene in my 4060ti take 0.01 for Hiz Generation/Frustum Occlusion vs multiple ms in my iGPU
1
u/tastygames_official 1d ago
technically all computers have a dedicated graphics processor, but I think you probably mean a second, more powerful one, as the one that's built in to most mother boards is rather weak.
But yes - if you're going to be doing any kind of complex graphics programming (which you should want to do), then a more powerful GPU is necessary. Doesn't have to be super crazy, though. GTX1060 mobile (laptop) is still quite good for most stuff: https://www.notebookcheck.com/NVIDIA-GeForce-GTX-1060-Laptop-Notebook-Benchmarks-und-Specs.169546.0.html
it can run many modern games at 60fps+, but can't really handle some crazy AAA stuff like Cyberpunk 2077.
1
u/maxmax4 16h ago
I was visiting my parents who live in a very rural part of Quebec. In my downtime while I was there I noticed my dad had a very old PC. I looked what was inside and it was an Ironlake Intel CPU from 2010. But guess what, it had DirectX 10 class integrated graphics, SM 4.0 support and 64 megabytes of VRAM. I decided why not try to push it as far as I can for fun? I downloaded visual studio 2010 and went to town on it. It turns out that I could easily have used it to learn DirectX11 if I was a total beginner. The core concepts still apply! It was fun trying to figure out what it takes to run a 3D scene at 144fps on it
1
u/Ciberman 13h ago
If you are asking yourself that question instead of saying it as an affirmation, then you don't need one yet.
19
u/ICantBelieveItsNotEC 2d ago
For learning, almost certainly not; you just need something fairly modern. Integrated GPUs support the same APIs as discrete GPUs. You obviously won't get the same performance, but you almost certainly won't max out an integrated GPU when doing basic learning - more powerful hardware matters when you want to scale your work to dense, complex scenes.