Jump to content

Wolfenstein II Gets Turing Support

matrix07012
3 minutes ago, System32.exe said:

That's totally wrong. AAA games sell millions of copies on PC, they dominate the top selling list on Steam.

 

Yeah sure the 1060 will run League at 4K just fine. But to get a playable experience in fast paced games like Overwatch, Fortnite, or PUBG at 4K on a 1060 you need to play on the lowest settings which most people aren't willing to do.

Its still playing at 4k. 

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, RorzNZ said:

Its still playing at 4k. 

?

 

Whatever you say. 4K is awful for e-sports games anyway because like I said, 60Hz only. Unless you drop two grand on a cutting edge display, but at that point why are you only running a 1060?

Dell S2721DGF - RTX 3070 XC3 - i5 12600K

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, System32.exe said:

?

 

Whatever you say. 4K is awful for e-sports games anyway because like I said, 60Hz only. Unless you drop two grand on a cutting edge display, but at that point why are you only running a 1060?

I'm talking about playable fps in 4k with most graphics cards, not specifically a 1060 or how great 4k is for e-sports games. If going by your assumption that you would have a card more powerful than a 1060, if you purchase a $400 4k display (No need for $2k if you want 4k 60hz), then its not really an issue anyway. 

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, RorzNZ said:

I'm talking about playable fps in 4k with most graphics cards, not specifically a 1060 or how great 4k is for e-sports games. If going by your assumption that you would have a card more powerful than a 1060, if you purchase a $400 4k display (No need for $2k if you want 4k 60hz), then its not really an issue anyway. 

4K is not playable for most people.

Most graphics cards in use right now aren't even as fast as the 1060. The bulk of the market right is still people on pre-Pascal GPUs, or on cards like the 1050 or 1050 Ti which are much slower than the 1060.

Dell S2721DGF - RTX 3070 XC3 - i5 12600K

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, System32.exe said:

Most graphics cards in use right now aren't even as fast as the 1060. The bulk of the market right is still people on pre-Pascal GPUs, or on cards like the 1050 or 1050 Ti which are much slower than the 1060. 4K is not viable for most people.

Seeing as they won't be playing Wolfenstein in 4k anyway then, arguing about a 6fps increase, which really won't make a difference to them!

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, System32.exe said:

It is at 4K.

So like 2 FPS at 1080p with RTX on? 

 

/s

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, descendency said:

So like 2 FPS at 1080p with RTX on? 

 

/s

 

Less, (IF WII supported RTX anyway), as this is functionally reverse upsampling, for select areas of the game. The thing is you can only downsample so far before it becomes visible, and in all likelihood it would actually be more noticeable at lower resolutions even if the degree of downsampling doesn't change, (pixel size is generally going to be larger on a lower resolution leading to more distinct borders to the downsampled area's).

 

All that means that whats it's really doing is somewhat normalising the performance gap between 4k and 1080p, and as and when we get even larger 8k and 16k displays down the line this is likely to become a key enabling tech as inversely this effect is going to scale much better as resolution goes up. Of course longterm i expect someone to pull a DLSS type move and hand it off to a machine learning setup to automatically figure out how it should look and apply it via driver updates.

Link to comment
Share on other sites

Link to post
Share on other sites

So basically rendering different parts of the screen at different resolutions?  Or am I misunderstanding?  If that's it, that's pretty cool.  I had the same idea a little while ago, thinking about how you really only see one portion in fine detail and the rest is really just peripheral vision that could easily be done at 1/4 or less.  Of course, to be truly effective this needs to be combined with eye tracking so you render everything you need to in high quality, but nothing you don't.  Based on the demo images, I can see this hasn't gotten to that stage yet and as a result still has probably 80% of the potential benefit yet to be realized.

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

16 hours ago, System32.exe said:

It is at 4K.

I mean all of them are pretty high fps to begin with so I don't see it being super useful. I mean with the 2080ti you are going to be at 100ish fps either way so it really makes no difference. 

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, Ryan_Vickers said:

So basically rendering different parts of the screen at different resolutions?  Or am I misunderstanding?  If that's it, that's pretty cool.  I had the same idea a little while ago, thinking about how you really only see one portion in fine detail and the rest is really just peripheral vision that could easily be done at 1/4 or less.  Of course, to be truly effective this needs to be combined with eye tracking so you render everything you need to in high quality, but nothing you don't.  Based on the demo images, I can see this hasn't gotten to that stage yet and as a result still has probably 80% of the potential benefit yet to be realized.

Not quite correct, however your description would be satisfactory for a certain PlayStation 2 developer in the way they attempted to describe Multi Sampled Anti Aliasing (MSAA).

 

If you've got some technical knowledge you can read the GL spec to see how this works. I'll explain it in brief here. This takes advantage of the same hardware that MSAA uses, multi-sampled buffer outputs, but rather than writing a single shader invocation to multiple buffers based on geometry coverage the single shader invocation is written to multiple pixels in a tiled area of the frame-buffer, and the size of that tiled area is controlled by the developer. It is defined by the "shading rate image" which is a texture array of unsigned 8 bit values that describe up to a 4x4 rectangle for the tiles (can be any size from 1x1 to 4x4, so 1x4 or 4x1 is acceptable).

 

The concept of a fragment (what we traditionally see as a single "pixel") now becomes up to 4x4 pixels, I'm guessing 4x4 is used because MSAA 16x is supported on all the hardware that will support NVIDIA's implementation of variable rate shading. They have specifically left a note in the spec stating that they have left room to define more tile sizes in the future.

 

So in super, super basic terms: This is MSAA but applied to various sized tiles on the frame buffer (so no coverage and no multi sample buffers).

 

MSAA can be thought of as a different resolution, after all 4x MSAA at 1080p has almost identical memory requirements to 4K and roughly the same geometry coverage as 4K.

 

Your comment about eye tracking is called "Foveated Rendering" https://en.wikipedia.org/wiki/Foveated_rendering it works best in VR where we can guarantee that only 1 person is viewing the display with their eyes a fixed distance from it. The spec for variable rate shading specifically mentions how it can be very beneficial for VR applications, which would be Foveated Rendering, however the original idea for Foveated Rendering involved warping the geometry to dedicate more fragments where the eye is focusing on and less around the edges (and then un-warp the result when presenting to the VR display), it's slightly different to what's happening in variable rate shading - where it's not warping the geometry or the frame buffer, it's dropping the quality of the shading by applying shaded fragments to a tiled area.

 

It's weird, we think of fragments as being pixels, but in this case a "fragment" is multiple pixels - because that's how we describe MSAA so it's not incorrect.

 

What's pretty cool is that the variable rate tiles are defined in GPU memory with that R8UI texture array, so a GPU shader can calculate the shading rate. Wolfenstein II is a very good choice of game to do this with as it uses sparse textures that require an analytical pre-pass; the variable rate shading can be added to this pre-pass stage so it should perform surprisingly amazing on Wolfenstein II. It will trade a small bit of extra GPU compute time at the start of the frame and a small bit of GPU memory for the tile definition to save on the more expensive GPU shading rate (which is indeed the next bottleneck we see in graphics rendering, so this is all very good news).

 

I don't see why Intel and AMD cannot implement a solution like this also, I would imagine (and I'm not a GPU engineer) that it would be almost identical to their MSAA solutions. I can't imagine this working very well for a tiled renderer (mobile GPUs), although last time I spoke to NVIDIA and AMD about this a few years ago they claimed their hardware is essentially tiled-based with how it treats the cache so maybe that's a non-issue.

 

EDIT: I've written a lot here, sorry. I want to add that Wolfenstein II already does a really, really good job at reducing the amount of shading that happens in a frame, so variable rate shading would not have as much of a benefit to this game compared to something like a traditional deferred renderer (a basic Unreal Engine game).

 

