Use maximum shared memory size supported by hardware
This commit is contained in:
parent
375ee0ba96
commit
0d9672f3ae
6 changed files with 28 additions and 15 deletions
|
@ -75,7 +75,9 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
|||
|
||||
if (context.Config.Stage == ShaderStage.Compute)
|
||||
{
|
||||
context.AppendLine($"shared uint {DefaultNames.SharedMemoryName}[0x100];");
|
||||
string size = NumberFormatter.FormatInt(context.Config.Capabilities.MaximumComputeSharedMemorySize / 4);
|
||||
|
||||
context.AppendLine($"shared uint {DefaultNames.SharedMemoryName}[{size}];");
|
||||
context.AppendLine();
|
||||
}
|
||||
|
||||
|
|
|
@ -2,19 +2,23 @@ namespace Ryujinx.Graphics.Shader
|
|||
{
|
||||
public struct ShaderCapabilities
|
||||
{
|
||||
private static readonly ShaderCapabilities _default = new ShaderCapabilities(32768, 16);
|
||||
// Initialize with default values for Maxwell.
|
||||
private static readonly ShaderCapabilities _default = new ShaderCapabilities(32768, 49152, 16);
|
||||
|
||||
public static ShaderCapabilities Default => _default;
|
||||
|
||||
public int MaximumViewportDimensions { get; }
|
||||
public int StorageBufferOffsetAlignment { get; }
|
||||
public int MaximumViewportDimensions { get; }
|
||||
public int MaximumComputeSharedMemorySize { get; }
|
||||
public int StorageBufferOffsetAlignment { get; }
|
||||
|
||||
public ShaderCapabilities(
|
||||
int maximumViewportDimensions,
|
||||
int maximumComputeSharedMemorySize,
|
||||
int storageBufferOffsetAlignment)
|
||||
{
|
||||
MaximumViewportDimensions = maximumViewportDimensions;
|
||||
StorageBufferOffsetAlignment = storageBufferOffsetAlignment;
|
||||
MaximumViewportDimensions = maximumViewportDimensions;
|
||||
MaximumComputeSharedMemorySize = maximumComputeSharedMemorySize;
|
||||
StorageBufferOffsetAlignment = storageBufferOffsetAlignment;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue