The idea of a “paint thread” that’s isolated enough from the “compositor thread” so as to never jank scrolling in the latter is fundamentally at odds with the way the GPU FIFO works. (Assuming the paint thread uses the GPU.)
-
-
Replying to @pcwalton
Newer GPUs are gaining better support for multi-tasking, so the serialized FIFO exexcution of command buffers is slowly becoming a thing of the past. Unfortunately, “legacy” GPUs will be around for a long, long time.
1 reply 0 retweets 3 likes -
-
Replying to @pcwalton @jhaberstro
Context switching has been a feature of NVIDIA GPUs for quite a while, initially with command granularity but it's getting more fine-grained.
1 reply 0 retweets 0 likes -
I don't think it was until Pascal that (GTX 1080/1070) NVIDIA implemented "fine-grain" context switching (instruction-level, aka save/restore a warp in the middle of its execution). It's also advertised as "compute preemption", so I'm not sure if graphics got the same.
1 reply 0 retweets 2 likes -
Replying to @jhaberstro @crzwdjk
I heard the context switching cost is huge compared to CPU (10s, 100s of kB?)
1 reply 0 retweets 0 likes -
Let's take a real-ish example: workgroup size = 128 threads (4 warps), 16kb of shared memory per wg, 32 registers per thread. That's 32kb of memory to context switch one thread group (ignoring execution state private to the shader core).
1 reply 0 retweets 1 like -
Worst case is basically the physical size of register file and shared memory, which is typically around 200-300kb per SM.
1 reply 0 retweets 0 likes
Makes sense. Matches up with what I heard.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.