Digital Foundry Article Technical Discussion [2022]

Status
Not open for further replies.
Probably would've stuck with LHA, or studios would use kraken/oodle on cpu?
Think they said it runs ok on last gen.
Did I see they have an avx implementation?

I think MS were banking on just in time streaming to help the Series S make it through the generation. Last gen level decompression would probably have been a limitation in terms of how device usage was envision, I'm guessing.

But yeah, I'm pretty sure that Oodle had on their update page that AVX 256 had been incorporated into at least one of their decompressors. (Just had another check and the one listed is "BC7Prep decode", which is for one of their leading CPU texture decompression algorithms.)

It's a shame that everything about BCPack is NDA'd, even documtation.

Definitely! One page showing the struct for decompression settings on Xbox seemed to have slipped through (zlib, bcpack, both, none, swizzle modes .... stuff), but I can't find it now. It was the reason I though hardware decompression support might be planned for PC, because it wasn't behind an Xbox NDA wall, but it was just a mistake.

I'd like to know if BCPack can be used on individual texture mip map tiles (64KB in size). Maybe they're too small. If you can, might give us an idea of the kind of things that DS GPU decompression will be compatible with - including SFS, which would be cool.
 
@Dictator you guys do any content on why SpiderMan on the PC has constant fluctuating brightness with HDR? Also why are the windows so shimmery and dirty when using RT?
 
@Dictator you guys do any content on why SpiderMan on the PC has constant fluctuating brightness with HDR? Also why are the windows so shimmery and dirty when using RT?
Are you sure the fluctuating brightness isn't there due to your monitor settings? E.g. dynamic HDR settings are horrible in some games as the picture get's constantly bright and dark on some effects.
But yes, up to this day I still don't understand why HDR is such a pain on PC.
 
I think MS were banking on just in time streaming to help the Series S make it through the generation. Last gen level decompression would probably have been a limitation in terms of how device usage was envision, I'm guessing.

But yeah, I'm pretty sure that Oodle had on their update page that AVX 256 had been incorporated into at least one of their decompressors. (Just had another check and the one listed is "BC7Prep decode", which is for one of their leading CPU texture decompression algorithms.)
Yeah, my point was more so that if they had lacked the foresight, they may have had to rely on other things than GPU. If it wasn't performant enough.
Let's say it took a whole cpu core, then that would just become the new baseline for most games.
I'd like to know if BCPack can be used on individual texture mip map tiles (64KB in size). Maybe they're too small. If you can, might give us an idea of the kind of things that DS GPU decompression will be compatible with - including SFS, which would be cool.
SFS is interesting as it may only really provide less latency, save performance (think unity was about 2-3ms), smaller tile cache maybe.
As PS5 can do virtual texturing also, much like PC that does it in software.
So the multiplier as they call it is really to mip map streaming not to PS5.

BCPack you would think could allow for pulling out a single tile, but we don't actually know exactly what it provides.
Given you would think that pc should be able to use BCPack the docs should be available like the other cross platform apis.
So I'm guessing it's not available on pc yet. Has it even been used on XS?
 
I think I'm out here though. I'm happy to disagree with people but I don't even think we're talking about the same things.
no worries; no hard feelings. We're both just reading and writing. Therapeutic to write out our thoughts and put what we think on paper. We'll just give it some time and see if we connect the dots of what each other is saying at a later time.
 
BCPack you would think could allow for pulling out a single tile, but we don't actually know exactly what it provides.
Given you would think that pc should be able to use BCPack the docs should be available like the other cross platform apis.
So I'm guessing it's not available on pc yet. Has it even been used on XS?

I've not seen anyone talking about having used it anywhere sadly. One of the main Oodle compression dudes talking on a compression forum (I think it was him anyway) seemed to have a very good idea of what BCPack was though.

Maybe they're still in the development phase and working with industry partners, and not at the point of even rolling it out into dev kits yet. Maybe they're waiting for DS GPU decompression to roll it out at once?
 
I've not seen anyone talking about having used it anywhere sadly.
I think it's pretty unlikely that it hasn't been used. Any game that wants lossy compression (which games were already shipping with on older consoles) would get the much faster decompress for 'free' if I understand correctly at all.
 
Pretty excited for the XeSS video!

I am really curious how it runs on GPUs without DP4a instruction support like the 5700XT. Comparing the performance to Turing may lead to interesting results.
 
I've not seen anyone talking about having used it anywhere sadly. One of the main Oodle compression dudes talking on a compression forum (I think it was him anyway) seemed to have a very good idea of what BCPack was though.

