diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2021-08-11 18:56:59 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-11 18:56:59 -0300 |
| commit | 3148c0c21cb45a92ff77344027757fb4808bb3cb (patch) | |
| tree | ce4eed3ddb971b25afbe3e64c91ab33d2cfbfcb2 /Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs | |
| parent | d44d8f2eb6bb97f185add50e61443e79e8581123 (diff) | |
Unify GpuAccessorBase and TextureDescriptorCapableGpuAccessor (#2542)
* Unify GpuAccessorBase and TextureDescriptorCapableGpuAccessor
* Shader cache version bump
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs b/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs index 35507449..54b4133a 100644 --- a/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs +++ b/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs @@ -4,10 +4,13 @@ using Ryujinx.Graphics.Shader; namespace Ryujinx.Graphics.Gpu.Shader { - abstract class TextureDescriptorCapableGpuAccessor : GpuAccessorBase, IGpuAccessor + abstract class TextureDescriptorCapableGpuAccessor : IGpuAccessor { - public TextureDescriptorCapableGpuAccessor(GpuContext context) : base(context) + private readonly GpuContext _context; + + public TextureDescriptorCapableGpuAccessor(GpuContext context) { + _context = context; } public abstract T MemoryRead<T>(ulong address) where T : unmanaged; @@ -15,6 +18,42 @@ namespace Ryujinx.Graphics.Gpu.Shader public abstract ITextureDescriptor GetTextureDescriptor(int handle, int cbufSlot); /// <summary> + /// Queries host about the presence of the FrontFacing built-in variable bug. + /// </summary> + /// <returns>True if the bug is present on the host device used, false otherwise</returns> + public bool QueryHostHasFrontFacingBug() => _context.Capabilities.HasFrontFacingBug; + + /// <summary> + /// Queries host about the presence of the vector indexing bug. + /// </summary> + /// <returns>True if the bug is present on the host device used, false otherwise</returns> + public bool QueryHostHasVectorIndexingBug() => _context.Capabilities.HasVectorIndexingBug; + + /// <summary> + /// Queries host storage buffer alignment required. + /// </summary> + /// <returns>Host storage buffer alignment in bytes</returns> + public int QueryHostStorageBufferOffsetAlignment() => _context.Capabilities.StorageBufferOffsetAlignment; + + /// <summary> + /// Queries host support for readable images without a explicit format declaration on the shader. + /// </summary> + /// <returns>True if formatted image load is supported, false otherwise</returns> + public bool QueryHostSupportsImageLoadFormatted() => _context.Capabilities.SupportsImageLoadFormatted; + + /// <summary> + /// Queries host GPU non-constant texture offset support. + /// </summary> + /// <returns>True if the GPU and driver supports non-constant texture offsets, false otherwise</returns> + public bool QueryHostSupportsNonConstantTextureOffset() => _context.Capabilities.SupportsNonConstantTextureOffset; + + /// <summary> + /// Queries host GPU texture shadow LOD support. + /// </summary> + /// <returns>True if the GPU and driver supports texture shadow LOD, false otherwise</returns> + public bool QueryHostSupportsTextureShadowLod() => _context.Capabilities.SupportsTextureShadowLod; + + /// <summary> /// Queries texture format information, for shaders using image load or store. /// </summary> /// <remarks> |
