Plan renderer diagnostics in app status
This commit is contained in:
@@ -236,6 +236,10 @@ struct PlanAppStatusArgs {
|
||||
bool recording_running = false;
|
||||
bool encoder_available = false;
|
||||
std::uint32_t encoded_frames = 0;
|
||||
bool framebuffer_fetch = false;
|
||||
bool float32_render_targets = false;
|
||||
bool float32_linear_filtering = false;
|
||||
bool float16_render_targets = false;
|
||||
};
|
||||
|
||||
struct PlanDocumentResizeArgs {
|
||||
@@ -1766,7 +1770,7 @@ void print_help()
|
||||
<< " plan-cloud-upload-all [--file-count N] [--no-progress-ui]\n"
|
||||
<< " plan-recording-session [--running] [--frame-count N] [--platform-deletes-recorded-files]\n"
|
||||
<< " plan-app-preferences [--ui-scale N] [--display-density N] [--current-scale N] [--scale-option N] [--viewport-scale N] [--rtl] [--timelapse-disabled] [--recording-running] [--vr-controllers-disabled] [--cursor-mode N]\n"
|
||||
<< " plan-app-status [--doc-name NAME] [--unsaved] [--resolution N] [--resolution-index N] [--zoom N] [--history-bytes N] [--recording-running] [--encoder-available] [--encoded-frames N]\n"
|
||||
<< " plan-app-status [--doc-name NAME] [--unsaved] [--resolution N] [--resolution-index N] [--zoom N] [--history-bytes N] [--recording-running] [--encoder-available] [--encoded-frames N] [--framebuffer-fetch] [--float32] [--float32-linear] [--float16]\n"
|
||||
<< " plan-tools-menu --command panels|options|clear-grids|reset-camera|shortcuts|sonarpen [--sonarpen-available]\n"
|
||||
<< " plan-tools-panel --panel presets|color|color-advanced|layers|brush|grids|animation [--already-visible]\n"
|
||||
<< " plan-about-menu --command help|about|news|crash|performance [--version-major N] [--version-minor N] [--version-fix N] [--no-diagnostics] [--no-canvas]\n"
|
||||
@@ -3558,6 +3562,14 @@ pp::foundation::Status parse_plan_app_status_args(
|
||||
args.recording_running = true;
|
||||
} else if (key == "--encoder-available") {
|
||||
args.encoder_available = true;
|
||||
} else if (key == "--framebuffer-fetch") {
|
||||
args.framebuffer_fetch = true;
|
||||
} else if (key == "--float32") {
|
||||
args.float32_render_targets = true;
|
||||
} else if (key == "--float32-linear") {
|
||||
args.float32_linear_filtering = true;
|
||||
} else if (key == "--float16") {
|
||||
args.float16_render_targets = true;
|
||||
} else {
|
||||
return pp::foundation::Status::invalid_argument("unknown option");
|
||||
}
|
||||
@@ -3582,6 +3594,12 @@ int plan_app_status(int argc, char** argv)
|
||||
args.recording_running,
|
||||
args.encoder_available,
|
||||
static_cast<int>(args.encoded_frames));
|
||||
const auto diagnostics = pp::app::plan_renderer_diagnostics({
|
||||
.framebuffer_fetch = args.framebuffer_fetch,
|
||||
.float32_render_targets = args.float32_render_targets,
|
||||
.float32_linear_filtering = args.float32_linear_filtering,
|
||||
.float16_render_targets = args.float16_render_targets,
|
||||
});
|
||||
|
||||
std::cout << "{\"ok\":true,\"command\":\"plan-app-status\""
|
||||
<< ",\"state\":{\"documentName\":\"" << json_escape(args.document_name)
|
||||
@@ -3593,6 +3611,10 @@ int plan_app_status(int argc, char** argv)
|
||||
<< ",\"recordingRunning\":" << json_bool(args.recording_running)
|
||||
<< ",\"encoderAvailable\":" << json_bool(args.encoder_available)
|
||||
<< ",\"encodedFrames\":" << args.encoded_frames
|
||||
<< ",\"framebufferFetch\":" << json_bool(args.framebuffer_fetch)
|
||||
<< ",\"float32\":" << json_bool(args.float32_render_targets)
|
||||
<< ",\"float32Linear\":" << json_bool(args.float32_linear_filtering)
|
||||
<< ",\"float16\":" << json_bool(args.float16_render_targets)
|
||||
<< "},\"title\":\"" << json_escape(pp::app::make_document_title(
|
||||
args.document_name,
|
||||
args.unsaved,
|
||||
@@ -3601,7 +3623,13 @@ int plan_app_status(int argc, char** argv)
|
||||
<< "\",\"memory\":\"" << json_escape(pp::app::make_history_memory_label(args.history_bytes))
|
||||
<< "\",\"recording\":{\"visible\":" << json_bool(recording_label.visible)
|
||||
<< ",\"text\":\"" << json_escape(recording_label.text)
|
||||
<< "\"},\"resolutionMap\":{\"fromIndexValid\":" << json_bool(static_cast<bool>(resolution_from_index))
|
||||
<< "\"},\"rendererDiagnostics\":{\"framebufferFetch\":{\"supported\":"
|
||||
<< json_bool(diagnostics.framebuffer_fetch.supported)
|
||||
<< ",\"label\":\"" << json_escape(std::string(diagnostics.framebuffer_fetch.label))
|
||||
<< "\"},\"floatingPointTargets\":{\"supported\":"
|
||||
<< json_bool(diagnostics.floating_point_targets.supported)
|
||||
<< ",\"label\":\"" << json_escape(std::string(diagnostics.floating_point_targets.label))
|
||||
<< "\"}},\"resolutionMap\":{\"fromIndexValid\":" << json_bool(static_cast<bool>(resolution_from_index))
|
||||
<< ",\"fromIndex\":" << (resolution_from_index ? resolution_from_index.value() : 0)
|
||||
<< ",\"toIndexValid\":" << json_bool(static_cast<bool>(resolution_index))
|
||||
<< ",\"toIndex\":" << (resolution_index ? resolution_index.value() : 0)
|
||||
|
||||
Reference in New Issue
Block a user