Merge pull request #1222 from unknownbrackets/gpu-fix

Correct dest stride on GPU block transfer
This commit is contained in:
Henrik Rydgård 2013-04-08 11:01:04 -07:00
commit 6ec7d237e8
3 changed files with 4 additions and 4 deletions

View file

@ -902,7 +902,7 @@ void GLES_GPU::DoBlockTransfer() {
// Do the copy! // Do the copy!
for (int y = 0; y < height; y++) { for (int y = 0; y < height; y++) {
const u8 *src = Memory::GetPointer(srcBasePtr + ((y + srcY) * srcStride + srcX) * bpp); const u8 *src = Memory::GetPointer(srcBasePtr + ((y + srcY) * srcStride + srcX) * bpp);
u8 *dst = Memory::GetPointer(dstBasePtr + ((y + dstY) * srcStride + dstX) * bpp); u8 *dst = Memory::GetPointer(dstBasePtr + ((y + dstY) * dstStride + dstX) * bpp);
memcpy(dst, src, width * bpp); memcpy(dst, src, width * bpp);
} }

View file

@ -340,7 +340,7 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) {
case GE_CMD_TRANSFERSRCW: case GE_CMD_TRANSFERSRCW:
{ {
u32 xferSrc = gstate.transfersrc | ((data&0xFF0000)<<8); u32 xferSrc = (gstate.transfersrc & 0x00FFFFFF) | ((data & 0xFF0000) << 8);
u32 xferSrcW = gstate.transfersrcw & 1023; u32 xferSrcW = gstate.transfersrcw & 1023;
sprintf(buffer, "Block Transfer Src: %08x W: %i", xferSrc, xferSrcW); sprintf(buffer, "Block Transfer Src: %08x W: %i", xferSrc, xferSrcW);
break; break;
@ -355,7 +355,7 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) {
case GE_CMD_TRANSFERDSTW: case GE_CMD_TRANSFERDSTW:
{ {
u32 xferDst= gstate.transferdst | ((data&0xFF0000)<<8); u32 xferDst = (gstate.transferdst & 0x00FFFFFF) | ((data & 0xFF0000) << 8);
u32 xferDstW = gstate.transferdstw & 1023; u32 xferDstW = gstate.transferdstw & 1023;
sprintf(buffer, "Block Transfer Dest: %08x W: %i", xferDst, xferDstW); sprintf(buffer, "Block Transfer Dest: %08x W: %i", xferDst, xferDstW);
break; break;

View file

@ -242,7 +242,7 @@ enum GECommand
GE_CMD_TRANSFERSTART=0xEA, GE_CMD_TRANSFERSTART=0xEA,
GE_CMD_TRANSFERSRCPOS=0xEB, GE_CMD_TRANSFERSRCPOS=0xEB,
GE_CMD_TRANSFERDSTPOS=0xEC, GE_CMD_TRANSFERDSTPOS=0xEC,
GE_CMD_TRANSFERSIZE=0xED, GE_CMD_TRANSFERSIZE=0xEE,
}; };
enum GEBufferFormat enum GEBufferFormat