hello TPU fellows.
today I spared more than usual ammount of time to read the whole thread, register (after years) and prepare reply in the Internet 90' format.
Mathematical proof (for like the 4th time):
(1920*1080)/(1280*720) = 2.25
60/30 = 2
Put them together... 2.25*2 = 4.5
Hence, 1080p60 is ~4x as demanding as 720p30.
That's not a point about hardware. In fact, strictly speaking my point here has nothing to do with hardware. It's a point about math which is apparently too simple for many of the elite minds in this thread to grasp. :shadedshu
I'm worked up about kiddos who don't understand kindergarten math and reading comprehension.
That is mathematically correct for painting pixels on 2D surface by "simple c algorithm" with predefined array of 2D vector images.
Today rendering of 3D scene to 2D surface is much more complex than your simple calculation.
Objects are represented as 3D mesh with additional properties tied to them (material, textures, etc.). Now, you need to place this objects into 3D space by applying
transformation and output texture position(s) (2d, to pick color from texture [x,y]) and vertex position "on screen", usually you utilize not only [x,y] coordinations but information about how deep "in screen" vertex is (vertex processing).
For each pixel that covers calculated triangle (output of 3 executions of vertex position transformation) on screen is then run pixel (fragment) shader with interpolated values of vertex shader output (here you can mix, modify skip etc. on-screen pixel color).
You see ? Your simple calculation matches only pixel shader computation. Described procedure is very simplified totally basic projection of 3D objects with textures into 2D space. Our simple "resolution based computation power requirements" formula is now much more complex, isn't it ? (let's not start even with adding basic lighting, shadowing or God-forbid animation to the calculation).
If you try to animate some object, you need to update its vertex positions within mesh as they are not only somewhere else on-screen (happens when you turn camera) but their relative position to each other is different. If this is handled by CPU, then this is often responsible for "CPU bottleneck", as it pushes constant pressure on CPU regardless of graphical settings. You can see it in multiplayer FPS with many players, or as perfect example - MMORPG games (CPU requirements for games as Lineage 2 in seriously "mass" pvp are astronomical). If it its handled by GPU, then you again have constant computation complexity not affected by render screen resolution.
On topic:
Create compiler exactly for single x86 architecture without compromises to "universal x86" operations selection (you can take into account exact memory / cache latencies and instruction latencies and their selection) and believe me, you will see miracles.
If next gen consoles contain some sort of X86 based APU, then did you not consider, that this will force to adapt new thinking for utilizing APU's in general for considerable amount of software developers ? And that is great success even for future desktop development.
If you have exact machine specification (HW, SW), you don't need statistics to determine how much operations can you execute in a given time on (avg) target machine HW with (avg) target software layer (drivers, OS) > you can count them exactly.
AD
Internet 90' format (semi-ot):
In the past, reading almost any discussion thread on sites devoted to technical stuff resulted in gaining substantial knowledge (either by users directly writing information in post, or by pointing other discussants to relevant resources). After spending hour of forum reading, you took for granted, that your knowledge base expanded (not necessarily in exactly-wanted direction).
Today after huge Internet users expansion and with connection accessible even on toilet you need to watch out to not end up more stupid after hour of reading technical stuff related forum.
If users spent single hour of reading about how 3D rendering works (You can pick
DirectX SDK samples,
NeHe tutorial, some other introduction material or even a completely simple
"How it works" or Wikipedia
[1][2] reading) instead of smashing F5 for quickest possible response to "discussion enemies", then there would be real information sharing and knowledne gain benefit for all. Today Internet is not a medium for information and knowledge sharing (I have sometimes bad feeling that knowledge-generation process is stagnating) but one great human based random "BS" generator that can without any problems compete with random number generator run on supercomputer.
Seriously - this thread contains enough text and graphics to cover PhD or some other work, but information value posts can be counted on one's fingers...
Until some genius comes up with "BS filter", it would be interesting to "emulate" such feature by manually picking of information-rich posts by moderators or even by forum users (something like existing "thanks" function) with forum filter to show only flagged posts.
EDIT: Now I checked Wikipedia second link and statement
"Vertex shaders are run once for each vertex given to the graphics processor" is not alway true. If you utilize Radeon HD2k-HD4k tesselator, then vertices count processed by vertex shader is actually higher, because fixed pipeline tesselator is placed before vertex shader in rendering pipeline (see
Programming for Real-Time Tessellation on GPU)