mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-08-20 15:48:43 +02:00
* Viewport swizzle support on NV and clip origin * Initialize default viewport swizzle state, emulate viewport swizzle on shaders when not supported * Address PR feedback
86 lines
1.8 KiB
C#
86 lines
1.8 KiB
C#
namespace Ryujinx.Graphics.Shader
|
|
{
|
|
public interface IGpuAccessor
|
|
{
|
|
public void Log(string message)
|
|
{
|
|
// No default log output.
|
|
}
|
|
|
|
T MemoryRead<T>(ulong address) where T : unmanaged;
|
|
|
|
public int QueryComputeLocalSizeX()
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
public int QueryComputeLocalSizeY()
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
public int QueryComputeLocalSizeZ()
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
public int QueryComputeLocalMemorySize()
|
|
{
|
|
return 0x1000;
|
|
}
|
|
|
|
public int QueryComputeSharedMemorySize()
|
|
{
|
|
return 0xc000;
|
|
}
|
|
|
|
public bool QueryIsTextureBuffer(int handle)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public bool QueryIsTextureRectangle(int handle)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public InputTopology QueryPrimitiveTopology()
|
|
{
|
|
return InputTopology.Points;
|
|
}
|
|
|
|
public int QueryStorageBufferOffsetAlignment()
|
|
{
|
|
return 16;
|
|
}
|
|
|
|
public bool QuerySupportsImageLoadFormatted()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public bool QuerySupportsNonConstantTextureOffset()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public bool QuerySupportsViewportSwizzle()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public TextureFormat QueryTextureFormat(int handle)
|
|
{
|
|
return TextureFormat.R8G8B8A8Unorm;
|
|
}
|
|
|
|
public int QueryViewportSwizzle(int component)
|
|
{
|
|
// Bit 0: Negate flag.
|
|
// Bits 2-1: Component.
|
|
// Example: 0b110 = W, 0b111 = -W, 0b000 = X, 0b010 = Y etc.
|
|
return component << 1;
|
|
}
|
|
}
|
|
}
|