mirror of
https://github.com/libretro/ppsspp.git
synced 2025-02-15 14:40:20 +00:00
Merge pull request #3666 from unknownbrackets/gpu-minor2
Don't ignore the low bits of the framebuf pointer
This commit is contained in:
commit
8db3213ca2
@ -466,10 +466,10 @@ void FramebufferManager::SetRenderFrameBuffer() {
|
|||||||
gstate_c.framebufChanged = false;
|
gstate_c.framebufChanged = false;
|
||||||
|
|
||||||
// Get parameters
|
// Get parameters
|
||||||
u32 fb_address = (gstate.fbptr & 0xFFE000) | ((gstate.fbwidth & 0xFF0000) << 8);
|
u32 fb_address = (gstate.fbptr & 0xFFFFFF) | ((gstate.fbwidth & 0xFF0000) << 8);
|
||||||
int fb_stride = gstate.fbwidth & 0x3C0;
|
int fb_stride = gstate.fbwidth & 0x3C0;
|
||||||
|
|
||||||
u32 z_address = (gstate.zbptr & 0xFFE000) | ((gstate.zbwidth & 0xFF0000) << 8);
|
u32 z_address = (gstate.zbptr & 0xFFFFFF) | ((gstate.zbwidth & 0xFF0000) << 8);
|
||||||
int z_stride = gstate.zbwidth & 0x3C0;
|
int z_stride = gstate.zbwidth & 0x3C0;
|
||||||
|
|
||||||
// Yeah this is not completely right. but it'll do for now.
|
// Yeah this is not completely right. but it'll do for now.
|
||||||
|
@ -359,11 +359,7 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) {
|
|||||||
|
|
||||||
case GE_CMD_FRAMEBUFPTR:
|
case GE_CMD_FRAMEBUFPTR:
|
||||||
{
|
{
|
||||||
u32 ptr = op & 0xFFE000;
|
sprintf(buffer, "FramebufPtr: %08x", data);
|
||||||
if (data & ~0xFFE000)
|
|
||||||
sprintf(buffer, "FramebufPtr: %08x (extra %x)", ptr, data);
|
|
||||||
else
|
|
||||||
sprintf(buffer, "FramebufPtr: %08x", ptr);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -534,11 +530,7 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) {
|
|||||||
|
|
||||||
case GE_CMD_ZBUFPTR:
|
case GE_CMD_ZBUFPTR:
|
||||||
{
|
{
|
||||||
u32 ptr = op & 0xFFE000;
|
sprintf(buffer, "Zbuf ptr: %06x", data);
|
||||||
if (data & ~0xFFE000)
|
|
||||||
sprintf(buffer, "Zbuf ptr: %06x (extra %x)", ptr, data);
|
|
||||||
else
|
|
||||||
sprintf(buffer, "Zbuf ptr: %06x", ptr);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -214,17 +214,11 @@ void NullGPU::ExecuteOp(u32 op, u32 diff)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_FRAMEBUFPTR:
|
case GE_CMD_FRAMEBUFPTR:
|
||||||
{
|
DEBUG_LOG(G3D, "DL FramebufPtr: %08x", data);
|
||||||
u32 ptr = op & 0xFFE000;
|
|
||||||
DEBUG_LOG(G3D, "DL FramebufPtr: %08x", ptr);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_FRAMEBUFWIDTH:
|
case GE_CMD_FRAMEBUFWIDTH:
|
||||||
{
|
DEBUG_LOG(G3D, "DL FramebufWidth: %i", data);
|
||||||
u32 w = data & 0xFFFFFF;
|
|
||||||
DEBUG_LOG(G3D, "DL FramebufWidth: %i", w);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_FRAMEBUFPIXFORMAT:
|
case GE_CMD_FRAMEBUFPIXFORMAT:
|
||||||
@ -346,17 +340,11 @@ void NullGPU::ExecuteOp(u32 op, u32 diff)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_ZBUFPTR:
|
case GE_CMD_ZBUFPTR:
|
||||||
{
|
DEBUG_LOG(G3D,"Zbuf Ptr: %06x", data);
|
||||||
u32 ptr = op & 0xFFE000;
|
|
||||||
DEBUG_LOG(G3D,"Zbuf Ptr: %06x", ptr);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_ZBUFWIDTH:
|
case GE_CMD_ZBUFWIDTH:
|
||||||
{
|
DEBUG_LOG(G3D,"Zbuf Width: %i", data);
|
||||||
u32 w = data & 0xFFFFFF;
|
|
||||||
DEBUG_LOG(G3D,"Zbuf Width: %i", w);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_AMBIENTCOLOR:
|
case GE_CMD_AMBIENTCOLOR:
|
||||||
|
@ -476,19 +476,13 @@ void SoftGPU::ExecuteOp(u32 op, u32 diff)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_FRAMEBUFPTR:
|
case GE_CMD_FRAMEBUFPTR:
|
||||||
{
|
fb = Memory::GetPointer(0x44000000 | (gstate.fbptr & 0xFFFFFF) | ((gstate.fbwidth & 0xFF0000) << 8));
|
||||||
u32 ptr = op & 0xFFE000;
|
DEBUG_LOG(G3D, "DL FramebufPtr: %08x", data);
|
||||||
fb = Memory::GetPointer(0x44000000 | (gstate.fbptr & 0xFFE000) | ((gstate.fbwidth & 0xFF0000) << 8));
|
|
||||||
DEBUG_LOG(G3D, "DL FramebufPtr: %08x", ptr);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_FRAMEBUFWIDTH:
|
case GE_CMD_FRAMEBUFWIDTH:
|
||||||
{
|
fb = Memory::GetPointer(0x44000000 | (gstate.fbptr & 0xFFFFFF) | ((gstate.fbwidth & 0xFF0000) << 8));
|
||||||
u32 w = data & 0xFFFFFF;
|
DEBUG_LOG(G3D, "DL FramebufWidth: %i", data);
|
||||||
fb = Memory::GetPointer(0x44000000 | (gstate.fbptr & 0xFFE000) | ((gstate.fbwidth & 0xFF0000) << 8));
|
|
||||||
DEBUG_LOG(G3D, "DL FramebufWidth: %i", w);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_FRAMEBUFPIXFORMAT:
|
case GE_CMD_FRAMEBUFPIXFORMAT:
|
||||||
@ -605,19 +599,13 @@ void SoftGPU::ExecuteOp(u32 op, u32 diff)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_ZBUFPTR:
|
case GE_CMD_ZBUFPTR:
|
||||||
{
|
depthbuf = Memory::GetPointer(0x44000000 | (gstate.zbptr & 0xFFFFFF) | ((gstate.zbwidth & 0xFF0000) << 8));
|
||||||
u32 ptr = op & 0xFFE000;
|
DEBUG_LOG(G3D,"Zbuf Ptr: %06x", data);
|
||||||
depthbuf = Memory::GetPointer(0x44000000 | (gstate.zbptr & 0xFFE000) | ((gstate.zbwidth & 0xFF0000) << 8));
|
|
||||||
DEBUG_LOG(G3D,"Zbuf Ptr: %06x", ptr);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_ZBUFWIDTH:
|
case GE_CMD_ZBUFWIDTH:
|
||||||
{
|
depthbuf = Memory::GetPointer(0x44000000 | (gstate.zbptr & 0xFFFFFF) | ((gstate.zbwidth & 0xFF0000) << 8));
|
||||||
u32 w = data & 0xFFFFFF;
|
DEBUG_LOG(G3D,"Zbuf Width: %i", data);
|
||||||
depthbuf = Memory::GetPointer(0x44000000 | (gstate.zbptr & 0xFFE000) | ((gstate.zbwidth & 0xFF0000) << 8));
|
|
||||||
DEBUG_LOG(G3D,"Zbuf Width: %i", w);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GE_CMD_AMBIENTCOLOR:
|
case GE_CMD_AMBIENTCOLOR:
|
||||||
|
@ -611,7 +611,6 @@ QString Debugger_DisplayList::DisassembleOp(u32 pc, u32 op, u32 prev, const GPUg
|
|||||||
|
|
||||||
case GE_CMD_FRAMEBUFPTR:
|
case GE_CMD_FRAMEBUFPTR:
|
||||||
{
|
{
|
||||||
u32 ptr = op & 0xFFE000;
|
|
||||||
return QString("FramebufPtr: %1").arg(data,8,16,QChar('0'));
|
return QString("FramebufPtr: %1").arg(data,8,16,QChar('0'));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -781,8 +780,7 @@ QString Debugger_DisplayList::DisassembleOp(u32 pc, u32 op, u32 prev, const GPUg
|
|||||||
|
|
||||||
case GE_CMD_ZBUFPTR:
|
case GE_CMD_ZBUFPTR:
|
||||||
{
|
{
|
||||||
u32 ptr = op & 0xFFE000;
|
return QString("Zbuf Ptr: %1").arg(data,6,16,QChar('0'));
|
||||||
return QString("Zbuf Ptr: %1").arg(ptr,6,16,QChar('0'));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user