diff options
| author | Mary <me@thog.eu> | 2020-11-17 22:20:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-17 22:20:17 +0100 |
| commit | 383c0390370aa52243abfd1189d23b080cbfbb14 (patch) | |
| tree | 03a8436f3ad7db804ec2a7ae54e559c3fab66efb /Ryujinx.Graphics.Gpu/Image/TextureDescriptor.cs | |
| parent | 787e20937fc29884e94497d2ab993ca6cdae7dc6 (diff) | |
shader cache: Fix invalid virtual address clean up (#1717)
* shader cache: Fix invalid virtual address clean up
This fix an issue causing the virtual address of texture descriptors to
not be cleaned up when caching and instead cleaning texture format and swizzle.
This should fix duplicate high duplication in the cache for certain
games and possible texture corruption issues.
**THIS WILL INVALIDATE ALL SHADER CACHE LEVELS CONSIDERING THE NATURE OF THE ISSUE**
* shader cache: Address gdk's comment
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Image/TextureDescriptor.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Image/TextureDescriptor.cs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Ryujinx.Graphics.Gpu/Image/TextureDescriptor.cs b/Ryujinx.Graphics.Gpu/Image/TextureDescriptor.cs index 74fb9887..76d97bf8 100644 --- a/Ryujinx.Graphics.Gpu/Image/TextureDescriptor.cs +++ b/Ryujinx.Graphics.Gpu/Image/TextureDescriptor.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.Gpu.Image /// <summary> /// Maxwell texture descriptor, as stored on the GPU texture pool memory region. /// </summary> - struct TextureDescriptor + struct TextureDescriptor : ITextureDescriptor { #pragma warning disable CS0649 public uint Word0; @@ -239,12 +239,12 @@ namespace Ryujinx.Graphics.Gpu.Image GuestTextureDescriptor result = new GuestTextureDescriptor { Handle = uint.MaxValue, - Descriptor = this - }; + Format = UnpackFormat(), + Target = UnpackTextureTarget(), + IsSrgb = UnpackSrgb(), + IsTextureCoordNormalized = UnpackTextureCoordNormalized(), - // Clear the virtual address - result.Descriptor.Word0 = 0; - result.Descriptor.Word2 &= 0xFFFF0000; + }; return result; } |
