Digital Foundry: We commented on the dynamic resolution of WipEout HD's 1080p mode on release, but it was never actually confirmed by Sony until recently at the SCEE Develop presentation. Can you go into depth on the performance benefits this gives you?
Studio Liverpool: Reducing the horizontal resolution dynamically allows us to hit our target 60FPS when the scene complexity literally explodes during heavy weapons fire. This means we don't have to compromise the overall graphical quality just to account for these sporadic maximum load scenarios. The drop in resolution isn't really very noticeable and we feel it's a worthwhile trade off.
Digital Foundry: How is resolution adjusted, by how much, and in what circumstances? Is the shift literally frame by frame? What is the relationship between the dynamic resolution system and the tearing of frames in terms of the lack of v-sync?
Studio Liverpool: We dynamically alter the horizontal resolution from 1920 to 1280 in steps of 32 pixels. Even when the game is paused and we modify the resolution in the debugger it is very hard to see a change. It is not enabled at resolutions lower than 1080p. The throttling is only allowed to change by 32 pixels each frame (either up or down). The strategy is not to predict when we will overflow a frame (which is somewhat impossible), but to recover as quickly possible if it happens. On some televisions you can see that the tearing is actually present all the time in the top few pixels of the screen. This is due to the software v-sync implementation used in WipEout HD - this is not 'framing out', it's just missing the true v-sync by a few pixels.
Digital Foundry: The dynamic framebuffer system is very cool in the sense that assuming the resolution changes during the most intense scenes, this is where the player is least likely to notice it, and where performance and response really should get the priority. But on the other hand, the game was heavily marketed as full 1080p60 and strictly speaking it isn't...
Studio Liverpool: The game is always 1080 at 60Hz. Only the horizontal resolution of the 3D render is modified, and the final framebuffer is always 1920x1080. At the end of the day this technique is about getting the most out of the system - if a game keeps a solid 60 frames at all times then it either has a totally consistent GPU load, it's throttling in some other way (such as level-of-detail) or its wasting a load of GPU cycles to ensure that it always has enough room to stay at 60Hz when the action hots up. We don't want wasted GPU cycles, we don't want level of detail (WipEout HD has no level-of-detail in the environment geometry - at 1080p you'd see it pop) so we compromise on the occasional tearing and resolution throttling.
We are always looking to push every aspect of the game and 1080p 60FPS was a very important target for us given the nature of WipEout HD's high-speed visuals. Responsiveness and fluidity are of singular importance in a racing game when you need to react in a split second and have that reflected immediately on screen. Having said that, the weapon effects really connect you to experience and are just as important to the overall impact of the game, so if we can achieve both using such an initiative approach as the dynamic framebuffer then why not?
You could argue that technically it doesn't run at 1080p 100 per cent of the time, but in reality most people don't notice the difference and are perfectly happy with 99.9 per cent 1080p in all it's high-def eye-bleeding glory. I believe it's our job to bring you the best gaming experiences possible, and if it takes a sleight of hand as you previously put it, I don't think you're getting a bad deal.