All we really know is what Microsoft have published or disclosed in technical presentations (Hot Chips) and interviews (Digital Foundry). They state: "Hardware Accelerated Decompression: Game packages and assets are compressed to minimize download times and the amount of storage required for each individual game. With hardware accelerated support for both the industry standard LZ [zlib] as well as a brand new, proprietary algorithm specifically designed for texture data named BCPack".

So we know they focussed only textures with lz being used for general data compression. Oodle have solutions that span both textures and general data. I don't know how Oodle general data compression fares to lz, but I know Oodle's decompressor is much faster than zlib's decompression library - this is when run in software on processors, which isn't relevant to the consoles.

Some game splash screens are littered with tech/mddleware logos so you may have overlooked a bcpack logo (if there is one) amongst the Havoc and SpeedTree logos littering the screen. I was replaying Shadow of War at the weekend and spotted Oodle's logo on the loading screen. You tend to tune them out after a while!
 
This DF video is more technical and I like that a lot. They also aksed many interesting questions like the one about the sharpness control or the deeper ones. The philosophising about what else can be done with AI was exciting to hear. That interview was very good. Great work.
 
Pretty excited for the XeSS video!

I am really curious how it runs on GPUs without DP4a instruction support like the 5700XT. Comparing the performance to Turing may lead to interesting results.
Was that a typo?
Does 5700XT have DP4a?
If it doesn't then XeSS will not be supported.
 
So we know they focussed only textures with lz being used for general data compression. Oodle have solutions that span both textures and general data. I don't know how Oodle general data compression fares to lz, but I know Oodle's decompressor is much faster than zlib's decompression library - this is when run in software on processors, which isn't relevant to the consoles.
I can easily see it just being lz compressed still as most games are still cross gen.
Install sizes seem to be similar and any difference could be asset de-dup if there has been any differences in the odd title.

Also probably makes it easier for smart delivery not having to mess with multiple package formats yet. That's for the devs doing the packaging and smart delivery itself.
 
Oodle have solutions that span both textures and general data. I don't know how Oodle general data compression fares to lz, but I know Oodle's decompressor is much faster than zlib's decompression library - this is when run in software on processors, which isn't relevant to the consoles.

From RAD's webpage
oodle_typical_vbar.png
Oodle Data Compression provides the fastest and highest ratio compressors for game data. There's a perfect Oodle compressor for every need.



I can easily see it just being lz compressed still as most games are still cross gen.
Install sizes seem to be similar and any difference could be asset de-dup if there has been any differences in the odd title.

Again from RAD's webpage
Oodle drops right in to your data pipeline. Oodle can be run with no allocations and no initialization.
Just load a buffer and call Decompress!

Use the same tools and package on every platform.Oodle gets the best out of each platform without the need for different solutions. Oodle supports Windows, PS4, Xbox One, Nintendo Switch, PS3, Xbox 360, Mac, Linux, Android, and iOS, with optimized routines for every architecture.
Oodle has the same API and file formats across all platforms!
 

Attachments

  • oodle_typical_vbar.png
    oodle_typical_vbar.png
    274.8 KB · Views: 1
Again from RAD's webpage
I'm saying that it wouldn't surprise me if they aren't using BCPack yet.
If anything that just highlights another method that can be used. I've also mentioned oodle etc before, that can run on previous gen also. Just never mentioned them as RAD tools.
 
SFS is interesting as it may only really provide less latency, save performance (think unity was about 2-3ms), smaller tile cache maybe.
I've been messing with Intel's SFS demo lately and one of the interesting things is that data rates scale greatly with resolution. For example, a single 360° rotation of the camera only read ~600MB from disk at 1080p but ~2500MB at 4k in the exact same spot. And at 8k this same test grew to a massive ~7500MB.

This has the knock-on effect that Series S should have more effective bandwidth than Series X. It might not save it multiple gigabytes of memory but it could mean the difference between a 500MB heap vs 1.5GB heap.
 
I've been messing with Intel's SFS demo lately and one of the interesting things is that data rates scale greatly with resolution. For example, a single 360° rotation of the camera only read ~600MB from disk at 1080p but ~2500MB at 4k in the exact same spot. And at 8k this same test grew to a massive ~7500MB.

This has the knock-on effect that Series S should have more effective bandwidth than Series X. It might not save it multiple gigabytes of memory but it could mean the difference between a 500MB heap vs 1.5GB heap.
Small correction:

I was quoting the wrong numbers. The relative differences are still the same but a 360° rotation read ~250MB at 1080p, ~600MB at 1440p, ~900MB at 4k, and 2GB+ at 8k. Those other numbers are still accurate but they're from a different test I made using the built-in rolling demo.
 
Status
Not open for further replies.
Back
Top