Bringing this thread back on topic...
Going to drop a bombshell.
Not GPUs are the same.
While the naming of DX11.2 is a bit of a head scratcher (it doesn't actually need to have Feature level 11_1 capabilities, so GPU's that don't even have full DX11_1 can claim to be DX11.2 GPU's, note that probably the primary 3D feature of interest is indeed tiled resources, which comes in two tiers. I just want to draw the technically inclined to a nuance in the recent statement concerning support:
| The Radeon™ HD 7000 series hardware architecture is fully DirectX 11.2-capable when used with a driver that enables this feature. AMD is planning to enable DirectX 11.2 with a driver update in the Windows® 8.1 launch timeframe in October, when DirectX® 11.2 ships. Today, AMD is the only GPU manufacturer to offer fully-compatible DirectX 11.1 support, and the only manufacturer to support Tiled Resources Tier-2 within a shipping product stack. |
[SOURCE]
Only the Xbox One's GPU is GCN 1.1. The "Tahiti"/"Pitcairn" line of AMD GPUs are first generation GCN (1.0), which is what the PS4's GPU is based on. The Xbox One's GPU is based on the "Bonaire" GPUs. This is a simplification of the explaination. There differences between hardware DirectX support levels and the API support levels. For example, when you read on Wikipedia that an AMD or NVidia card support DirectX 11.1, it means they support the DirectX 11.1 API, they may not be at the DirectX 11_1 feature set level.
[SOURCE]
Why does this matter, it's only DirectX right?
No. GCN 1.0 GPUs only support Tier 1 - Tiled Resources. GCN 1.1 GPUs support Tier 2 - Tiled Resources.
What the hell is Tier 1 and Tier 2? Well, the differences are this:
- TIER2 supports MIN and MAX texture sampling modes that return the min or max of 4 neighboring texels. In the sample they use this when sampling a residency texture that tells the shader the highest-resolution mip level that can be used when sampling a particular tile. For TIER1 they emulate it with a Gather.
- TIER1 doesn't support sampling from unmapped tiles, so you have to either avoid it in your shader or map all unloaded tiles to dummy tile data (the sample does the latter)
- TIER1 doesn't support packed mips for texture arrays
- TIER2 supports a new version of Texture2D.Sample that lets you clamp the mip level to a certain value. They use this to force the shader to sample from lower-resolution mip levels if the higher-resolution mip isn't currently resident in memory. For TIER1 they emulate this by computing what mip level would normally be used, comparing it with the mip level available in memory, and then falling back to SampleLevel if the mip level needs to be clamped. There's also another overload for Sample that returns a status variable that you can pass to a new "CheckAccessFullyMapped" intrinsic that tells you if the sample operation would access unmapped tiles. The docs don't say that these functions are restricted to TIER2, but I would assume that to be the case.
[SOURCE]
Basically on Tier 1 hardware this means that a similar method needs to be used to determine page faults that was used for the software virtual texture implementations. But that's pretty much the most efficient way to do it, so the missing CheckAccessFullyMapped shouldn't hurt performance at all. The missing min/max filtering and the missing LOD clamp for sampler mean that Tier 1 hardware needs quite a few extra ALU instructions in the pixel shader. It shouldn't be a big deal for basic use scenarios, but when combined with per pixel displacement techniques (POM/QDM/etc) the extra ALU cost will start to hurt. And obviously if you use tiled resources for GPU SVO rendering, the extra ALU cost might hurt Tier 1 hardware even more.
Yes, the PS4 will have similar capabilities as the Xbox One, the difference is that the Xbox One's GPU feature full hardware (Tier 2) where as the PS4's is a combination of software and hardware.
[SOURCE]
Bullshit right? Sony announced that the PS4 was DirectX11.2+ and Microsoft announced that the Xbox One was DirectX11.1+. Microsoft also announced that Windows 8.1 and the Xbox One were the only systems that supported DX11.2. Sony can claim DX11.2+ support because they can potentially build into their GPU any features they want to support. Not only this, but even AMD was caught off guard by Microsoft when they released the full DirectX11.2 feature set. Which is why a driver update is necessary to support those features, not simply a DirectX update.
[SOURCE] Beyond 3D
Note: Dave Bauman is an employee at AMD. The thread linked in this post was originally locked by the moderators. They only opened the thread to allow Dave to post.