I think that's actually from way back (10+ years ago) and everyone else just forgot/doesn't careThanks for the wonderful insight, and congratulations on joining the moderator team, you will make a fine one at that too.
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
I think that's actually from way back (10+ years ago) and everyone else just forgot/doesn't careThanks for the wonderful insight, and congratulations on joining the moderator team, you will make a fine one at that too.
Thanks for saying this!No. There is no shortage of "talent" across the spectrum of developers (nor are the sets disjoint). There is often a shortage of time and differences in priorities.
...
Again, improvements can (and are) being made constantly to the whole PC stack. But pretending this is some sort of lack of effort or expertise from those involved, rather than a gigantic compatibility problem that has expanded in scope as games and hardware themselves have expanded in scope rubs me the wrong way.
As I've said before, there is little financial incentive for most publishers to not release PC games in a suboptimal state whilst consumers continue to buy them day 1 regardless - particularly if the publisher is trying to hit a quarterly release deadline and needs to show revenue for investors.At the end of the day, a product is being put out, and some of these games are absolutely releasing in unacceptable states. I think that is pretty much undeniable at this point. It's not on consumers to be accepting of the realities of PC development...
congrats on becoming a moderator. Good times in the moderators side. I kinda miss Geo, but Shifty is back, so things look good.No. There is no shortage of "talent" across the spectrum of developers (nor are the sets disjoint). There is often a shortage of time and differences in priorities.
Moreover though it cannot be emphasized enough how much more complicated the problem is on PC. Most of the problems that PC games suffer from are because those problems don't exist at all on consoles, but *must* exist to some extent on PC to support a wide range of hardware. This also involves interactions between large code bases between a bunch of different companies all with different goals themselves (which are sometimes actively opposed to getting a nice, consistent experience ex. across different hardware vendors). The fact that games and APIs must be designed in a way on PC that they will be future compatible with GPUs that you can never test at the time the game ships/gets its last patch makes the problem an order of magnitude more complicated.
As someone who was heavily involved in the design of DX12 and Vulkan I have no issues saying that both made mistakes like every graphics API has. It's probably also fair to say the pursuit and hype around "low level console-like performance" went too far to the point that it created problems that were even harder to solve/work around than the problems in DX11 and previous APIs. With things like Nanite it's pretty clear now that the window in which we cared about doing 100,000 draw calls was somewhere between narrow and non-existent. And while the goals of ensuring that shader compilation happened at predictable points (and thus had to abstract any API state that "might possibly be compiled into shaders on any current or future GPU") remain good, it's fair to say that we underestimated the reality of how harmful this "superset of least common denominator" approach would be to the experience on one specific piece of hardware. It's much harder to fix PSO explosions after the fact with deduplication in the driver than it is to avoid it happening in the first place, but unfortunately the new APIs force us down that rougher path for the foreseeable future.
Again, improvements can (and are) being made constantly to the whole PC stack. But pretending this is some sort of lack of effort or expertise from those involved, rather than a gigantic compatibility problem that has expanded in scope as games and hardware themselves have expanded in scope rubs me the wrong way. A big part of the reason things were sometimes not as much of an issue in the past is because they were literally simpler problems then. It's still worth admitting that DX12/Vulkan did make some of these actually harder. Hindsight is 20/20, etc.
Adam Sawicki said:I know it will sound controversial, but sometimes I get a feeling they are at the exactly worst possible level – so low they are difficult to learn and use properly, while so high they still hide some implementation details important for getting a good performance.
Based on that, I am thinking if there is a room for a new graphics API on top of DX12 or Vulkan. I don’t mean whole game engine with physical simulation, handling sound, input controllers and all, like Unity or UE4. I mean an API just like DX11 or OGL, on a similar or higher abstraction level (if higher level, maybe the concept of persistent “frame graph” with explicit pass and resource dependencies is the way to go?). I also don’t think it’s enough to just reimplement any of those old APIs. The new one should take advantage of features of the explicit APIs (like parallel command buffer recording), while hiding the difficult parts (e.g. queues, memory types, descriptors, barriers), so it’s easier to use and harder to misuse. (An existing library similar to this concept is V-EZ from AMD.) I think it may still have good performance. The key thing needed for creation of such library is abandoning the assumption that developer must define everything up-front, with nothing allocated, created, or transferred on first use.
Just to be clear on my previous reply - the issues I was referencing are not something that can be solved by another layer on top of these APIs. The article actually mentions this a bit in the third post-update. But for instance, many of the problems around shader compilation are made much worse by the design of DX12/Vulkan and indeed they are baked into the driver interfaces of these APIs unfortunately. If it was "simply" an issue of implementing some stuff in Unreal or another game engine that would make things operate just like they did on DX11 drivers that would have happened *long* ago. Part of the issue is that the way we shifted some of the burden to the application instead of the driver actually created a far more difficult problem than when it was solved before in the driver. For instance, the driver knows what states are going to baked into compiled shaders on a given GPU/driver combo, while the application cannot and thus has to be incredibly conservative with shader permutations.An interesting thought from Adam Sawicki, who was linked earlier in this thread. He proposes that one way to perhaps ease the complexity of Vulkan/DX12 is to actually have another, higher-level API that can take some of the management burden off of developers layered on top of DX12/Vulkan:
The thing is you already called out the proper response in your reply here: if a game is in an unacceptable state, don't buy it! That is by far the most direct feedback you can give to the appropriate channels.Blame will be thrown around, and consumers will ultimately vote with their wallets..
[snip]
I get that it's probably not the best idea to go to forums or other places where developers and technically informed people post and constantly complain about stuff like this.
What was the rationale for doing this in the first place? Surely IHVs have heftier budgets -- and more importantly, motivation -- to solve this than devs for multiplatform games?... the way we shifted some of the burden to the application instead of the driver actually created a far more difficult problem than when it was solved before in the driver.
To eliminate random shader compilation stutters in DX11. It's not as if this is new problem, even if it's getting more deserved attention lately for various reasons (many of them - as noted - because the scope of games themselves have increased). The thought was that by allowing the application to control when compilation happens it could be scheduled to a more appropriate time (ex. load time, or prefetched, or similar). To some extent that part has indeed born out.What was the rationale for doing this in the first place? Surely IHVs have heftier budgets -- and more importantly, motivation -- to solve this than devs for multiplatform games?
is it only a dx12 or pc api and hardware problem or also xbox problem cause some games show similar stutters on xbox similar to pc that are rarely found on playstation? and would pc api's get better or would it just get worse as games become more complex and bigger?To eliminate random shader compilation stutters in DX11. It's not as if this is new problem, even if it's getting more deserved attention lately for various reasons (many of them - as noted - because the scope of games themselves have increased). The thought was that by allowing the application to control when compilation happens it could be scheduled to a more appropriate time (ex. load time, or prefetched, or similar). To some extent that part has indeed born out.
The issue is that to make this happen in a way that works across all sorts of different GPUs and drivers requires effectively assuming even the tiniest change in state could potentially cause a shader recompile. Thus in practice while the application in many cases does have additional information about when the ideal time to compile is, it also has to deal with an order of magnitude more potential compilations. In practice many of these will be deduplicated by the driver and not actually trigger a backend compile, but this is of course unpredictable to the application.
So again, it's not so much a "simple" question of budgets, motivation or even time to some extent... the reality is it's a hard problem that did exist before too but has been made worse by a combination of factors, one of which just being an increasingly large scope of many AAA games. Note that many of the games that suffer less from these issues are cases where the scope is intentionally narrowed and the engine/art tools do not expose the ability to create significant amounts of shader permutations to the artists. This of course makes the problem more tractable but at the potential expense of material and effects variety.
The reality is that DX12/Vulkan made improvements in some areas but made it more difficult in others. I wouldn't even call the changes a mistake or claim they weren't necessary at some level, but I just want to point out at some level the problem space around shader permutations in particular is complex on PC and the new APIs take a different attack vector with different pros/cons.
Also worth noting... one of the reasons this is still such a big issue is that GPUs are still rather primitive in some ways when it comes to running larger, general purpose code. No significant advances have really been made in terms of providing softer edges and more portable performance; we're still mostly in the "we'll inline everything into one kernel and your code runs as bad as the worst possible branch, even if it is never taken" world that we were a decade ago. Obviously the hardware problems on this front are difficult as well, but ultimately if we are to continue to write more and more complex systems on the GPU the status quo in the hardware needs to move here too. The fact that we need a bazillion permutations with minor differences to get reasonable performance and large cliffs abound is fundamentally a problem created by GPU architectures.
Also worth noting... one of the reasons this is still such a big issue is that GPUs are still rather primitive in some ways when it comes to running larger, general purpose code. No significant advances have really been made in terms of providing softer edges and more portable performance; we're still mostly in the "we'll inline everything into one kernel and your code runs as bad as the worst possible branch, even if it is never taken" world that we were a decade ago. Obviously the hardware problems on this front are difficult as well, but ultimately if we are to continue to write more and more complex systems on the GPU the status quo in the hardware needs to move here too. The fact that we need a bazillion permutations with minor differences to get reasonable performance and large cliffs abound is fundamentally a problem created by GPU architectures.
As I've said before, there is little financial incentive for most publishers to not release PC games in a suboptimal state whilst consumers continue to buy them day 1 regardless - particularly if the publisher is trying to hit a quarterly release deadline and needs to show revenue for investors.
Consumers grumbling but still buying games day 1 before technical reviewers have had a look is sending the message that the market does tolerate this. You say companies should be held accountable, well the way consumers do that is to not buy something that isn't in an acceptable state to buy. ¯\_(ツ)_/¯.
You can add that devs may be dealing with something that’s been historically true for the last two previous gens of Xbox. It takes a year or two for MS to work out most of kinks.And this makes me wonder specially in conenction to all the talks about ABK acquisition and all the dirt that cames out to light. We have seen this behavior in many titles before, xbox and pc versions seems incomplete in comaprisson to PS5 version. PS5 version of the product often offers better performance and full features, whilse xbox version is badly optimised, missing RT and other features and takes weeks if not months of patches to get it to the state where you can considered it complete.
Its clear that one of the platforms was chosen as lead platform, this platform received good complete product on realase day with all features. We know that companies pay for exclusive deals, exclusive content, time exclusivity etc etc IMO what we se in those examples is just one platform chosen as lead platform wich was influenced by special deal.
This is just my observation and you can grill me for that but here comes why i think this could be the fact.
Time is money, so if time=money and one platfrom cleary had more time
"Only reason XSX does not run as well is because it was not given the time needed."
so ps5 version had more time=more money where does money come from
Anyway back to being serious again. Its is a huge problem as you mentioned it and i agree, really suck for Pc and xbox users.
Thanks, I seemingly missed this article. Very interesting!![]()
The evolution of Xbox One - as told by the SDK leak
The recent leak of the Xbox One development tools - along with the accompanying documentation - gives us a fascinating …www.eurogamer.net
PBR arguably made things worse. A unified uber-shader style material/lighting model with a forward renderer was not the popular way to implement PBR. The most popular way in which PBR was implemented was with tons of specialized/separate material/lighting shaders and deferred renderers ...Does PBR help? Presumably a unified lighting model reduces the amount of branching and thus possible permutations.
PBR arguably made things worse. A unified uber-shader style material/lighting model with a forward renderer was not the popular way to implement PBR. The most popular way in which PBR was implemented was with tons of specialized/separate material/lighting shaders and deferred renderers ...
The permutation problem is a self-inflicted disease among the industry where you have a self-fulfilling prophecy of developers creating all sorts of shaders so that the compilers will generate the optimal code in terms of occupancy/register pressure or memory usage and soon then after IHVs will catch on to then design their hardware around this common usage pattern. This force propagates fierce competition between different developers and hardware vendors to get the highest performance. No developer/vendor are going to optimize their renderer/hardware respectively to minimize permutation/compilation times at the cost of real-time performance. The choice becomes more obvious, it's either the developer/vendor gets left behind potentially going out of business or stay relevant to reap the rewards ...