Share recorded document upload reporting
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user