[D3D12] Trace viewer entry point
This commit is contained in:
parent
36f4158f09
commit
f23ba862f6
|
@ -1001,6 +1001,10 @@ void D3D12CommandProcessor::WriteRegister(uint32_t index, uint32_t value) {
|
||||||
void D3D12CommandProcessor::PerformSwap(uint32_t frontbuffer_ptr,
|
void D3D12CommandProcessor::PerformSwap(uint32_t frontbuffer_ptr,
|
||||||
uint32_t frontbuffer_width,
|
uint32_t frontbuffer_width,
|
||||||
uint32_t frontbuffer_height) {
|
uint32_t frontbuffer_height) {
|
||||||
|
// FIXME(Triang3l): frontbuffer_ptr is currently unreliable, in the trace
|
||||||
|
// player it's set to 0, but it's not needed anyway since the fetch constant
|
||||||
|
// contains the address.
|
||||||
|
|
||||||
SCOPE_profile_cpu_f("gpu");
|
SCOPE_profile_cpu_f("gpu");
|
||||||
|
|
||||||
// In case the swap command is the only one in the frame.
|
// In case the swap command is the only one in the frame.
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* Xenia : Xbox 360 Emulator Research Project *
|
||||||
|
******************************************************************************
|
||||||
|
* Copyright 2019 Ben Vanik. All rights reserved. *
|
||||||
|
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "xenia/base/logging.h"
|
||||||
|
#include "xenia/base/main.h"
|
||||||
|
#include "xenia/gpu/d3d12/d3d12_command_processor.h"
|
||||||
|
#include "xenia/gpu/d3d12/d3d12_graphics_system.h"
|
||||||
|
#include "xenia/gpu/trace_viewer.h"
|
||||||
|
|
||||||
|
namespace xe {
|
||||||
|
namespace gpu {
|
||||||
|
namespace d3d12 {
|
||||||
|
|
||||||
|
using namespace xe::gpu::xenos;
|
||||||
|
|
||||||
|
class D3D12TraceViewer : public TraceViewer {
|
||||||
|
public:
|
||||||
|
std::unique_ptr<gpu::GraphicsSystem> CreateGraphicsSystem() override {
|
||||||
|
return std::unique_ptr<gpu::GraphicsSystem>(new D3D12GraphicsSystem());
|
||||||
|
}
|
||||||
|
|
||||||
|
uintptr_t GetColorRenderTarget(uint32_t pitch, MsaaSamples samples,
|
||||||
|
uint32_t base,
|
||||||
|
ColorRenderTargetFormat format) override {
|
||||||
|
// TODO(Triang3l): EDRAM viewer.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uintptr_t GetDepthRenderTarget(uint32_t pitch, MsaaSamples samples,
|
||||||
|
uint32_t base,
|
||||||
|
DepthRenderTargetFormat format) override {
|
||||||
|
// TODO(Triang3l): EDRAM viewer.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uintptr_t GetTextureEntry(const TextureInfo& texture_info,
|
||||||
|
const SamplerInfo& sampler_info) override {
|
||||||
|
// TODO(Triang3l): Textures, but from a fetch constant rather than
|
||||||
|
// TextureInfo/SamplerInfo which are going away.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
int trace_viewer_main(const std::vector<std::wstring>& args) {
|
||||||
|
D3D12TraceViewer trace_viewer;
|
||||||
|
return trace_viewer.Main(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace d3d12
|
||||||
|
} // namespace gpu
|
||||||
|
} // namespace xe
|
||||||
|
|
||||||
|
DEFINE_ENTRY_POINT(L"xenia-gpu-d3d12-trace-viewer",
|
||||||
|
xe::gpu::d3d12::trace_viewer_main, "some.trace",
|
||||||
|
"target_trace_file");
|
|
@ -18,6 +18,50 @@ project("xenia-gpu-d3d12")
|
||||||
"shaders/bin/*.h",
|
"shaders/bin/*.h",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
group("src")
|
||||||
|
project("xenia-gpu-d3d12-trace-viewer")
|
||||||
|
uuid("7b5b9fcb-7bf1-43ff-a774-d4c41c8706be")
|
||||||
|
kind("WindowedApp")
|
||||||
|
language("C++")
|
||||||
|
links({
|
||||||
|
"aes_128",
|
||||||
|
"capstone",
|
||||||
|
"dxbc",
|
||||||
|
"imgui",
|
||||||
|
"libavcodec",
|
||||||
|
"libavutil",
|
||||||
|
"mspack",
|
||||||
|
"snappy",
|
||||||
|
"xenia-apu",
|
||||||
|
"xenia-apu-nop",
|
||||||
|
"xenia-base",
|
||||||
|
"xenia-core",
|
||||||
|
"xenia-cpu",
|
||||||
|
"xenia-cpu-backend-x64",
|
||||||
|
"xenia-gpu",
|
||||||
|
"xenia-gpu-d3d12",
|
||||||
|
"xenia-hid",
|
||||||
|
"xenia-hid-nop",
|
||||||
|
"xenia-kernel",
|
||||||
|
"xenia-ui",
|
||||||
|
"xenia-ui-d3d12",
|
||||||
|
"xenia-vfs",
|
||||||
|
"xxhash",
|
||||||
|
})
|
||||||
|
files({
|
||||||
|
"d3d12_trace_viewer_main.cc",
|
||||||
|
"../../base/main_"..platform_suffix..".cc",
|
||||||
|
})
|
||||||
|
-- Only create the .user file if it doesn't already exist.
|
||||||
|
local user_file = project_root.."/build/xenia-gpu-d3d12-trace-viewer.vcxproj.user"
|
||||||
|
if not os.isfile(user_file) then
|
||||||
|
debugdir(project_root)
|
||||||
|
debugargs({
|
||||||
|
"2>&1",
|
||||||
|
"1>scratch/stdout-trace-viewer.txt",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
group("src")
|
group("src")
|
||||||
project("xenia-gpu-d3d12-trace-dump")
|
project("xenia-gpu-d3d12-trace-dump")
|
||||||
uuid("686b859c-0046-44c4-a02c-41fc3fb75698")
|
uuid("686b859c-0046-44c4-a02c-41fc3fb75698")
|
||||||
|
|
Loading…
Reference in New Issue