Implement GPU primitive restart (#221)
This commit is contained in:
parent
dc04b5465f
commit
6479c3e484
4 changed files with 47 additions and 0 deletions
|
@ -85,6 +85,7 @@ namespace Ryujinx.HLE.Gpu.Engines
|
|||
SetDepth();
|
||||
SetStencil();
|
||||
SetAlphaBlending();
|
||||
SetPrimitiveRestart();
|
||||
|
||||
UploadTextures(Vmm, Keys);
|
||||
UploadUniforms(Vmm);
|
||||
|
@ -389,6 +390,29 @@ namespace Ryujinx.HLE.Gpu.Engines
|
|||
}
|
||||
}
|
||||
|
||||
private void SetPrimitiveRestart()
|
||||
{
|
||||
bool Enable = (ReadRegister(NvGpuEngine3dReg.PrimRestartEnable) & 1) != 0;
|
||||
|
||||
if (Enable)
|
||||
{
|
||||
Gpu.Renderer.Rasterizer.EnablePrimitiveRestart();
|
||||
}
|
||||
else
|
||||
{
|
||||
Gpu.Renderer.Rasterizer.DisablePrimitiveRestart();
|
||||
}
|
||||
|
||||
if (!Enable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
uint Index = (uint)ReadRegister(NvGpuEngine3dReg.PrimRestartIndex);
|
||||
|
||||
Gpu.Renderer.Rasterizer.SetPrimitiveRestartIndex(Index);
|
||||
}
|
||||
|
||||
private void UploadTextures(NvGpuVmm Vmm, long[] Keys)
|
||||
{
|
||||
long BaseShPosition = MakeInt64From2xInt32(NvGpuEngine3dReg.ShaderAddress);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue