From 14c6fbfba46dfb39051ca71f9e046e4310b73669 Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Fri, 6 Mar 2015 21:54:59 -0800 Subject: [PATCH] Adding safety checks, disabling vendor gl extensions by default. --- src/xenia/gpu/gl4/command_processor.cc | 2 +- src/xenia/gpu/gl4/gl4_gpu.cc | 2 +- src/xenia/gpu/trace_viewer_main.cc | 11 ++++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/xenia/gpu/gl4/command_processor.cc b/src/xenia/gpu/gl4/command_processor.cc index 51391ea03..bf1e20fad 100644 --- a/src/xenia/gpu/gl4/command_processor.cc +++ b/src/xenia/gpu/gl4/command_processor.cc @@ -144,7 +144,7 @@ void CommandProcessor::BeginTracing(const std::wstring& root_path) { XELOGE("Frame trace pending; ignoring streaming request."); return; } - std::wstring path = poly::join_paths(root_path, L"stream"); + std::wstring path = root_path + L"stream"; trace_state_ = TraceState::kStreaming; trace_writer_.Open(path); } diff --git a/src/xenia/gpu/gl4/gl4_gpu.cc b/src/xenia/gpu/gl4/gl4_gpu.cc index a4c2e1bf1..c21ba0bed 100644 --- a/src/xenia/gpu/gl4/gl4_gpu.cc +++ b/src/xenia/gpu/gl4/gl4_gpu.cc @@ -19,7 +19,7 @@ DEFINE_bool(gl_debug_output, false, "Dump ARB_debug_output to stderr."); DEFINE_bool(gl_debug_output_synchronous, true, "ARB_debug_output will synchronize to be thread safe."); -DEFINE_bool(vendor_gl_extensions, true, +DEFINE_bool(vendor_gl_extensions, false, "Enable vendor-specific (NV, AMD, etc) GL extensions."); DEFINE_bool(disable_framebuffer_readback, false, diff --git a/src/xenia/gpu/trace_viewer_main.cc b/src/xenia/gpu/trace_viewer_main.cc index eb5c7c238..2573749d9 100644 --- a/src/xenia/gpu/trace_viewer_main.cc +++ b/src/xenia/gpu/trace_viewer_main.cc @@ -784,6 +784,10 @@ void DrawCommandListUI(xe::ui::MainWindow* window, TracePlayer& player, static const TracePlayer::Frame* previous_frame = nullptr; auto frame = player.current_frame(); + if (!frame) { + ImGui::End(); + return; + } bool did_seek = false; if (previous_frame != frame) { did_seek = true; @@ -1516,10 +1520,15 @@ void DrawPacketDisassemblerUI(xe::ui::MainWindow* window, TracePlayer& player, return; } + auto frame = player.current_frame(); + if (!frame) { + ImGui::End(); + return; + } + ImGui::Text("Frame #%d", player.current_frame_index()); ImGui::Separator(); ImGui::BeginChild("packet_disassembler_list"); - auto frame = player.current_frame(); const PacketStartCommand* pending_packet = nullptr; auto trace_ptr = frame->start_ptr; while (trace_ptr < frame->end_ptr) {