Support frameskip in softgpu.

This commit is contained in:
Unknown W. Brackets 2013-10-27 16:50:03 -07:00
parent 98e257c95d
commit b62e36e997
2 changed files with 10 additions and 2 deletions

View File

@ -349,7 +349,9 @@ void SoftGPU::ExecuteOp(u32 op, u32 diff)
} }
cyclesExecuted += EstimatePerVertexCost() * count; cyclesExecuted += EstimatePerVertexCost() * count;
TransformUnit::SubmitPrimitive(verts, indices, type, count, gstate.vertType); if (!(gstate_c.skipDrawReason & SKIPDRAW_SKIPFRAME)) {
TransformUnit::SubmitPrimitive(verts, indices, type, count, gstate.vertType);
}
} }
break; break;
@ -389,7 +391,9 @@ void SoftGPU::ExecuteOp(u32 op, u32 diff)
break; break;
} }
TransformUnit::SubmitSpline(control_points, indices, sp_ucount, sp_vcount, sp_utype, sp_vtype, gstate.getPatchPrimitiveType(), gstate.vertType); if (!(gstate_c.skipDrawReason & SKIPDRAW_SKIPFRAME)) {
TransformUnit::SubmitSpline(control_points, indices, sp_ucount, sp_vcount, sp_utype, sp_vtype, gstate.getPatchPrimitiveType(), gstate.vertType);
}
DEBUG_LOG(G3D,"DL DRAW SPLINE: %i x %i, %i x %i", sp_ucount, sp_vcount, sp_utype, sp_vtype); DEBUG_LOG(G3D,"DL DRAW SPLINE: %i x %i, %i x %i", sp_ucount, sp_vcount, sp_utype, sp_vtype);
} }
break; break;

View File

@ -73,6 +73,10 @@ public:
fullInfo = "Software"; fullInfo = "Software";
} }
virtual bool FramebufferReallyDirty() {
return !(gstate_c.skipDrawReason & SKIPDRAW_SKIPFRAME);
}
virtual bool GetCurrentFramebuffer(GPUDebugBuffer &buffer); virtual bool GetCurrentFramebuffer(GPUDebugBuffer &buffer);
virtual bool GetCurrentDepthbuffer(GPUDebugBuffer &buffer); virtual bool GetCurrentDepthbuffer(GPUDebugBuffer &buffer);
virtual bool GetCurrentStencilbuffer(GPUDebugBuffer &buffer); virtual bool GetCurrentStencilbuffer(GPUDebugBuffer &buffer);