0
0
Fork 0

Ensure a valid shared memory size is used

This commit is contained in:
gdkchan 2019-12-09 18:57:49 -03:00 committed by Thog
parent 66d91cbc6c
commit ad3bc2531b

View file

@ -20,9 +20,12 @@ namespace Ryujinx.Graphics.Gpu.Engine
ulong shaderGpuVa = shaderBaseAddress.Pack() + (uint)dispatchParams.ShaderOffset; ulong shaderGpuVa = shaderBaseAddress.Pack() + (uint)dispatchParams.ShaderOffset;
// Note: A size of 0 is also invalid, the size must be at least 1.
int sharedMemorySize = Math.Clamp(dispatchParams.SharedMemorySize & 0xffff, 1, _context.Capabilities.MaximumComputeSharedMemorySize);
ComputeShader cs = _shaderCache.GetComputeShader( ComputeShader cs = _shaderCache.GetComputeShader(
shaderGpuVa, shaderGpuVa,
dispatchParams.SharedMemorySize & 0xffff, sharedMemorySize,
dispatchParams.UnpackBlockSizeX(), dispatchParams.UnpackBlockSizeX(),
dispatchParams.UnpackBlockSizeY(), dispatchParams.UnpackBlockSizeY(),
dispatchParams.UnpackBlockSizeZ()); dispatchParams.UnpackBlockSizeZ());