aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2021-08-11 18:56:59 -0300
committerGitHub <noreply@github.com>2021-08-11 18:56:59 -0300
commit3148c0c21cb45a92ff77344027757fb4808bb3cb (patch)
treece4eed3ddb971b25afbe3e64c91ab33d2cfbfcb2 /Ryujinx.Graphics.Gpu/Shader/TextureDescriptorCapableGpuAccessor.cs
parentd44d8f2eb6bb97f185add50e61443e79e8581123 (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.cs43
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>