EDIT2: I can also imagine this becoming a standard for VK/GL - it can be renamed to something else as "shading rate image" feels like a description of what this is used for, rather than what this is doing. I can imagine it being renamed to something like "Image Tiled Fragment" and the spec being more generic in something like "upload a tex image array that describes the tile sizes for fragment outputs across an image" - referencing NV_shading_rate_image. A more generic spec would probably lift the limit of 4x4 tiles and have a minimum requirement of 4x4 and the actual maximum tile size can be queried. I would also expect a requirement would be to make this MSAA compatible also, which would be freaking insane (that's like, 2D MSAA? Crazy).

Unrelated extra: This is also a step towards the idea of variable rate coverage masks, an idea I proposed that redefined MSAA coverage to be across the image, rather than multiplied over buffers (so 1.5x MSAA would be possible).

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, Brooksie359 said:

I mean all of them are pretty high fps to begin with so I don't see it being super useful. I mean with the 2080ti you are going to be at 100ish fps either way so it really makes no difference. 

Most games don't run as well as Wolfenstein 2 though, 100+ FPS isn't the norm for AAA games at 4K.

I'd like to see how well this tech would work in other games.

Dell S2721DGF - RTX 3070 XC3 - i5 12600K

Link to comment
Share on other sites

Link to post
Share on other sites

Can something like this benefit games streaming over the internet? The technique feels like a high quality video compression but for video games.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, GooDBoY920 said:

Can something like this benefit games streaming over the internet? The technique feels like a high quality video compression but for video games.

Practically zero benefit at all. This is more like applying very low quality video compression within the graphics pipeline itself (so blocky artefacts, just like in low-quality video). The idea is to only use it in areas where it would look as close as possible to a non-variable-rate-shaded frame, so no visual quality difference should be perceivable, but that depends on the implementation (blocky artefacts are indeed very possible).

 

The way video encoding works is the pixels themselves are analysed and processed - a video encoder has zero knowledge about where those pixels come from or how they were shaded by some random game or anything like that at all. It would be handy to be able to provide an encoder as much information as possible, but no such mechanism exists and frankly I doubt one would ever exist as video encoding is a general computer science problem rather than a 3D graphics rendering problem. It's almost entirely solved with hardware improvements rather than adding external hinting to the encoder.

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/24/2018 at 4:28 PM, huilun02 said:

Don't know if Nvidia even realizes that all their proprietary jank only amounts to boastful marketing. None of it will become mainstream because they were made exclusive to Nvidia's expensive stuff anyway. Majority of game sales is on consoles that use Radeon graphics so getting developers to do stuff that more than half of all customers can't use, is kind of a waste of resources.

 

Yeah I know you're going to say "but its technological progress"

Making stuff proprietary and black boxing to the point where it impedes its proliferation is not technological progress

People saying "but its technological progress"  are very glad to sacrifice both of their kidneys or first-born.

It's not for technological progress, it's for feeding the greed beyond the next level.

DAC/AMPs:

Klipsch Heritage Headphone Amplifier

Headphones: Klipsch Heritage HP-3 Walnut, Meze 109 Pro, Beyerdynamic Amiron Home, Amiron Wireless Copper, Tygr 300R, DT880 600ohm Manufaktur, T90, Fidelio X2HR

CPU: Intel 4770, GPU: Asus RTX3080 TUF Gaming OC, Mobo: MSI Z87-G45, RAM: DDR3 16GB G.Skill, PC Case: Fractal Design R4 Black non-iglass, Monitor: BenQ GW2280

Link to comment
Share on other sites

Link to post
Share on other sites

So, it ranges from 1x1 to 4x4, instead of dynamically programming everything, what if they just use it to scale to 2x2 instead of 1x1?

I mean it's 4k, on most monitors it's impossible to see individual pixels so i think using 2x2 grids should be fine instead of every single pixel because you can't see a single pixel anyway.

 

Also, much easier! Just 2x2, apply everywhere, job done.

If you want my attention, quote meh! D: or just stick an @samcool55 in your post :3

Spying on everyone to fight against terrorism is like shooting a mosquito with a cannon

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, samcool55 said:

So, it ranges from 1x1 to 4x4, instead of dynamically programming everything, what if they just use it to scale to 2x2 instead of 1x1?

I mean it's 4k, on most monitors it's impossible to see individual pixels so i think using 2x2 grids should be fine instead of every single pixel because you can't see a single pixel anyway.

 

Also, much easier! Just 2x2, apply everywhere, job done.

What you've described is 4x MSAA upscale from 1920x1080 to 4k, it's a very good technique and I have no idea why games don't use it. I use it for my graphics engines, it's particularly useful on mobile devices where GPUs are weak but display resolutions are huge, display DPI is huge.

 

Most mobile tiled GPUs have "free" MSAA 2x so rendering at half resolution with MSAA 2x to upscale to full resolution is really good for saving GPU power.

 

I really have no idea why game engines don't exploit this more. It's always considered a pain to deal with MSAA in shaders for deferred shading, but besides that 4x MSAA @ 1920x1080 has a practically identical memory footprint to a full 4K frame buffer, so the memory cost of all the GBuffers is the same. It even works with dynamic resolution scaling. Perhaps there's a bigger performance cost to the frame-buffer scaled blit resolve than a normal MSAA no scaled blit.

 

One implementation of checker-board rendering actually does use the MSAA buffers this way, but the difference is only 50% of the entire frame is rendered to each frame (disable half of the MSAA buffers during raster) and the other 50% is inferred.

 

 

You'd be wasting the benefits of variable rate shading (as well as wasting a bit of memory for the 8bit tile definition texture) if you just used 2x tiles across the entire screen - the main benefit is the fact that we can dynamically set the tile sizes based on what's happening on screen.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×