[D3D12] Resolve fetch memory read tracing
This commit is contained in:
parent
c057b5a032
commit
f75d927cc5
|
@ -743,7 +743,7 @@ bool D3D12CommandProcessor::SetupContext() {
|
||||||
}
|
}
|
||||||
|
|
||||||
render_target_cache_ =
|
render_target_cache_ =
|
||||||
std::make_unique<RenderTargetCache>(this, register_file_);
|
std::make_unique<RenderTargetCache>(this, register_file_, &trace_writer_);
|
||||||
if (!render_target_cache_->Initialize(texture_cache_.get())) {
|
if (!render_target_cache_->Initialize(texture_cache_.get())) {
|
||||||
XELOGE("Failed to initialize the render target cache");
|
XELOGE("Failed to initialize the render target cache");
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -99,8 +99,11 @@ const RenderTargetCache::EDRAMLoadStoreModeInfo
|
||||||
};
|
};
|
||||||
|
|
||||||
RenderTargetCache::RenderTargetCache(D3D12CommandProcessor* command_processor,
|
RenderTargetCache::RenderTargetCache(D3D12CommandProcessor* command_processor,
|
||||||
RegisterFile* register_file)
|
RegisterFile* register_file,
|
||||||
: command_processor_(command_processor), register_file_(register_file) {}
|
TraceWriter* trace_writer)
|
||||||
|
: command_processor_(command_processor),
|
||||||
|
register_file_(register_file),
|
||||||
|
trace_writer_(trace_writer) {}
|
||||||
|
|
||||||
RenderTargetCache::~RenderTargetCache() { Shutdown(); }
|
RenderTargetCache::~RenderTargetCache() { Shutdown(); }
|
||||||
|
|
||||||
|
@ -1037,6 +1040,7 @@ bool RenderTargetCache::Resolve(SharedMemory* shared_memory,
|
||||||
assert_true(fetch.type == 3);
|
assert_true(fetch.type == 3);
|
||||||
assert_true(fetch.endian == Endian::k8in32);
|
assert_true(fetch.endian == Endian::k8in32);
|
||||||
assert_true(fetch.size == 6);
|
assert_true(fetch.size == 6);
|
||||||
|
trace_writer_->WriteMemoryRead(fetch.address << 2, fetch.size << 2);
|
||||||
const uint8_t* src_vertex_address =
|
const uint8_t* src_vertex_address =
|
||||||
memory->TranslatePhysical(fetch.address << 2);
|
memory->TranslatePhysical(fetch.address << 2);
|
||||||
float vertices[6];
|
float vertices[6];
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "xenia/gpu/d3d12/shared_memory.h"
|
#include "xenia/gpu/d3d12/shared_memory.h"
|
||||||
#include "xenia/gpu/d3d12/texture_cache.h"
|
#include "xenia/gpu/d3d12/texture_cache.h"
|
||||||
#include "xenia/gpu/register_file.h"
|
#include "xenia/gpu/register_file.h"
|
||||||
|
#include "xenia/gpu/trace_writer.h"
|
||||||
#include "xenia/gpu/xenos.h"
|
#include "xenia/gpu/xenos.h"
|
||||||
#include "xenia/memory.h"
|
#include "xenia/memory.h"
|
||||||
#include "xenia/ui/d3d12/d3d12_api.h"
|
#include "xenia/ui/d3d12/d3d12_api.h"
|
||||||
|
@ -247,7 +248,7 @@ class RenderTargetCache {
|
||||||
};
|
};
|
||||||
|
|
||||||
RenderTargetCache(D3D12CommandProcessor* command_processor,
|
RenderTargetCache(D3D12CommandProcessor* command_processor,
|
||||||
RegisterFile* register_file);
|
RegisterFile* register_file, TraceWriter* trace_writer);
|
||||||
~RenderTargetCache();
|
~RenderTargetCache();
|
||||||
|
|
||||||
bool Initialize(const TextureCache* texture_cache);
|
bool Initialize(const TextureCache* texture_cache);
|
||||||
|
@ -503,6 +504,7 @@ class RenderTargetCache {
|
||||||
|
|
||||||
D3D12CommandProcessor* command_processor_;
|
D3D12CommandProcessor* command_processor_;
|
||||||
RegisterFile* register_file_;
|
RegisterFile* register_file_;
|
||||||
|
TraceWriter* trace_writer_;
|
||||||
|
|
||||||
// Whether 1 guest pixel is rendered as 2x2 host pixels (currently only
|
// Whether 1 guest pixel is rendered as 2x2 host pixels (currently only
|
||||||
// supported with ROV).
|
// supported with ROV).
|
||||||
|
|
Loading…
Reference in New Issue