mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Fix potential sign issue in Accessible() (though I don't quite get how it's failing).
This commit is contained in:
1 parent
14b593cdfc
commit
a7a33dc414
2 files changed
+6
-13
No files matched your search
+4
-1
@@ -281,7 +281,10 @@ inline OpArg MRegSum(X64Reg base, X64Reg offset)
|
||||
template <typename T>
|
||||
inline bool Accessible(const T *t1, const T *t2) {
|
||||
ptrdiff_t diff = (const uint8_t *)t1 - (const uint8_t *)t2;
|
||||
return diff > -0x7FFFFFE0 && diff < 0x7FFFFFE0;
|
||||
if (diff < 0) {
|
||||
diff = -diff;
|
||||
}
|
||||
return diff < (ptrdiff_t)0x7FFFFFE0;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
||||
@@ -1028,12 +1028,7 @@ void SoftGPU::Execute_FramebufPtr(u32 op, u32 diff) {
|
||||
// We assume fb.data won't change while we're drawing.
|
||||
if (diff) {
|
||||
drawEngine_->transformUnit.Flush(this, "framebuf");
|
||||
if (gstate.getFrameBufAddress() != 0) {
|
||||
_dbg_assert_msg_(Memory::IsValidAddress(gstate.getFrameBufAddress()), "Invalid framebuffer address %08x", gstate.getFrameBufAddress());
|
||||
fb.data = Memory::GetPointerWriteUnchecked(gstate.getFrameBufAddress());
|
||||
} else {
|
||||
fb.data = nullptr;
|
||||
}
|
||||
fb.data = Memory::GetPointerWriteUnchecked(gstate.getFrameBufAddress());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1054,12 +1049,7 @@ void SoftGPU::Execute_ZbufPtr(u32 op, u32 diff) {
|
||||
drawEngine_->transformUnit.Flush(this, "depthbuf");
|
||||
// For the pointer, ignore memory mirrors. This also gives some buffer for draws that go outside.
|
||||
// TODO: Confirm how wrapping is handled in drawing. Adjust if we ever handle VRAM mirrors more accurately.
|
||||
if (gstate.getDepthBufAddress() != 0) {
|
||||
_dbg_assert_msg_(Memory::IsValidAddress(gstate.getDepthBufAddress()), "Invalid depthbuffer address %08x", gstate.getDepthBufAddress());
|
||||
depthbuf.data = Memory::GetPointerWriteUnchecked(gstate.getDepthBufAddress() & 0x041FFFF0);
|
||||
} else {
|
||||
depthbuf.data = nullptr;
|
||||
}
|
||||
depthbuf.data = Memory::GetPointerWrite(gstate.getDepthBufAddress() & 0x041FFFF0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user