mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 17:09:57 -04:00
Start every pass and dispatch mark with no mesh draws counted, where the mark is made.
The count was reset in vk_exec_pass_begin alone, so a dispatch's record kept the counts of the pass that last had its slot of the ring; the report prints them only for passes, but the record now holds what its mark was. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -614,7 +614,7 @@ VkPassMark *vk_pass_mark_begin(VkCommandBuffer cb, int kind, uint64_t fence) {
|
||||
uint32_t id = ++seq;
|
||||
if (!id) id = ++seq; // 0 means no mark
|
||||
VkPassMark *m = &ring[id & (VK_PASS_MARKS - 1)];
|
||||
m->id = id, m->kind = (uint8_t)kind, m->fence = fence, m->draws = UINT32_MAX;
|
||||
m->id = id, m->kind = (uint8_t)kind, m->fence = fence, m->draws = UINT32_MAX, m->mesh = m->mesh_ind = 0;
|
||||
m->gap = gap_now, gap_now = 0; // what was recorded between the mark before and this one
|
||||
// timed unless the slot's previous mark is still waiting to be read (its queries are not reset yet)
|
||||
if (pt_pool) pt_timed[id & (VK_PASS_MARKS - 1)] = !pt_timed[id & (VK_PASS_MARKS - 1)] ? 1 : 2;
|
||||
|
||||
@@ -865,7 +865,6 @@ void vk_exec_pass_begin(VkExec *ex) {
|
||||
VkPassMark *m = ex->mark = rw_chunk ? NULL : vk_pass_mark_begin(ex->cb, VK_MARK_PASS, ex->fence); // one ring
|
||||
if (m) {
|
||||
m->step = ex->mark_passes++;
|
||||
m->mesh = m->mesh_ind = 0;
|
||||
m->w = ex->pass_w, m->h = ex->pass_h, m->d = ex->pass_layers;
|
||||
m->layer = ex->depth.image ? ex->depth.base_layer : 0;
|
||||
m->vw = m->vh = 0;
|
||||
|
||||
Reference in New Issue
Block a user