forked from Mirror/Ryujinx
Fix NV stubs (#124)
* Fix NV stubs * Compliant with feedback * Oops, Compliant with feedback #2
This commit is contained in:
parent
0979426e63
commit
8e306b3ac1
5 changed files with 69 additions and 3 deletions
|
@ -0,0 +1,8 @@
|
|||
namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
||||
{
|
||||
struct NvGpuGpuGetActiveSlotMask
|
||||
{
|
||||
public int Slot;
|
||||
public int Mask;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
||||
{
|
||||
struct NvGpuGpuGetTpcMasks
|
||||
{
|
||||
public int MaskBufferSize;
|
||||
public int Reserved;
|
||||
public long MaskBufferAddress;
|
||||
public long Unk;
|
||||
}
|
||||
}
|
|
@ -38,9 +38,14 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
|||
|
||||
private static int ZcullGetCtxSize(ServiceCtx Context)
|
||||
{
|
||||
long InputPosition = Context.Request.GetBufferType0x21Position();
|
||||
long OutputPosition = Context.Request.GetBufferType0x22Position();
|
||||
|
||||
NvGpuGpuZcullGetCtxSize Args = new NvGpuGpuZcullGetCtxSize();
|
||||
|
||||
Args.Size = 1;
|
||||
|
||||
AMemoryHelper.Write(Context.Memory, OutputPosition, Args);
|
||||
|
||||
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
|
||||
|
||||
return NvResult.Success;
|
||||
|
@ -48,9 +53,23 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
|||
|
||||
private static int ZcullGetInfo(ServiceCtx Context)
|
||||
{
|
||||
long InputPosition = Context.Request.GetBufferType0x21Position();
|
||||
long OutputPosition = Context.Request.GetBufferType0x22Position();
|
||||
|
||||
NvGpuGpuZcullGetInfo Args = new NvGpuGpuZcullGetInfo();
|
||||
|
||||
Args.WidthAlignPixels = 0x20;
|
||||
Args.HeightAlignPixels = 0x20;
|
||||
Args.PixelSquaresByAliquots = 0x400;
|
||||
Args.AliquotTotal = 0x800;
|
||||
Args.RegionByteMultiplier = 0x20;
|
||||
Args.RegionHeaderSize = 0x20;
|
||||
Args.SubregionHeaderSize = 0xc0;
|
||||
Args.SubregionWidthAlignPixels = 0x20;
|
||||
Args.SubregionHeightAlignPixels = 0x40;
|
||||
Args.SubregionCount = 0x10;
|
||||
|
||||
AMemoryHelper.Write(Context.Memory, OutputPosition, Args);
|
||||
|
||||
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
|
||||
|
||||
return NvResult.Success;
|
||||
|
@ -128,9 +147,15 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
|||
|
||||
private static int GetActiveSlotMask(ServiceCtx Context)
|
||||
{
|
||||
long InputPosition = Context.Request.GetBufferType0x21Position();
|
||||
long OutputPosition = Context.Request.GetBufferType0x22Position();
|
||||
|
||||
NvGpuGpuGetActiveSlotMask Args = new NvGpuGpuGetActiveSlotMask();
|
||||
|
||||
Args.Slot = 0x07;
|
||||
Args.Mask = 0x01;
|
||||
|
||||
AMemoryHelper.Write(Context.Memory, OutputPosition, Args);
|
||||
|
||||
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
|
||||
|
||||
return NvResult.Success;
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
||||
{
|
||||
struct NvGpuGpuZcullGetCtxSize
|
||||
{
|
||||
public int Size;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
||||
{
|
||||
struct NvGpuGpuZcullGetInfo
|
||||
{
|
||||
public int WidthAlignPixels;
|
||||
public int HeightAlignPixels;
|
||||
public int PixelSquaresByAliquots;
|
||||
public int AliquotTotal;
|
||||
public int RegionByteMultiplier;
|
||||
public int RegionHeaderSize;
|
||||
public int SubregionHeaderSize;
|
||||
public int SubregionWidthAlignPixels;
|
||||
public int SubregionHeightAlignPixels;
|
||||
public int SubregionCount;
|
||||
}
|
||||
}
|
Reference in a new issue