From 796e5d14b4fadc15439d273f8ff8f9e9afc4033a Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sun, 2 Feb 2020 00:25:52 -0300 Subject: Use correct shader local memory size instead of a hardcoded size (#914) * Use correct shader local size instead of a hardcoded size * Remove unused uniform block * Update XML doc * Local memory size has 23 bits on maxwell * Generate compute QMD struct from nv open doc header * Remove dummy arrays when shared or local memory is not used, other improvements --- Ryujinx.Graphics.Gpu/Engine/ComputeParams.cs | 173 --------------------------- 1 file changed, 173 deletions(-) delete mode 100644 Ryujinx.Graphics.Gpu/Engine/ComputeParams.cs (limited to 'Ryujinx.Graphics.Gpu/Engine/ComputeParams.cs') diff --git a/Ryujinx.Graphics.Gpu/Engine/ComputeParams.cs b/Ryujinx.Graphics.Gpu/Engine/ComputeParams.cs deleted file mode 100644 index c19b43d8..00000000 --- a/Ryujinx.Graphics.Gpu/Engine/ComputeParams.cs +++ /dev/null @@ -1,173 +0,0 @@ -using Ryujinx.Graphics.Gpu.State; -using System; -using System.Runtime.InteropServices; - -namespace Ryujinx.Graphics.Gpu.Engine -{ - /// - /// Compute uniform buffer parameters. - /// - struct UniformBufferParams - { - public int AddressLow; - public int AddressHighAndSize; - - /// - /// Packs the split address to a 64-bits integer. - /// - /// Uniform buffer GPU virtual address - public ulong PackAddress() - { - return (uint)AddressLow | ((ulong)(AddressHighAndSize & 0xff) << 32); - } - - /// - /// Unpacks the uniform buffer size in bytes. - /// - /// Uniform buffer size in bytes - public ulong UnpackSize() - { - return (ulong)((AddressHighAndSize >> 15) & 0x1ffff); - } - } - - /// - /// Compute dispatch parameters. - /// - struct ComputeParams - { - public int Unknown0; - public int Unknown1; - public int Unknown2; - public int Unknown3; - public int Unknown4; - public int Unknown5; - public int Unknown6; - public int Unknown7; - public int ShaderOffset; - public int Unknown9; - public int Unknown10; - public SamplerIndex SamplerIndex; - public int GridSizeX; - public int GridSizeYZ; - public int Unknown14; - public int Unknown15; - public int Unknown16; - public int SharedMemorySize; - public int BlockSizeX; - public int BlockSizeYZ; - public int UniformBuffersConfig; - public int Unknown21; - public int Unknown22; - public int Unknown23; - public int Unknown24; - public int Unknown25; - public int Unknown26; - public int Unknown27; - public int Unknown28; - - private UniformBufferParams _uniformBuffer0; - private UniformBufferParams _uniformBuffer1; - private UniformBufferParams _uniformBuffer2; - private UniformBufferParams _uniformBuffer3; - private UniformBufferParams _uniformBuffer4; - private UniformBufferParams _uniformBuffer5; - private UniformBufferParams _uniformBuffer6; - private UniformBufferParams _uniformBuffer7; - - /// - /// Uniform buffer parameters. - /// - public Span UniformBuffers - { - get - { - return MemoryMarshal.CreateSpan(ref _uniformBuffer0, 8); - } - } - - public int Unknown45; - public int Unknown46; - public int Unknown47; - public int Unknown48; - public int Unknown49; - public int Unknown50; - public int Unknown51; - public int Unknown52; - public int Unknown53; - public int Unknown54; - public int Unknown55; - public int Unknown56; - public int Unknown57; - public int Unknown58; - public int Unknown59; - public int Unknown60; - public int Unknown61; - public int Unknown62; - public int Unknown63; - - /// - /// Unpacks the work group X size. - /// - /// Work group X size - public int UnpackGridSizeX() - { - return GridSizeX & 0x7fffffff; - } - - /// - /// Unpacks the work group Y size. - /// - /// Work group Y size - public int UnpackGridSizeY() - { - return GridSizeYZ & 0xffff; - } - - /// - /// Unpacks the work group Z size. - /// - /// Work group Z size - public int UnpackGridSizeZ() - { - return (GridSizeYZ >> 16) & 0xffff; - } - - /// - /// Unpacks the local group X size. - /// - /// Local group X size - public int UnpackBlockSizeX() - { - return (BlockSizeX >> 16) & 0xffff; - } - - /// - /// Unpacks the local group Y size. - /// - /// Local group Y size - public int UnpackBlockSizeY() - { - return BlockSizeYZ & 0xffff; - } - - /// - /// Unpacks the local group Z size. - /// - /// Local group Z size - public int UnpackBlockSizeZ() - { - return (BlockSizeYZ >> 16) & 0xffff; - } - - /// - /// Unpacks the uniform buffers enable mask. - /// Each bit set on the mask indicates that the respective buffer index is enabled. - /// - /// Uniform buffers enable mask - public uint UnpackUniformBuffersEnableMask() - { - return (uint)UniformBuffersConfig & 0xff; - } - } -} \ No newline at end of file -- cgit v1.2.3