Current Generation Games Analysis Technical Discussion [2020-2021] [XBSX|S, PS5, PC]

Status
Not open for further replies.
In the games stack presentation he makes a specific point that the data wasn't exposed before. Unless I'm mis remembering, but I'm pretty sure he said that.
thank you. This is what I wanted. I'll go back to the SFS presentation and see if I can find this part.

edit: I cannot find it. @Jay help?

Implications are pretty large here, it pretty much means even though not exposed on DirectX12 for PC, this type of feature would have been available on PS4 and XBO forward as their own APIs let them bypass any sort of alignment required with PC.
 
Last edited:
thank you. This is what I wanted. I'll go back to the SFS presentation and see if I can find this part.

edit: I cannot find it. @Jay help?

Implications are pretty large here, it pretty much means even though not exposed on DirectX12 for PC, this type of feature would have been available on PS4 and XBO forward as their own APIs let them bypass any sort of alignment required with PC.
I'll try to find it, as I watched 2021 and went back and watched some previous SFS talks afterwards, so it may have been in one of those.

Can't look right now, but I'll try scrubbing through a couple today

Edit : here you go @iroboto
The first 6:30min she explains that it's opaque then goes on to explain that SF exposes what was a black box.
Worth watching it all, but that's as much as I could do at mo.
 
Last edited:
I'll try to find it, as I watched 2021 and went back and watched some previous SFS talks afterwards, so it may have been in one of those.

Can't look right now, but I'll try scrubbing through a couple today

Edit : here you go @iroboto
The first 6:30min she explains that it's opaque then goes on to explain that SF exposes what was a black box.
Worth watching it all, but that's as much as I could do at mo.
Sure but that doesn’t mean the hardware was available in 2012 to see what the GPU was sampling. That’s the part I’m looking for.
 
Sure but that doesn’t mean the hardware was available in 2012 to see what the GPU was sampling. That’s the part I’m looking for.
Unless vulkan exposed the data prior to DX12U. That's the only chance you have to work out if the data could've been exposed.
As I said unsure where the data was being blocked in the stack.

But in DX12U compared to DX12 this is a new feature of it being exposed. Vulkan is your only chance to find out the specific your looking for I suspect.
 
can you link this evidence?

Sampler feedback is new to DX12, but I don't see any evidence the data was visible on vulkan or any specific AMD related call as far back as before XBO generation.

I have a strong feeling this is getting intertwined with PRT of DX11.1+

There is a simpler method to check this however.
Not sure if @DmitryKo DX checker will check, but Sampler Feedback has a support flag. If his tool is updated to support Sampler Feedback flag, just run it against a 7970 and see if it comes up as true. Honestly any device prior to 6000+ series will suffice. It would be curious if it supported Tier 1_0. Though it wouldn't surprise me if the older models support 0_9 if what you say is true.


Code:
[SIZE=5][B]Feature Support[/B][/SIZE]
Sampler feedback support is not required as part of a Direct3D feature level.

Support for sampler feedback is queryable from a CheckFeatureSupport capability tier.

The tiers are organized as version-numbers-with-fractions as follows:

[LIST]
[*]TIER_NOT_SUPPORTED indicates sampler feedback is not supported. Attempts at calling sampler feedback APIs represent an error.
[*]TIER_0_9 (i.e., version 0.9) indicates the following.
[LIST]
[*]Sampler feedback is supported for samplers with these texture addressing modes:
[LIST]
[*]D3D12_TEXTURE_ADDRESS_MODE_WRAP
[*]D3D12_TEXTURE_ADDRESS_MODE_CLAMP
[/LIST]
[*]The Texture2D shader resource view passed in to feedback-writing HLSL methods has these restrictions:
[LIST]
[*]The MostDetailedMip field must be 0.
[*]The MipLevels count must span the full mip count of the resource.
[*]The PlaneSlice field must be 0.
[*]The ResourceMinLODClamp field must be 0.
[/LIST]
[*]The Texture2DArray shader resource view passed in to feedback-writing HLSL methods has these restrictions:
[LIST]
[*]All the limitations as in Texture2D above, and
[*]The FirstArraySlice field must be 0.
[*]The ArraySize field must span the full array element count of the resource.
[/LIST]
[/LIST]
[*]TIER_1_0 (i.e., version 1.0) indicates sampler feedback is supported for all texture addressing modes, and feedback-writing methods are supported irrespective of the passed-in shader resource view.
[/LIST]

