aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine/Methods.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2020-10-20 19:03:20 -0300
committerGitHub <noreply@github.com>2020-10-20 19:03:20 -0300
commit2dcc6333f8cbb959293832f52857bdaeab1918bf (patch)
tree1aefd3ff6abb23d1a4efc78ee14274283b9041a4 /Ryujinx.Graphics.Gpu/Engine/Methods.cs
parent08332bdc041a594d389b0b732b3c4b5f8573e3fb (diff)
Fix image binding format (#1625)
* Fix image binding format * XML doc
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/Methods.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/Methods.cs54
1 files changed, 4 insertions, 50 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/Methods.cs b/Ryujinx.Graphics.Gpu/Engine/Methods.cs
index 7f567071..d4988f35 100644
--- a/Ryujinx.Graphics.Gpu/Engine/Methods.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/Methods.cs
@@ -1014,7 +1014,7 @@ namespace Ryujinx.Graphics.Gpu.Engine
{
var descriptor = info.Textures[index];
- Target target = GetTarget(descriptor.Type);
+ Target target = ShaderTexture.GetTarget(descriptor.Type);
if (descriptor.IsBindless)
{
@@ -1034,9 +1034,10 @@ namespace Ryujinx.Graphics.Gpu.Engine
{
var descriptor = info.Images[index];
- Target target = GetTarget(descriptor.Type);
+ Target target = ShaderTexture.GetTarget(descriptor.Type);
+ Format format = ShaderTexture.GetFormat(descriptor.Format);
- imageBindings[index] = new TextureBindingInfo(target, descriptor.HandleIndex, descriptor.Flags);
+ imageBindings[index] = new TextureBindingInfo(target, format, descriptor.HandleIndex, descriptor.Flags);
}
TextureManager.SetGraphicsImages(stage, imageBindings);
@@ -1097,53 +1098,6 @@ namespace Ryujinx.Graphics.Gpu.Engine
}
/// <summary>
- /// Gets texture target from a sampler type.
- /// </summary>
- /// <param name="type">Sampler type</param>
- /// <returns>Texture target value</returns>
- private static Target GetTarget(SamplerType type)
- {
- type &= ~(SamplerType.Indexed | SamplerType.Shadow);
-
- switch (type)
- {
- case SamplerType.Texture1D:
- return Target.Texture1D;
-
- case SamplerType.TextureBuffer:
- return Target.TextureBuffer;
-
- case SamplerType.Texture1D | SamplerType.Array:
- return Target.Texture1DArray;
-
- case SamplerType.Texture2D:
- return Target.Texture2D;
-
- case SamplerType.Texture2D | SamplerType.Array:
- return Target.Texture2DArray;
-
- case SamplerType.Texture2D | SamplerType.Multisample:
- return Target.Texture2DMultisample;
-
- case SamplerType.Texture2D | SamplerType.Multisample | SamplerType.Array:
- return Target.Texture2DMultisampleArray;
-
- case SamplerType.Texture3D:
- return Target.Texture3D;
-
- case SamplerType.TextureCube:
- return Target.Cubemap;
-
- case SamplerType.TextureCube | SamplerType.Array:
- return Target.CubemapArray;
- }
-
- Logger.Warning?.Print(LogClass.Gpu, $"Invalid sampler type \"{type}\".");
-
- return Target.Texture2D;
- }
-
- /// <summary>
/// Issues a texture barrier.
/// This waits until previous texture writes from the GPU to finish, before
/// performing new operations with said textures.