What are 2D Video Acceleration and 3D acceleration?

12

3

In VirtualBox, you can set your VM to use 2D Video Acceleration and 3D acceleration... But what is it? The question is not about their use in that software but in general.

What are 2D Video Acceleration and 3D acceleration, how does it work and why is it used?

DRz

Posted 2016-06-29T13:31:55.320

Reputation: 247

Answers

13

There is no universal hardware. For example CPUs are Turing-complete, which means that they are capable of performing any computation. That doesn't mean that it can do it fast, though. Building hardware with specific jobs in mind can yield a huge increase in performance.

For example, here's how many Bitcoin hashes can be calculated by miscellaneous devices per second:

  • Intel Core i7 950 (CPU): 18.9 Mhash/s
  • AMD Radeon 7870 XT (GPU): 485 Mhash/s
  • BFL SC (dedicated ASIC miner): 25000 Mhash/s

All devices in comparison draw about 150 W of power. Benchmark results from bitcoin.it).

CPU is the basic processing unit. It's good at operations that are sequential in nature and require a lot of branching. (a branch is when processor has to choose what to do next depending on results of previous computations)

Then there's GPU. GPUs specialize in drawing various stuff, in particular 3D graphics, in an efficient manner. They can handle texturing, lighting and other stuff that would be way too demanding even for modern CPUs. That's basically what 3D acceleration means and GPU is a 3D accelerator. In the early days of computing, 3D accelerators were additional extension cards separate from video cards (eg. 3dfx Voodoo).

When we were bored with fancy 3D graphics, we have decided that we need more pixels in our videos and HD was born. Soon it became obvious that once again, CPUs are too slow to decode high-resolution video we demand in realtime. Manufacturers started embedding dedicated video accelerators in their video cards. These were capable of efficiently uncompressing HD video. That's 2D video acceleration.

There's also a bunch of other kinda-accelerators in modern PC. For example PhysX was originally a separate add-in card dedicated for physics calculations. They were later acquired by NVIDIA and now our graphics cards can handle physics too. They can also perform massively parallel computations (lots of data, same operation applied to all of it, preferably no branching).

It may be worth to mention Intel Quick Sync technology, which accelerates not only video decoding, but also encoding. Technically speaking it's also a 2D video accelerator, but it's an unusual one.

Enabling 3D acceleration and 2D video acceleration in VirtualBox machine settings enables VirtualBox to virtualize host's acceleration capabilities and expose them to guest through virtual graphics adapter. It requires additional drivers, though, so you need to install Guest Additions in your VM and 2D video acceleration works only in Windows guests.

gronostaj

Posted 2016-06-29T13:31:55.320

Reputation: 33 047