As others have commented, it depends on what you're doing with those virtual cores.
Hyperthreading gives each of those virtual cores their own flow control, but they share (for example) floating point processing resources. (ie there is physically 1 unit in the chip that actually does floating point, but its shared between HT cores).
So if your software has a mix of logic statements and floating point crunching, you get a win. If, as is the case with pretty much anything 3d, you're crunching lots of floating point, you'll get less of a win. All the tests I've ever done in the past showed it to be a marginal win but basically it shows it for what it is, which was a sop to the DB guys that Intel was courting at the time.
So wrt graphics, keep in mind these cores are virtual. If your floating point units are maxed out doing dot-products, no amount of switching virtual cores will help. Yer need more dilithium crystals, Captain.
Adam