Slightly improve GPU disassembly

This commit is contained in:
Henrik Rydgard 2014-09-13 23:50:42 +02:00
parent 02a89306d1
commit 170e88838f
4 changed files with 190 additions and 187 deletions

View File

@ -1945,9 +1945,9 @@ bool DIRECTX9_GPU::GetCurrentTexture(GPUDebugBuffer &buffer, int level) {
LPDIRECT3DSURFACE9 offscreen = nullptr;
HRESULT hr;
bool success;
bool success = false;
hr = pD3Ddevice->GetTexture(0, &baseTex);
if (SUCCEEDED(hr)) {
if (SUCCEEDED(hr) && baseTex != NULL) {
hr = baseTex->QueryInterface(IID_IDirect3DTexture9, (void **)&tex);
if (SUCCEEDED(hr)) {
D3DSURFACE_DESC desc;

View File

@ -569,7 +569,7 @@ void GPUCommon::SlowRunLoop(DisplayList &list)
} else {
prev = 0;
}
GeDisassembleOp(list.pc, op, prev, temp);
GeDisassembleOp(list.pc, op, prev, temp, 256);
NOTICE_LOG(G3D, "%s", temp);
}
gstate.cmdmem[cmd] = op;
@ -1189,7 +1189,7 @@ void GPUCommon::ResetListState(int listID, DisplayListState state) {
GPUDebugOp GPUCommon::DissassembleOp(u32 pc, u32 op) {
char buffer[1024];
GeDisassembleOp(pc, op, Memory::Read_U32(pc - 4), buffer);
GeDisassembleOp(pc, op, Memory::Read_U32(pc - 4), buffer, sizeof(buffer));
GPUDebugOp info;
info.pc = pc;
@ -1208,7 +1208,7 @@ std::vector<GPUDebugOp> GPUCommon::DissassembleOpRange(u32 startpc, u32 endpc) {
u32 prev = Memory::IsValidAddress(startpc - 4) ? Memory::Read_U32(startpc - 4) : 0;
for (u32 pc = startpc; pc < endpc; pc += 4) {
u32 op = Memory::IsValidAddress(pc) ? Memory::Read_U32(pc) : 0;
GeDisassembleOp(pc, op, prev, buffer);
GeDisassembleOp(pc, op, prev, buffer, sizeof(buffer));
prev = op;
info.pc = pc;

File diff suppressed because it is too large Load Diff

View File

@ -18,4 +18,4 @@
#include "Common/CommonTypes.h"
void GeDescribeVertexType(u32 op, char *buffer, int len = 256);
void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer);
void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer, int bufsize);