Hey Nick, welcome! Glad you could join us.
There seems to be a determination to compare a generic DX11 implementation of an OIT solution (Per-Pixel Linked Lists) with functionality only available on a specific piece of hardware. Could we make Per-Pixel Linked Lists (or other OIT-enabling method) faster by exposing certain hardware features and their corresponding IHV-specific extensions? Probably. But is it what game developers want? Most of them would stick to industry standard APIs. This makes the comparison fairly moot in my point of view.
For a game developer choosing a technique to put in a game, sure. For a future architecture/API discussion, certainly not. A lot of the point in Intel exposing the extensions was to help demonstrate how useful they are and help push the industry to support them more broadly. Programmers have been asking for programmable-blend-like functionality for as long as I've been in graphics, so the reality is that despite the APIs moving quite slowly at the moment, it's important to expose this important feature.
As I mentioned earlier in the thread, I personally have been pushing for standardization of similar techniques for years now, so I'd turn the question around: do you disagree that it's a useful and important feature to enable this and other techniques? Adaptive visibility function compression is just one example... there are many simpler useful cases like blending normals into G-buffers, blending in alternate color spaces, etc. that all require something like programmable blending; there's a reason why game developers want it so badly
It is worth nothing that Adaptive OIT has visual quality shortcomings (due to its adaptive nature). This can be observed on Intel's own SDK sample.
It's configurable in quality while fixing a performance target, which is what game developers want. They fundamentally need to hit a frame budget, not a quality mark. It's not okay to drop to 5fps just because a thousand hair segments happened to overlap in a frame.
Did you try 8/16-node versions of AOIT (or more)? I'd be surprised if you found AOIT to look worse in any cases where it used even a fraction of the amount of memory that per-pixel linked lists does. Turns out compression works pretty well
And actually the bulk of the performance is not consumed by PPLL memory accesses: physics, AA, lighting, shadowing etc. take the lion's share.
Yeah don't get me started on the shadowing
As far as I can tell, it's not using self-shadowing within the hair (which is unsurprising... you really don't want to brute force that anyways), but yet it's still doing multi-tap PCF for every fragment. That seems like a poor choice vs. generating a shadow mask texture for the hair and simply projecting it...
But to be honest this is exactly the kind of unconventional usage of graphics memory I would expect from next-generation titles, especially with consoles boasting 8 Gigs of unified memory (and GDDR5 in the case of PS4).
It's not so much the memory footprint as the implied bandwidth that is the issue. The access pattern of PPLL's is really terrible as well, so bandwidth to off-chip memory is heavily amplified. Something like Haswell's eDRAM would help somewhat with this problem, but the underlying access pattern is fundamentally unfriendly.
As to whether a mutex solution is "safe" to do or not, we think we can make it so. I cannot comment further on this at the moment.
Yup but like I said, this would effectively be an "extension", so you'd have to stop making the same argument you made at the top of your post
Andrew talks about misleading statements. There is nothing misleading in my answers to this interview, those are my views. "Misleading" is a matter of opinion, and the latter is obviously heavily affected by our roles in this industry.
Sure, but some of it is a bit more cut and dry than just personal opinion.
Like for instance, you state "as long as game studios keep pushing the boundaries of realism in real-time 3D graphics, there will always be a market for performance and discrete GPUs." I don't think anyone here would disagree with that.
But then in other parts of the interview, you basically imply that AMD APUs are somehow in a different performance category; for instance: "when it comes to high-end gaming, current Intel integrated graphics solutions usually force users to compromise between quality or performance, which is a tough choice to impose on gamers." The same statement can be made for all integrated graphics... it's sort of obvious - they run in a fraction of the power and thermal budget of the discrete GPUs.
So you're saying that Intel's solutions are not fast enough to be usable, but yet Iris Pro is faster than any of the current APUs that AMD have released as far as I can tell from reviews. So does that mean AMD APUs are magically more usable just because they say AMD on them? Invoking the PS4 is "misleading" since AMD ships nothing of that class of part for PCs currently; the current parts aren't even GCN-based yet, so the comparison is pretty far-fetch IMHO.
I don't think that's the sort of "opinion" that is supported by facts is all. Like I said, I realize that for the purpose of such interviews your need to pull out some marketing stuff and that's fine (sadly that's the way the media world works), but let's just stick to the technical conversation here.
Anyways regardless of our potentially disagreements (which are probably less than you think
), great to have you here Nick!