Yes, I'll get onto the 1080p test later. In the meantime, thanks to some great behind-the-scenes help from Quaz51, here are the first frame rate results.
Race Driver GRID (demo)
Like-for-like comparisons
These tests are taken from the pre-event cut-scenes, generated by the game engine. Aside from the camera wobbling differently, everything is the same.
Test1- BMW Event Intro
360: 30fps (6.72% torn frames)
PS3: 28.226fps (39.52% torn frames)
Test2- Nissan Silvia Event Intro
360: 30fps (no torn frames)
PS3: 30fps (no torn frames)
Test3- Mustang Event Intro
360: 30fps (no torn frames)
PS3: 29.748fps (11.76% torn frames)
In-game tests
Basically the event is allowed to start, car accelerates full throttle until just before it hits scenery. Scenery is like-for-like, car AI introduces a variable here. But with two tests full of cars and AI in effect, it's a decent enough indication of performance cross-platform. Note that in Test5, there are no CPU cars as it's a drift challenge.
Test4- BMW Race Start, accelerate forwards
360: 30fps (v-locked)
PS3: 28.76fps (32.38% torn frames)
Test5- Nissan Silvia Race Start, accelerate forwards
360: 30fps (v-locked)
PS3: 30fps (18.07% torn frames)
Test6- Mustang Race, accelerate forwards
360: 30fps (v-locked)
PS3: 26.722fps (39.79% torn frames)
Methodology then. The fps detector counts the number of duplicated frames in its sample. The actual amount of screen being measured can be preset. To measure a precise fps, only one line of 1280 pixels from the centre of the screen is sampled.
To measure the amount of torn frames, the whole screen is sampled. Dupe frames from this test minus the dupe frames from the one line test are worked out as a percentage of the whole sample. This should work on any 2VBL game, like Race Driver GRID appears to be.
Bear in mind that this percentage is of the entire 60fps output of the console, not of the measured frame rate.
In the case of GRID it also appears to be the case that the whole game isn't v-locked on PS3, and the more challenging intro sections on the 360 version can also tear. However, in-game 360 appears to be v-locked.
So how sensitive is the scanner? Will sampling just one line fool the scanner if the actual screen is completely static to the human eye? No, the scanner is actually so sensitive that even when the camera is static and there's no perceived movement at all, we can still detect a 30fps update. Here we are in GRID, at 0mph.
Sampling just the top line of this video, here's the difference between each frame in the first second of the video:
Code:
frm 0: diff from frm 1 = 0.0000% at (0,0)
frm 1: diff from frm 2 = 0.0037% at (0,0)
frm 2: diff from frm 3 = 0.0000% at (0,0)
frm 3: diff from frm 4 = 0.0249% at (256,0)
frm 4: diff from frm 5 = 0.0000% at (0,0)
frm 5: diff from frm 6 = 0.0166% at (128,0)
frm 6: diff from frm 7 = 0.0000% at (0,0)
frm 7: diff from frm 8 = 0.0058% at (0,0)
frm 8: diff from frm 9 = 0.0000% at (0,0)
frm 9: diff from frm 10 = 0.0116% at (0,0)
frm 10: diff from frm 11 = 0.0000% at (0,0)
frm 11: diff from frm 12 = 0.0145% at (128,0)
frm 12: diff from frm 13 = 0.0000% at (0,0)
frm 13: diff from frm 14 = 0.0266% at (256,0)
frm 14: diff from frm 15 = 0.0000% at (0,0)
frm 15: diff from frm 16 = 0.0012% at (0,0)
frm 16: diff from frm 17 = 0.0000% at (0,0)
frm 17: diff from frm 18 = 0.0087% at (128,0)
frm 18: diff from frm 19 = 0.0000% at (0,0)
frm 19: diff from frm 20 = 0.0262% at (256,0)
frm 20: diff from frm 21 = 0.0000% at (0,0)
frm 21: diff from frm 22 = 0.0162% at (128,0)
frm 22: diff from frm 23 = 0.0000% at (0,0)
frm 23: diff from frm 24 = 0.0224% at (256,0)
frm 24: diff from frm 25 = 0.0000% at (0,0)
frm 25: diff from frm 26 = 0.0204% at (256,0)
frm 26: diff from frm 27 = 0.0000% at (0,0)
frm 27: diff from frm 28 = 0.0141% at (0,0)
frm 28: diff from frm 29 = 0.0000% at (0,0)
frm 29: diff from frm 30 = 0.0253% at (256,0)
frm 30: diff from frm 31 = 0.0000% at (0,0)
frm 31: diff from frm 32 = 0.0253% at (256,0)
frm 32: diff from frm 33 = 0.0000% at (0,0)
frm 33: diff from frm 34 = 0.0150% at (128,0)
frm 34: diff from frm 35 = 0.0000% at (0,0)
frm 35: diff from frm 36 = 0.0096% at (128,0)
frm 36: diff from frm 37 = 0.0000% at (0,0)
frm 37: diff from frm 38 = 0.0158% at (128,0)
frm 38: diff from frm 39 = 0.0000% at (0,0)
frm 39: diff from frm 40 = 0.0075% at (0,0)
frm 40: diff from frm 41 = 0.0000% at (0,0)
frm 41: diff from frm 42 = 0.0162% at (128,0)
frm 42: diff from frm 43 = 0.0000% at (0,0)
frm 43: diff from frm 44 = 0.0224% at (256,0)
frm 44: diff from frm 45 = 0.0000% at (0,0)
frm 45: diff from frm 46 = 0.0204% at (256,0)
frm 46: diff from frm 47 = 0.0000% at (0,0)
frm 47: diff from frm 48 = 0.0220% at (0,0)
frm 48: diff from frm 49 = 0.0000% at (0,0)
frm 49: diff from frm 50 = 0.0112% at (128,0)
frm 50: diff from frm 51 = 0.0000% at (0,0)
frm 51: diff from frm 52 = 0.0249% at (256,0)
frm 52: diff from frm 53 = 0.0000% at (0,0)
frm 53: diff from frm 54 = 0.0175% at (256,0)
frm 54: diff from frm 55 = 0.0000% at (0,0)
frm 55: diff from frm 56 = 0.0162% at (256,0)
frm 56: diff from frm 57 = 0.0000% at (0,0)
frm 57: diff from frm 58 = 0.0087% at (192,0)
frm 58: diff from frm 59 = 0.0000% at (0,0)
frm 59: diff from frm 60 = 0.0129% at (0,0)
frm 60: diff from frm 61 = 0.0000% at (0,0)
So, I think we're set now. This wouldn't have been possible without Quaz spending a lot of time examining videos and read-outs, so kudos to him for helping out and lending his incredible eye for detail to this endevour.