展示优化
This commit is contained in:
@@ -69,8 +69,7 @@ public:
|
||||
frame.pixel_height = static_cast<std::uint64_t>(size.height);
|
||||
frame.viewport_version = context->viewport_version.load(std::memory_order_acquire);
|
||||
frame.dirty_reason_mask = pending_dirty_reason_mask.exchange(0, std::memory_order_acq_rel);
|
||||
frame.render_queue_wait_ns = submit_time > frame.render_role_enter_ns ? submit_time - frame.render_role_enter_ns : 0;
|
||||
frame.render_begin_ns = submit_time;
|
||||
frame.render_slot_idle_wait_ns = submit_time > frame.render_role_enter_ns ? submit_time - frame.render_role_enter_ns : 0;
|
||||
auto job = std::make_shared<Frame_Render_Job>();
|
||||
job->owner = shared_from_this();
|
||||
job->generation = generation.load(std::memory_order_acquire);
|
||||
@@ -138,7 +137,7 @@ public:
|
||||
if (submitted)
|
||||
return true;
|
||||
frame.outcome = Frame_Outcome::Worker_Budget_Dropped;
|
||||
frame.worker.rejected_task_count++;
|
||||
frame.worker.rejected_topology_count++;
|
||||
if (flow)
|
||||
flow->discard_render_frame(std::move(job->frame_surface));
|
||||
release_frame_views(job);
|
||||
@@ -164,7 +163,9 @@ public:
|
||||
if (!frame_job_valid(job))
|
||||
return;
|
||||
Frame_Lifecycle_Record& frame = *job->lifecycle;
|
||||
frame.prepare_begin_ns = steady_now_ns();
|
||||
std::uint64_t begin_ns = steady_now_ns();
|
||||
frame.render_begin_ns = begin_ns;
|
||||
frame.prepare_begin_ns = begin_ns;
|
||||
job->prepared_output_count.store(0, std::memory_order_release);
|
||||
}
|
||||
void dispatch_prepare_subflow(const std::shared_ptr<Frame_Render_Job>& job, Render_Task_Subflow& subflow) {
|
||||
@@ -231,8 +232,10 @@ public:
|
||||
if (!job || !job->buffer || !job->lifecycle)
|
||||
return;
|
||||
Frame_Lifecycle_Record& frame = *job->lifecycle;
|
||||
if (job->worker_stat)
|
||||
if (job->worker_stat) {
|
||||
frame.worker = *job->worker_stat;
|
||||
frame.executor_queue_wait_ns = frame.worker.topology_queue_wait_total_ns;
|
||||
}
|
||||
bool valid_generation = job->generation == generation.load(std::memory_order_acquire);
|
||||
bool valid_context = !destroying();
|
||||
bool render_complete = job->buffer->render_complete.load(std::memory_order_acquire);
|
||||
|
||||
Reference in New Issue
Block a user