[GPU] Trace dump: Do PIX/RenderDoc capture if attached

This commit is contained in:
Triang3l
2019-10-25 21:32:17 +03:00
parent f75d927cc5
commit 36f4158f09
4 changed files with 44 additions and 0 deletions

View File

@@ -12,6 +12,8 @@
#include "xenia/gpu/trace_dump.h"
#include "xenia/gpu/vulkan/vulkan_command_processor.h"
#include "xenia/gpu/vulkan/vulkan_graphics_system.h"
#include "xenia/ui/vulkan/vulkan_device.h"
#include "xenia/ui/vulkan/vulkan_provider.h"
namespace xe {
namespace gpu {
@@ -24,6 +26,24 @@ class VulkanTraceDump : public TraceDump {
std::unique_ptr<gpu::GraphicsSystem> CreateGraphicsSystem() override {
return std::unique_ptr<gpu::GraphicsSystem>(new VulkanGraphicsSystem());
}
void BeginHostCapture() override {
auto device = static_cast<const ui::vulkan::VulkanProvider*>(
graphics_system_->provider())
->device();
if (device->is_renderdoc_attached()) {
device->BeginRenderDocFrameCapture();
}
}
void EndHostCapture() override {
auto device = static_cast<const ui::vulkan::VulkanProvider*>(
graphics_system_->provider())
->device();
if (device->is_renderdoc_attached()) {
device->EndRenderDocFrameCapture();
}
}
};
int trace_dump_main(const std::vector<std::wstring>& args) {