Commit 2f5662a
Keep submitted command buffers alive until the GPU is done
Queue::submit() takes ownership of command buffers, but their destructors
free backend resources (VkCommandPool, ID3D12CommandAllocator) that the
GPU may still be reading from. Track in-flight batches per queue, tagged
with their fence signal value, and non-blockingly query fence progress at
the start of each submit to release completed batches.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>1 parent b1b3f4e commit 2f5662a
3 files changed
Lines changed: 73 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
399 | 399 | | |
400 | 400 | | |
401 | 401 | | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
402 | 412 | | |
403 | 413 | | |
404 | 414 | | |
| |||
460 | 470 | | |
461 | 471 | | |
462 | 472 | | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
463 | 482 | | |
464 | 483 | | |
465 | 484 | | |
466 | | - | |
467 | | - | |
468 | | - | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
469 | 488 | | |
470 | 489 | | |
471 | 490 | | |
| |||
488 | 507 | | |
489 | 508 | | |
490 | 509 | | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
491 | 513 | | |
492 | 514 | | |
493 | 515 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
117 | 126 | | |
118 | 127 | | |
119 | 128 | | |
| |||
184 | 193 | | |
185 | 194 | | |
186 | 195 | | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
187 | 205 | | |
188 | 206 | | |
189 | 207 | | |
| |||
196 | 214 | | |
197 | 215 | | |
198 | 216 | | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
199 | 220 | | |
200 | 221 | | |
201 | 222 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
480 | 480 | | |
481 | 481 | | |
482 | 482 | | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
483 | 493 | | |
484 | 494 | | |
485 | 495 | | |
| |||
545 | 555 | | |
546 | 556 | | |
547 | 557 | | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
548 | 567 | | |
549 | 568 | | |
550 | 569 | | |
551 | | - | |
552 | | - | |
553 | | - | |
| 570 | + | |
| 571 | + | |
554 | 572 | | |
555 | 573 | | |
556 | 574 | | |
| |||
585 | 603 | | |
586 | 604 | | |
587 | 605 | | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
588 | 609 | | |
589 | 610 | | |
590 | 611 | | |
| |||
831 | 852 | | |
832 | 853 | | |
833 | 854 | | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
834 | 858 | | |
835 | 859 | | |
836 | 860 | | |
| |||
0 commit comments