I ran @DmitryKo DX checker on my vega 56:

Maximum feature level : D3D_FEATURE_LEVEL_12_1 (0xc100)
TiledResourcesTier : D3D12_TILED_RESOURCES_TIER_3 (3)
ResourceBindingTier : D3D12_RESOURCE_BINDING_TIER_3 (3)
...
MeshShaderTier : D3D12_MESH_SHADER_TIER_NOT_SUPPORTED (0)
SamplerFeedbackTier : D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED (0)
 
I ran @DmitryKo DX checker on my vega 56:

Maximum feature level : D3D_FEATURE_LEVEL_12_1 (0xc100)
TiledResourcesTier : D3D12_TILED_RESOURCES_TIER_3 (3)
ResourceBindingTier : D3D12_RESOURCE_BINDING_TIER_3 (3)
...
MeshShaderTier : D3D12_MESH_SHADER_TIER_NOT_SUPPORTED (0)
SamplerFeedbackTier : D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED (0)
Thank you. If I could give you 50 upvotes I would here.
 
no, I would disagree that is what sampler feedback does.
It's literally written here:
https://github.com/microsoft/DirectX-Specs/blob/master/d3d/SamplerFeedback.md

What it does and how it is used are 2 completely separate things.

What it does:
Sampler Feedback is a Direct3D feature for capturing and recording texture sampling information and locations. Without sampler feedback, these details would be opaque to the developer.

The motivation for why it exists:
Sampler feedback is one feature with two distinct usage scenarios: streaming and texture-space shading.

I'm asking if Sampler Feedback the function, not how it's used, I don't care about it's performance profile relative to PS5.
I want to know, if Sampler Feedback FUNCTION is in a 7970 as claimed by that tweet.

I don't frankly care about how both consoles will go about streaming their textures. It's not a relevant point to me because SVT systems come in a whole slew of different setups for a variety of reasons. TLDR; I don't care. SFS has nothing to do with loading times. The furthest thing there is to having any relevancy in SSD speed discussions.

But if you make a statement that Sampler Feedback hardware exists in a 7970 and was made in 2012, then I do care. Because I want to know if that was just hardware that was present but not yet exploited by direct X 10 years ago. And they decided to sit on that for nearly 10 years longer to finally integrate it into DX12.

The current distinct usages for sampler feedback is to capture and record texture sampling information and location which is highly desirable for texture Streaming and texture space shading. For all we know, it may have other uses in the future, because at the end of the day, its purpose is to let you know what your GPU sampled and where, even then there are high performance impacts for performing sampling feedback, such that it is recommended to perform this function only 1% of the time for your sampling. You do not call SF every single time.

One should not be linking it to streaming textures only. And this is where I have a problem with that reddit post.

And texture space shading is a possibility since Direct X 11 GPU

https://gpuopen.com/learn/texel-shading/
 
Yes and is streaming virtual textures. Sampler feedback isn’t an enabler of those systems. I don’t think that has been an implication.
From the article about SF, its not that SF enables texture space shading, it makes it a lot more practical and much less expensive. Just as SF makes texture streaming/tiles resources a lot more feasible/practical as a result of its ability to give devs feedback so they make better/more accurate decisions and less guesswork and make more optimal use of available resources.
 
Yes and is streaming virtual textures. Sampler feedback isn’t an enabler of those systems. I don’t think that has been an implication.

regardless I have the information I want.
But if it doesn't support DX12U, would you expect it to be exposed?
So the hardware itself may actually be able to send the data but not exposed by DX12.
 
From the article about SF, its not that SF enables texture space shading, it makes it a lot more practical and much less expensive. Just as SF makes texture streaming/tiles resources a lot more feasible/practical as a result of its ability to give devs feedback so they make better/more accurate decisions and less guesswork and make more optimal use of available resources.

Tiled resources is rarely use by devs. All virtual resources system use software indirection.

https://gpuopen.com/performance/

