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)
|
private static int ZcullGetCtxSize(ServiceCtx Context)
|
||||||
{
|
{
|
||||||
long InputPosition = Context.Request.GetBufferType0x21Position();
|
|
||||||
long OutputPosition = Context.Request.GetBufferType0x22Position();
|
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.");
|
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
|
||||||
|
|
||||||
return NvResult.Success;
|
return NvResult.Success;
|
||||||
|
@ -48,9 +53,23 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
||||||
|
|
||||||
private static int ZcullGetInfo(ServiceCtx Context)
|
private static int ZcullGetInfo(ServiceCtx Context)
|
||||||
{
|
{
|
||||||
long InputPosition = Context.Request.GetBufferType0x21Position();
|
|
||||||
long OutputPosition = Context.Request.GetBufferType0x22Position();
|
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.");
|
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
|
||||||
|
|
||||||
return NvResult.Success;
|
return NvResult.Success;
|
||||||
|
@ -128,9 +147,15 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuGpu
|
||||||
|
|
||||||
private static int GetActiveSlotMask(ServiceCtx Context)
|
private static int GetActiveSlotMask(ServiceCtx Context)
|
||||||
{
|
{
|
||||||
long InputPosition = Context.Request.GetBufferType0x21Position();
|
|
||||||
long OutputPosition = Context.Request.GetBufferType0x22Position();
|
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.");
|
Context.Ns.Log.PrintStub(LogClass.ServiceNv, "Stubbed.");
|
||||||
|
|
||||||
return NvResult.Success;
|
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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue