Share recorded document upload reporting

This commit is contained in:
2026-06-05 18:46:15 +02:00
parent 81898a5dcc
commit 693923b7bd
8 changed files with 141 additions and 63 deletions

View File

@@ -1,5 +1,7 @@
#include "paint_renderer/compositor.h"
#include "renderer_api/recording_renderer.h"
#include <algorithm>
#include <limits>
#include <utility>
@@ -412,6 +414,31 @@ pp::foundation::Result<DocumentFrameUploadResult> upload_document_frame_faces(
return pp::foundation::Result<DocumentFrameUploadResult>::success(std::move(result));
}
pp::foundation::Result<RecordedDocumentFrameUploadResult> record_document_frame_upload(
DocumentFrameUploadRequest request)
{
pp::renderer::RecordingRenderDevice render_device;
auto uploaded = upload_document_frame_faces(render_device, request);
if (!uploaded) {
return pp::foundation::Result<RecordedDocumentFrameUploadResult>::failure(uploaded.status());
}
RecordedDocumentFrameUploadResult result;
result.upload = std::move(uploaded.value());
const auto commands = render_device.commands();
result.command_count = commands.size();
for (const auto& command : commands) {
if (command.kind == pp::renderer::RecordedRenderCommandKind::upload_texture) {
++result.upload_command_count;
}
if (command.kind == pp::renderer::RecordedRenderCommandKind::transition_texture) {
++result.transition_command_count;
}
}
return pp::foundation::Result<RecordedDocumentFrameUploadResult>::success(std::move(result));
}
bool stroke_composite_requires_feedback(
pp::paint::BlendMode layer_blend_mode,
pp::paint::StrokeBlendMode stroke_blend_mode,

View File

@@ -132,6 +132,13 @@ struct DocumentFrameUploadResult {
std::uint64_t uploaded_bytes = 0;
};
struct RecordedDocumentFrameUploadResult {
DocumentFrameUploadResult upload {};
std::size_t command_count = 0;
std::size_t upload_command_count = 0;
std::size_t transition_command_count = 0;
};
[[nodiscard]] pp::foundation::Status composite_layer(
std::span<pp::paint::Rgba> destination,
pp::renderer::Extent2D extent,
@@ -147,6 +154,9 @@ struct DocumentFrameUploadResult {
pp::renderer::IRenderDevice& device,
DocumentFrameUploadRequest request);
[[nodiscard]] pp::foundation::Result<RecordedDocumentFrameUploadResult> record_document_frame_upload(
DocumentFrameUploadRequest request);
[[nodiscard]] bool stroke_composite_requires_feedback(
pp::paint::BlendMode layer_blend_mode,
pp::paint::StrokeBlendMode stroke_blend_mode,