Hardware tiled resources aren't recommanded by AMD because of performance problem. At least sampler feedback seems to have much better performance.

  • Tiled/Sparse resources:
    • We don’t recommend them based on their performance hit both on GPU and CPU.
    • Instead use sub allocations and the Copy/Transfer queue to defrag memory.
    • Never place high traffic resources in Tiled/Sparse (e.g. render targets, depth targets, UAVs/storage buffers, acceleration structures)

And SF has the same problem than hardware tiled resource there is no UpdateTileMappingsIndirect doesn't exist in DirectX and it means you need to use the CPU for updating tile. This is why devs use compute for doing this.

https://forum.beyond3d.com/posts/1868601/

Some dev wait it since a very long time. But it seems it has a security problem.
 
Last edited:
But if it doesn't support DX12U, would you expect it to be exposed?
So the hardware itself may actually be able to send the data but not exposed by DX12.
Hmm. I don’t think SF is a DX12U only feature. It’s has a flag and tier level like any other feature part of Direct3D. For a GPU to be DX12U certified it must among other things has support SF Tier 1.

AMD would be the ones to expose SF on their cards now that SF is a direct3d feature. No reason why they shouldn’t.
 
Tiled resources is rarely use by devs. All virtual resources system use software indirection.

https://gpuopen.com/performance/

Hardware tiled resources aren't recommanded by AMD because of performance problem. At least sampler feedback seems to have much better performance.



And SF has the same problem than hardware tiled resource there is no UpdateTileMappingsIndirect doesn't exist in DirectX and it means you need to use the CPU for updating tile. This is why devs use compute for doing this.

https://forum.beyond3d.com/posts/1868601/

Some dev wait it since a very long time. But it seems it has a security problem.

"
Software-based residency checks can implement arbitrarily small granularities, but applications that implement software-based residency checks must perform a traversal of the residency structure (which includes at least one command/response exchange between the application and the residency structure) for every texture sampling operation. Thus, a software-based residency check could be required to traverse the residency structure for every rendered pixel, which would reduce the performance of the graphics pipeline and increase latency.

Residency checks for texture blocks of arbitrary granularity can be performed in hardware, and therefore without the command/response overhead of software-based residency checks, by storing metadata that encodes compression parameters of a texture block and a residency status of the texture block. The metadata is stored in a GPU memory that is also used to store the texture block for access by a graphics pipeline implemented by the GPU. A shader in the graphics pipeline accesses the metadata for the texture block in conjunction with requesting the texture block to perform a shading operation. For example, the metadata can be accessed concurrently with requesting the texture block. If the metadata indicates that the texture block is resident in the GPU memory, the request for the data in the texture block is returned to the shader. Thus, no additional overhead is incurred by the residency check if the texture block is resident in the GPU memory. If the metadata indicates that the texture block is not resident in the GPU memory, a signal is fed back to the shader to indicate that the requested data is not resident in the GPU memory. The shader can populate the non-resident texture block (e.g., by loading the texture block from disk or procedurally generating the data for the texture block) in response to receiving the feedback. The shader can then re-access the metadata in conjunction (e.g., concurrently) with the texture block. The additional overhead required to perform the residency check in the event that the texture block is not resident in the GPU memory is minimal because it is performed in the flow of the sampling operation, e.g., in conjunction with or concurrently with attempting to access the texture block."
 
- Both versions run at a native resolution of 2560x1440p. - Same texturing, shading, reflections, anisotropic filtering, drawing distance ... identical. - When starting a new game PS5 is slightly faster, but when continuing a saved game, Series X is the fastest (both cases by tenths of a second). - Both versions run at locked 60FPS, with slight sttutering in the video sequences.
- The PS5 version has been released 5 months later. - PS5 runs at a dynamic 2160p resolution, 1800p is the most common resolution. Xbox Series X runs at 1440p and Xbox Series S at 1080p dynamic (900p typical). - PS5 has slightly better shadows than SeriesX. Series S has a very low shadow setting. - Same drawing and pop-in distance in all 3 versions. - The framerate is somewhat more stable on PS5 compared to Series X. Series S does not seem to suffer drops. - Slightly faster loading times on PS5. - The lighting also seems to have been improved in some respects on PS5. - The textures remain the same in the 3 versions. - These differences are probably due to the Xbox Series versions being out of date. I do not rule out that a patch will arrive soon.
 
Status
Not open for further replies.
Back
Top