People here need to stop arguing and holding up in their corners.
1. Yes this is not a entirely new implementation of Megatextures/PRT/SFS by microsoft. It is however solving some of the problems with the feature that have existed since 2011
2. Yes all of the specific changes made by MS to now be in hardware,
could be implemented in software in some manner. After all, what graphical feature on these video cards couldn't be? However, do this in software is at the sacrifice of performance, quality, memory, bandwidth, etc...
3. PRT in hardware has existed for nearly a decade, but in most cases it has rarely been used. Why don't all games use it? Well that's because it can be a challenge to implement if you didn't set yourself up correctly from the beginning, and it
still comes with its own set of visual challenges that needs to be resolved.
4. This isn't a solution in search of a problem. The issues with handling mip-maps existed since PRT hardware was added to video cards. Bottom line is this is a hardware feature that makes it easier for developers to make full use of PRT, without as many drawbacks.
5. Games that already stream textures can make use of the new hardware features, and
still get a benefit of improved performance and less visual artifacts. Games that don't support PRT, can now add it and get a benefit of improved performance, and pushing more textures into their games (improving visuals)and
lowering bandwidth usage
Can we stop arguing about this now? The new hardware supported feature will still benefit any developer that wants to use it.
Id recently moved away from megatextures/PRT. They said that it made their textures blurry and the decision to move away from it allowed them to compete with other games using higher res textures. Texture pop-in is one of the worst visual artifacts we see on a regular basis today. We've basically seen this on multiple engines when streaming textures. So anyone saying, "oh it just fixes pop-in" is trying to minimize the impact. I for one will be happy if i don't see this in 1080p or 4K. IMo this is as bad as screen tearing, and happens often in games that stream.
Note i've seen worst cases then this, but couldn't find a good gif.
So, a few pretty thought out posts at B3D from Ronaldo. I'm going to quote them below as they seem well thought out.:
An interesting thought experiment resulting from sampler feedback streaming is to try and estimate the bandwidth requirementfor a typical case of use.
80 MB is a fair estimate for a 4K framebuffer.
The automatic fallback to a lower MIP and seamless transition to the required one provides us with n frametimes to stream the required tiles from the SSD. (note that this is due to the fact that the bandwidth of RAM is orders of magnitude higher than that of an SSD and plagues all implementations of virtual texture streaming . Having a "superfast SSD" (as per MS and Sony PR) won't eliminate it.)
Let n = 2 and the frame be 1 frame/s.
Scenario 1: 100% of the textures are not immediatley available in memory and have to be streamed
Estimated throughput requirement = (Framebuffer/(frametime x 2) = (80/(2/60)) = 2.4 GB/s
However, this scenario represents an overly aggresive form of texture sampling and most of the data required will already be found in memory (that's why a 99% culling is recommended in the github whitepaper for sampler feedback.No free lunch.)
Let's say 50% of the framebuffer is actually required (extremely generous). Then,
Estimated throughput requirement = (40/(2/60)) = 1.2 GB/s.
If n is increased to 3,
Estimated throughput requirement = (40/(3/60)) = 0.8 GB/s.
So this is an interesting thought experiment. Especially when you look at what Epic did with unreal 5. They are rendering what is visible, but at the same time saying, this is made possible with the PS5 SSD. In all those threads where sony fanys were saying "this is an advantage over xbox", i said a few times, we don't know how much bandwidth Epic is using. So realistically, is sony's 5.5GB/s giving them an advantage over 2.4 GB/s? Especially in the case where you are rendering only what you see? I think the answer to that is no. Not unless the system with 2.4GB/s SSD is bandwidth starved. Epic was rendering only what was visible, so there is no chance the rest of the bandwidth was used up by, audio or geometry. Brings me to this Ronaldo quote:
Maybe its a failing on my side...but what I was in fact addressing is the adequacy of the XSX's SSD for implementig a top-end texture streaming solution. Both a competent VT solution and SFS will decrease BW requirements and that's the point (but SFS will be the more efficient and effective solution because of a much lower computational overhead due to being a hardware implementation.) Boasting about having an X Gb/s capable SSD is meaningless.
Right, this is an important point and goes to what i was thinking right after i had time to digest what i saw from the epic demo. They are doing all they can to save bandwidth, this kinda goes to the speed of the SSD being meaningless. Fair point FAF & Panjev? Also ties into what epic said afterwards about this running great on other SSD's or NVME drives on PC or Xbox. Can we all agree to stop the dick waving now? Can we all stop reposting the same damn xbox articles/links and agree that that the epic demo likely is NOT using all the SSD bandwidth available? Which makes the most sense since its a multiplatform engine.
Also regarding latency Ronaldo recently wrote:
The discussion about cache scrubbers for the PS5 has got me thinking about the importance of latency for shader performance. Obviously, this was a prticular area of focus for Cerny and SIE R&D. It turns out that MS was also fretting about latency and cache misses but in a fashion typical of engineering, went about providing a solution in a completely different way. Andrew Goosen (that guy again), Ivan Nevraev and others came up with a novel method to improve cache prefetching in a patent titled : "Prefetching for a Graphics Shader" (US10346943B2).
They claim to be able to be able to "greatly reduce or eliminate the latency issues by ensuring that the subsequent cache lines of the shader are available in a cache before the shader executes those subsequent cache lines without pauses/delays in the execution of the shader for any further requests of cache lines" by using a "purposedly configured GPU" with a prefetcher block that can execute contemporaneously with the shader.
Can we discuss the above point, I'd like to hear more thoughts on latency.