Note that VADDR/IADDR are not updated on PRIM.

Even though they do increase the addresses, they don't affect the CMD
registers.

Also, make sure not to use a crazy bytesRead for a zero-sized prim.
This commit is contained in:
Unknown W. Brackets 2014-05-04 18:24:49 -07:00
parent 7f5be6b35d
commit 4cc4cfed4c
3 changed files with 4 additions and 4 deletions

View File

@ -654,7 +654,7 @@ void DIRECTX9_GPU::ExecuteOp(u32 op, u32 diff) {
// After drawing, we advance the vertexAddr (when non indexed) or indexAddr (when indexed).
// Some games rely on this, they don't bother reloading VADDR and IADDR.
// Q: Are these changed reflected in the real registers? Needs testing.
// The VADDR/IADDR registers are NOT updated.
if (inds) {
int indexSize = 1;
if ((gstate.vertType & GE_VTYPE_IDX_MASK) == GE_VTYPE_IDX_16BIT)

View File

@ -752,7 +752,7 @@ void GLES_GPU::Execute_Prim(u32 op, u32 diff) {
}
#endif
int bytesRead;
int bytesRead = 0;
transformDraw_.SubmitPrim(verts, inds, prim, count, gstate.vertType, &bytesRead);
int vertexCost = transformDraw_.EstimatePerVertexCost();
@ -761,7 +761,7 @@ void GLES_GPU::Execute_Prim(u32 op, u32 diff) {
// After drawing, we advance the vertexAddr (when non indexed) or indexAddr (when indexed).
// Some games rely on this, they don't bother reloading VADDR and IADDR.
// Q: Are these changed reflected in the real registers? Needs testing.
// The VADDR/IADDR registers are NOT updated.
if (inds) {
int indexSize = 1;
if ((gstate.vertType & GE_VTYPE_IDX_MASK) == GE_VTYPE_IDX_16BIT)

View File

@ -412,7 +412,7 @@ void SoftGPU::ExecuteOp(u32 op, u32 diff)
// After drawing, we advance the vertexAddr (when non indexed) or indexAddr (when indexed).
// Some games rely on this, they don't bother reloading VADDR and IADDR.
// Q: Are these changed reflected in the real registers? Needs testing.
// The VADDR/IADDR registers are NOT updated.
if (indices) {
int indexSize = 1;
if ((gstate.vertType & GE_VTYPE_IDX_MASK) == GE_VTYPE_IDX_16BIT)