Merge pull request #997 from Lectem/cmdlist_full_debug
citra-qt: Improve pica command list widget (add mask, fix some issues)
This commit is contained in:
commit
f5144e6c10
4 changed files with 52 additions and 50 deletions
|
@ -64,7 +64,7 @@ void DebugContext::OnEvent(Event event, void* data) {
|
|||
|
||||
void DebugContext::Resume() {
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(breakpoint_mutex);
|
||||
std::lock_guard<std::mutex> lock(breakpoint_mutex);
|
||||
|
||||
// Tell all observers that we are about to resume
|
||||
for (auto& breakpoint_observer : breakpoint_observers) {
|
||||
|
@ -312,11 +312,10 @@ void StartPicaTracing()
|
|||
return;
|
||||
}
|
||||
|
||||
pica_trace_mutex.lock();
|
||||
std::lock_guard<std::mutex> lock(pica_trace_mutex);
|
||||
pica_trace = std::unique_ptr<PicaTrace>(new PicaTrace);
|
||||
|
||||
is_pica_tracing = true;
|
||||
pica_trace_mutex.unlock();
|
||||
}
|
||||
|
||||
bool IsPicaTracing()
|
||||
|
@ -324,18 +323,18 @@ bool IsPicaTracing()
|
|||
return is_pica_tracing != 0;
|
||||
}
|
||||
|
||||
void OnPicaRegWrite(u32 id, u32 value)
|
||||
void OnPicaRegWrite(PicaTrace::Write write)
|
||||
{
|
||||
// Double check for is_pica_tracing to avoid pointless locking overhead
|
||||
if (!is_pica_tracing)
|
||||
return;
|
||||
|
||||
std::unique_lock<std::mutex> lock(pica_trace_mutex);
|
||||
std::lock_guard<std::mutex> lock(pica_trace_mutex);
|
||||
|
||||
if (!is_pica_tracing)
|
||||
return;
|
||||
|
||||
pica_trace->writes.emplace_back(id, value);
|
||||
pica_trace->writes.push_back(write);
|
||||
}
|
||||
|
||||
std::unique_ptr<PicaTrace> FinishPicaTracing()
|
||||
|
@ -349,9 +348,9 @@ std::unique_ptr<PicaTrace> FinishPicaTracing()
|
|||
is_pica_tracing = false;
|
||||
|
||||
// Wait until running tracing is finished
|
||||
pica_trace_mutex.lock();
|
||||
std::lock_guard<std::mutex> lock(pica_trace_mutex);
|
||||
std::unique_ptr<PicaTrace> ret(std::move(pica_trace));
|
||||
pica_trace_mutex.unlock();
|
||||
|
||||
return std::move(ret);
|
||||
}
|
||||
|
||||
|
|
|
@ -187,21 +187,17 @@ void DumpShader(const std::string& filename, const Regs::ShaderConfig& config,
|
|||
|
||||
// Utility class to log Pica commands.
|
||||
struct PicaTrace {
|
||||
struct Write : public std::pair<u32,u32> {
|
||||
Write(u32 id, u32 value) : std::pair<u32,u32>(id, value) {}
|
||||
|
||||
u32& Id() { return first; }
|
||||
const u32& Id() const { return first; }
|
||||
|
||||
u32& Value() { return second; }
|
||||
const u32& Value() const { return second; }
|
||||
struct Write {
|
||||
u16 cmd_id;
|
||||
u16 mask;
|
||||
u32 value;
|
||||
};
|
||||
std::vector<Write> writes;
|
||||
};
|
||||
|
||||
void StartPicaTracing();
|
||||
bool IsPicaTracing();
|
||||
void OnPicaRegWrite(u32 id, u32 value);
|
||||
void OnPicaRegWrite(PicaTrace::Write write);
|
||||
std::unique_ptr<PicaTrace> FinishPicaTracing();
|
||||
|
||||
struct TextureInfo {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue