forked from suyu/suyu
Further refine GPU command list debugging.
This commit is contained in:
parent
b0051b2203
commit
f82410e633
3 changed files with 27 additions and 4 deletions
|
@ -53,7 +53,7 @@ int GPUCommandListModel::rowCount(const QModelIndex& parent) const
|
|||
|
||||
int GPUCommandListModel::columnCount(const QModelIndex& parent) const
|
||||
{
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
|
||||
QVariant GPUCommandListModel::data(const QModelIndex& index, int role) const
|
||||
|
@ -68,7 +68,7 @@ QVariant GPUCommandListModel::data(const QModelIndex& index, int role) const
|
|||
const GraphicsDebugger::PicaCommandList& cmdlist = command_lists[item->index].second;
|
||||
u32 address = command_lists[item->index].first;
|
||||
|
||||
if (role == Qt::DisplayRole)
|
||||
if (role == Qt::DisplayRole && index.column() == 0)
|
||||
{
|
||||
return QVariant(QString("0x%1 bytes at 0x%2").arg(cmdlist.size(), 0, 16).arg(address, 8, 16, QLatin1Char('0')));
|
||||
}
|
||||
|
@ -78,11 +78,17 @@ QVariant GPUCommandListModel::data(const QModelIndex& index, int role) const
|
|||
// index refers to a specific command
|
||||
const GraphicsDebugger::PicaCommandList& cmdlist = command_lists[item->parent->index].second;
|
||||
const GraphicsDebugger::PicaCommand& cmd = cmdlist[item->index];
|
||||
const Pica::CommandHeader& header = cmd.GetHeader();
|
||||
|
||||
if (role == Qt::DisplayRole) {
|
||||
QString content;
|
||||
for (int j = 0; j < cmd.size(); ++j)
|
||||
content.append(QString("%1 ").arg(cmd[j], 8, 16, QLatin1Char('0')));
|
||||
if (index.column() == 0) {
|
||||
content = Pica::command_names[header.cmd_id];
|
||||
content.append(" ");
|
||||
} else if (index.column() == 1) {
|
||||
for (int j = 0; j < cmd.size(); ++j)
|
||||
content.append(QString("%1 ").arg(cmd[j], 8, 16, QLatin1Char('0')));
|
||||
}
|
||||
|
||||
return QVariant(content);
|
||||
}
|
||||
|
|
|
@ -100,6 +100,7 @@ public:
|
|||
auto& cmd = cmdlist.back();
|
||||
|
||||
size_t size = 2 + header.extra_data_length;
|
||||
size = (size + 1) / 2 * 2; // align to 8 bytes
|
||||
cmd.reserve(size);
|
||||
std::copy(parse_pointer, parse_pointer + size, std::back_inserter(cmd));
|
||||
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <initializer_list>
|
||||
#include <map>
|
||||
|
||||
#include "common/bit_field.h"
|
||||
#include "common/common_types.h"
|
||||
|
||||
|
@ -34,4 +37,17 @@ union CommandHeader {
|
|||
BitField<31, 1, u32> group_commands;
|
||||
};
|
||||
|
||||
static std::map<CommandId, const char*> command_names = {
|
||||
{CommandId::ViewportSizeX, "ViewportSizeX" },
|
||||
{CommandId::ViewportInvSizeX, "ViewportInvSizeX" },
|
||||
{CommandId::ViewportSizeY, "ViewportSizeY" },
|
||||
{CommandId::ViewportInvSizeY, "ViewportInvSizeY" },
|
||||
{CommandId::ViewportCorner, "ViewportCorner" },
|
||||
{CommandId::DepthBufferFormat, "DepthBufferFormat" },
|
||||
{CommandId::ColorBufferFormat, "ColorBufferFormat" },
|
||||
{CommandId::DepthBufferAddress, "DepthBufferAddress" },
|
||||
{CommandId::ColorBufferAddress, "ColorBufferAddress" },
|
||||
{CommandId::ColorBufferSize, "ColorBufferSize" },
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue