diff options
| author | riperiperi <rhy3756547@hotmail.com> | 2021-09-02 04:17:43 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-02 00:17:43 -0300 |
| commit | f0b00c1ae92a2e8fdff9c532e7f2f79ad708b184 (patch) | |
| tree | 76ac9ca16b6bf8dce852249993eb3486798000b7 /Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs | |
| parent | 142cededd4db2ff4f83a4833580d343a4f0a8cde (diff) | |
Fix TXQ for 3D textures. (#2613)
* Fix TXQ for 3D textures.
Assumes the texture is 3D if the component mask contains Z.
This fixes a bug in UE4 games where parts of the map had garbage pointers to lighting voxels, as the lookup 3D texture was not being initialized. Most notable game is THPS1+2.
May need another PR to keep image store data alive and properly flush it in order using the AutoDeleteCache.
* Get sampler type for TextureSize from bound textures.
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs b/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs index 54b4133a..7c4eea02 100644 --- a/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs +++ b/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs @@ -119,14 +119,14 @@ namespace Ryujinx.Graphics.Gpu.Shader } /// <summary> - /// Queries texture target information. + /// Queries sampler type information. /// </summary> /// <param name="handle">Texture handle</param> /// <param name="cbufSlot">Constant buffer slot for the texture handle</param> - /// <returns>True if the texture is a buffer texture, false otherwise</returns> - public bool QueryIsTextureBuffer(int handle, int cbufSlot = -1) + /// <returns>The sampler type value for the given handle</returns> + public SamplerType QuerySamplerType(int handle, int cbufSlot = -1) { - return GetTextureDescriptor(handle, cbufSlot).UnpackTextureTarget() == TextureTarget.TextureBuffer; + return GetTextureDescriptor(handle, cbufSlot).UnpackTextureTarget().ConvertSamplerType(); } /// <summary> |
