by 0mnicydle » Mon Dec 19, 2022 8:57 am
Whatever path ends up being taken in the future, I just want to say thank you for turning your attention to this issue. I'm just happy it's "on the radar" now.
Also I just want to say that if there's a mitigation, but it would be a ton of work and it still won't address permutations, it might not be worth the effort. If I knew that all I had to do was get through that initial flurry of stutters on the first level of something, I might not have ever complained about this. But in BoA for instance, it seems every level has at least one more shader related stutter at some point, and this is the issue I find most concerning. I verify this by immediately quitting, clearing standby memory, and relaunching the game to see if the stutter reappears. If it doesn't, I feel I can safely say it's shader related as if it was an asset or entity related stutter it would have come back, especially after clearing standby memory. And sometimes I even go the extra mile and clear the shader cache and see if that particular stutter returns in the same exact spot, and every time I have gone this extra length it has proven true. I don't know, but I strongly suspect these ongoing stutters are permutation related just from paying attention to what's in the scene when it happens; I think it's often related to transparent things, like every transparent sprite/texture needs its own permutation or something (or maybe one for every new alpha value)? Just wild speculation on my part here, sorry...
Now also just let me say that last night I came across something interesting... apparently there is a contingent of people using DXVK (on Windows) in those DX games that didn't go through "heroics" to eliminate shader related stutter, because it uses async shader compile. So I'm wondering, could async shader compile be applied selectively, or is it all or nothing? Just wondering if you could use async on all the low hanging fruit to avoid the significant time investment that was among the earliest objections to the idea, and if that would be able to cover these permutations? I feel like of all things, a transparency effect not being present for a frame or two would be among the least noticeable things, but then again maybe in reality what would actually happen is the the object just wouldn't be visible at all? I don't know... All I know is for myself, I would much prefer "pop-in" to stutter. When Rage first released and it was capped at 60fps and had texture pop-in as a result of strictly budgeted streaming operations, I remember much weeping and gnashing of teeth about it, but I thought it was absolutely glorious compared to the non-stop stutter fest of the typical Unreal engine game at the time (and sadly mostly to this day).
Whatever path ends up being taken in the future, I just want to say thank you for turning your attention to this issue. I'm just happy it's "on the radar" now.
Also I just want to say that if there's a mitigation, but it would be a ton of work and it still won't address permutations, it might not be worth the effort. If I knew that all I had to do was get through that initial flurry of stutters on the first level of something, I might not have ever complained about this. But in BoA for instance, it seems every level has at least one more shader related stutter at some point, and this is the issue I find most concerning. I verify this by immediately quitting, clearing standby memory, and relaunching the game to see if the stutter reappears. If it doesn't, I feel I can safely say it's shader related as if it was an asset or entity related stutter it would have come back, especially after clearing standby memory. And sometimes I even go the extra mile and clear the shader cache and see if that particular stutter returns in the same exact spot, and every time I have gone this extra length it has proven true. I don't know, but I strongly suspect these ongoing stutters are permutation related just from paying attention to what's in the scene when it happens; I think it's often related to transparent things, like every transparent sprite/texture needs its own permutation or something (or maybe one for every new alpha value)? Just wild speculation on my part here, sorry...
Now also just let me say that last night I came across something interesting... apparently there is a contingent of people using DXVK (on Windows) in those DX games that didn't go through "heroics" to eliminate shader related stutter, because it uses async shader compile. So I'm wondering, could async shader compile be applied selectively, or is it all or nothing? Just wondering if you could use async on all the low hanging fruit to avoid the significant time investment that was among the earliest objections to the idea, and if that would be able to cover these permutations? I feel like of all things, a transparency effect not being present for a frame or two would be among the least noticeable things, but then again maybe in reality what would actually happen is the the object just wouldn't be visible at all? I don't know... All I know is for myself, I would much prefer "pop-in" to stutter. When Rage first released and it was capped at 60fps and had texture pop-in as a result of strictly budgeted streaming operations, I remember much weeping and gnashing of teeth about it, but I thought it was absolutely glorious compared to the non-stop stutter fest of the typical Unreal engine game at the time (and sadly mostly to this day).