Skip to main content
12 votes
Accepted

Why can't I utilize multiple CPU cores with OpenGL like Vulkan?

Because the fundamental foundation of OpenGL makes multi-CPU-core submission impossible. OpenGL, at its core, is a synchronous API. Every OpenGL command behaves "as if" it were executed and completed ...
Nicol Bolas's user avatar
  • 9,792
7 votes

How can I utilize all cores of CPU In my ray tracer with std::thread?

This is not really a CG issue but you appear to have an integer division problem. Assuming mMaxThreads is an integer, ...
Olivier's user avatar
  • 1,585
5 votes

How to use multithreading in 3D software renderer to speed up fetching texture values

It could be that you have to overcome a different bottleneck first. Have you ever read Jim Blinn's "The Truth About Texture Mapping"? (I had a quick search to see if I could find a non-paywalled ...
Simon F's user avatar
  • 4,241
5 votes

A pseudocode to parallelize a path tracer?

An easy way to parallelize a path tracer is to have different threads (or machines!) work on different parts of the image. For instance, you could break the image into a 20x20 grid and have each ...
Alan Wolfe's user avatar
  • 7,801
4 votes
Accepted

Instanced Stereo Rendering vs. Multiple Command Buffers

Yes, there are advantages. You can render different command buffers to different queues. Modern NVIDIA hardware, in particular, offers a full sixteen separate queues that are capable of rendering ...
Nicol Bolas's user avatar
  • 9,792
3 votes

Avoiding CPU race condition/cache invalidation of RNG on multi thread path tracing

You need to implement your own RNG class and not use the clib RNG implementation that shares the state across threads. What I'm using is a simple & efficient multiply-with-carry RNG by George ...
JarkkoL's user avatar
  • 3,636
3 votes
Accepted

How to handle GUI in a path traced renderer?

Turns out I was an effin idiot. I didn't need to use multithreading or whatsoever. Since the main path tracer work is executing in the kernel, I don't need to wait for the kernel to finish right after ...
gallickgunner's user avatar
2 votes
Accepted

Vulkan Queue (Family), Command (pool) and Hardware usage

Queues The Vulkan Queues aren't as segregated as that book makes them sound. If you look at the spec very carefully you will notice that there must be at least one queue that supports Graphics, ...
pmw1234's user avatar
  • 3,219
2 votes

how to update my scene graph?

A few more options: don't use a scenegraph. They don't map well to the data a gpu needs for rendering. A flat array of object tends to work much better for the cache as well separate the scenegraph ...
ratchet freak's user avatar
2 votes

How to use multithreading in 3D software renderer to speed up fetching texture values

This is rather general programming question but parallelizing for loop (most common usage) in c++ is easy with openMP library. Basic example for parallelizing outer loop: ...
mdkdy's user avatar
  • 2,169

Only top scored, non community-wiki answers of a minimum length are eligible