So, Direct3D 11.2 is coming :O

Started by
47 comments, last by Adam Miles 10 years, 9 months ago

The fact that Microsoft is making D3D 11.2 a Windows 8.1 exclusive is extremely annoying. Yeah, I know Windows 8 sales haven't been what they wanted them to be, but are they really stupid enough to think that people are going to buy it for minor D3D update? The fact is that not everyone is upgrading to Windows 8, and as long as there is still a large chunk of people using Windows 7, it's going to be a pain in the ass to try and develop with D3D 11.2, so why even bother.

Advertisement

I just wish they lifted the 16K texture size limit at the same time as they introduced tiled ressources, wonder if they'll do that in DX12, would be really nice to just load up those high res 64-128K textures and not have to manage them.


OK, so lets do the maths...

32k => 32768 bits
64k => 65536 bits
128k => 131072 bits

Of course we now need to square those numbers
32k => 1,073,741,824
64k => 6,294,967,296
128k => 1,721,115,869,184

But that's still only 1 bit per pixel, so lets make it RGBA8, x4 to get it into bytes, then /1024 a few times to get the number sane :
32k => 4,294,967,296 bytes => 4.0GB (BC3 -> 1GB, BC1 -> 0.5GB)
64k => 25,179,869,184 bytes => 16.0GB (BC3 -> 4GB, BC1 -> 1.0GB)
128k => 68,719,476,736 bytes => 64.0GB (BC3 -> 16GB, BC1 -> 4.0GB)

Of course that is only the top level mip, I think the maths is you need to add another 1/3 on for all the mip levels (so 5GB+, 21GB+ and 75GB+ all in).

Now, my GPU (AMD HD 7970 ) has 3GB of memory, the largest memory on a single GPU is 6GB on something like an NV Titan.

So, there is a slight size issue with trying to load textures that big into VRAM AND most of it will wasted as you simply won't be looking at the data.

16K with PRT is a sane solution, even if it does involve a bit more work.

The fact that Microsoft is making D3D 11.2 a Windows 8.1 exclusive is extremely annoying. Yeah, I know Windows 8 sales haven't been what they wanted them to be, but are they really stupid enough to think that people are going to buy it for minor D3D update? The fact is that not everyone is upgrading to Windows 8, and as long as there is still a large chunk of people using Windows 7, it's going to be a pain in the ass to try and develop with D3D 11.2, so why even bother.


I think what you'll see is Windows only games not touching it and Console games using it IF it isn't too much trouble to implement in their engine (and by that I mean managing D3D11 and D3D11.2 paths, the supporting code will all be there due to the existence of these features on consoles).

The biggest problem is that if your shop isn't Win8 based then you won't be able to test/implement these features for tools development so things like painting terrain in a live in-game editor suddenly becomes much harder as you'll end up having to do the software solution in order to emulate it :|

(Edit: I'm half wondering how hard it would be to shift our engine at work to support GL4.3 so that, with updated hardware, we could support this via a different backend. )

I just wish they lifted the 16K texture size limit at the same time as they introduced tiled ressources, wonder if they'll do that in DX12, would be really nice to just load up those high res 64-128K textures and not have to manage them.


OK, so lets do the maths...

32k => 32768 bits
64k => 65536 bits
128k => 131072 bits

Of course we now need to square those numbers
32k => 1,073,741,824
64k => 6,294,967,296
128k => 1,721,115,869,184

But that's still only 1 bit per pixel, so lets make it RGBA8, x4 to get it into bytes, then /1024 a few times to get the number sane :
32k => 4,294,967,296 bytes => 4.0GB (BC3 -> 1GB, BC1 -> 0.5GB)
64k => 25,179,869,184 bytes => 16.0GB (BC3 -> 4GB, BC1 -> 1.0GB)
128k => 68,719,476,736 bytes => 64.0GB (BC3 -> 16GB, BC1 -> 4.0GB)

Of course that is only the top level mip, I think the maths is you need to add another 1/3 on for all the mip levels (so 5GB+, 21GB+ and 75GB+ all in).

Now, my GPU (AMD HD 7970 ) has 3GB of memory, the largest memory on a single GPU is 6GB on something like an NV Titan.

So, there is a slight size issue with trying to load textures that big into VRAM AND most of it will wasted as you simply won't be looking at the data.

16K with PRT is a sane solution, even if it does involve a bit more work.

I don't really get your point, the whole point of tiled ressources is that you don't load all that, but you can get more detail when needed, i actually have textures that large & of course i don't want to display the whole thing at full quality, but the same applies for 16K, i'd just like all the work to be offloaded to DX (instead of an array of 16K tex, i'd like to handle it as a single 64tex when, functionally, it's an actual single 64K tex being mapped and not an atlas of smaller textures).

If you mean issues with loading from disk i used amplify from unity, & it's working just fine with 512K textures, and that's a software solution!

Has anyone had the Tiled Resources demo run on a GCN card yet (7850 here)? CheckFeatureSupport with the 13.15.1 driver is telling me tiled resources are not supported at all and the demo falls back to using WARP.

Adam Miles - Principal Software Development Engineer - Microsoft Xbox Advanced Technology Group

Hmm, so the tiled resources won't run on older dx11 gpus...feelsbad.jpg

>removed<

Hmm, so the tiled resources won't run on older dx11 gpus...feelsbad.jpg

you can always try to implement it by yourself.

for example, the first public appearance of mega texture was for DX9 hardware, in enemy territory quake wars (idtech 4 with Opengl 2.1?)..

here is also an "old" (2011) Microsoft DX11 and XNA Math implementation: http://blogs.msdn.com/b/chuckw/archive/2011/10/28/tiledresources11.aspx

"Recursion is the first step towards madness." - "Skegg?ld, Skálm?ld, Skildir ro Klofnir!"
Direct3D 12 quick reference: https://github.com/alessiot89/D3D12QuickRef/
Hi all, I have some good news regarding my queries about support for nvidia devices below the 600 series. It turns out all 400 series or higher cards will support WDDM 1.3 with the forceware 326.01 or later drivers.

I got confirmation of this from a nvidia rep on another forum yesterday (>= fermi cards should use WDDM 1.3), and I've since checked the support in the windows 8.1 preview with my 560Ti, using CheckFeatureSupport with D3D11_FEATURE_DATA_D3D11_OPTIONS1:



TiledResourcesTier D3D11_TILED_RESOURCES_TIER_1 (1) D3D11_TILED_RESOURCES_TIER
MinMaxFiltering 0 int
ClearViewAlsoSupportsDepthOnlyFormats 1 int
MapOnDefaultBuffers 1 int
The updated Tiled Resources demo from page 2 of this thread is also working fine in hardware mode on this 560Ti.

So why was the card initially reporting as WDDM 1.2 in my posts on page 1 of this thread? Well it turns out my motherboard's bios default enables the onboard Intel HD 3000 display adapter in my CPU (Onboard VGA set to AUTO). Since no displays were connected, windows deactivates the device when windows loads, and it never appears in dxdiag or any device enumeration as a display device. I've never used it, never seen it shown as a display option, and never went poking in window's device manager looking for it. Even if you're not using it and windows doesn't present it as an available display device, it's driver is loaded and it's a WDDM 1.2 driver. By design or mistake, any further display devices are also made WDDM 1.2 devices (ie. pci-e graphics cards), even if their driver is WDDM 1.3 capable.

So in short, geforce 400 and 500 series also support the more useful directx 11.2 features, as well as the already confirmed 600 and 700 series. Just make sure any onboard VGA devices are explicitly disabled in your BIOS if you want to play around in the windows 8.1 preview with your nvidia card. As an aside, ivy bridge users shouldn't need to worry since the HD 4000 has a WDDM 1.3 driver included in the windows 8.1 preview.

Oh as a quick addition note: This probably also affects AMD cards used on sandy bridge systems with a HD 3000 capable CPU. You should explicitly disable onboard VGA in your motherboard bios, since the bios default may only 'hide' it in windows.

Further to my post earlier enquiring about AMD support, they replied on their forums with the following:

"Currently tiled resources feature is supported on the HD 7790 and the Kabini based APUs (E.g. A4-5000). Support for all GCN hardware will be available in the coming months."

http://devgurus.amd.com/thread/167090

Adam Miles - Principal Software Development Engineer - Microsoft Xbox Advanced Technology Group

This topic is closed to new replies.

Advertisement