Commit 1a919ec
fix: PSP 60fps rendering pipeline + EBOOT XMB assets (#72)
* fix: PSP 60fps rendering pipeline + EBOOT XMB assets
Fix frame-doubling (60→30fps) in PSP Desktop mode caused by three
compounding bottlenecks:
1. swap_buffers pipeline: reorder sceGuSync after sceDisplayWaitVblankStart
so the GE renders the display list in parallel with the vsync wait
instead of stalling sequentially on both.
2. SDI draw overhead: replace 108 dashboard SDI objects (HashMap lookups,
z-sort, prefix filtering per frame) with direct GU draw calls via
chrome::draw_dashboard(). Add allocation-free draw_with_clips_noalloc()
to WindowManager using stack-buffer SDI name formatting and
closure-based filtering instead of Vec<String> allocations.
3. Kernel syscall throttling: rate-limit StatusBarInfo::poll() (6+ kernel
calls) and sceKernelTotalFreeMemSize/MaxFreeMemSize (heap walks) to
~4Hz instead of 60Hz. Replace format!() heap allocations in sysmon,
music, settings, and network windows with stack-buffer formatting.
Also add EBOOT XMB assets (Psp.toml + ICON0.PNG + PIC1.PNG) so the
homebrew shows an icon and background in the PSP menu.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: resolve doc link for draw_with_clips_noalloc
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address AI review feedback (iteration 1)
Automated fix by Claude in response to Gemini/Codex review.
Iteration: 1/5
Co-Authored-By: AI Review Agent <noreply@anthropic.com>
---------
Co-authored-by: AI Agent Bot <ai-agent@localhost>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: AI Review Agent <ai-review-agent@localhost>1 parent 5fde545 commit 1a919ec
File tree
9 files changed
+268
-43
lines changed- crates
- oasis-backend-psp
- assets
- src
- oasis-sdi/src
- oasis-wm/src
9 files changed
+268
-43
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
Loading
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
267 | 267 | | |
268 | 268 | | |
269 | 269 | | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
275 | 274 | | |
276 | 275 | | |
277 | | - | |
| 276 | + | |
278 | 277 | | |
279 | 278 | | |
280 | 279 | | |
| |||
317 | 316 | | |
318 | 317 | | |
319 | 318 | | |
| 319 | + | |
320 | 320 | | |
321 | 321 | | |
322 | | - | |
| 322 | + | |
323 | 323 | | |
324 | 324 | | |
325 | 325 | | |
326 | | - | |
| 326 | + | |
327 | 327 | | |
328 | 328 | | |
329 | 329 | | |
| |||
344 | 344 | | |
345 | 345 | | |
346 | 346 | | |
347 | | - | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
348 | 351 | | |
349 | 352 | | |
350 | 353 | | |
| |||
397 | 400 | | |
398 | 401 | | |
399 | 402 | | |
| 403 | + | |
400 | 404 | | |
401 | 405 | | |
402 | | - | |
| 406 | + | |
403 | 407 | | |
404 | 408 | | |
405 | 409 | | |
| |||
439 | 443 | | |
440 | 444 | | |
441 | 445 | | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
442 | 449 | | |
443 | 450 | | |
444 | 451 | | |
| |||
447 | 454 | | |
448 | 455 | | |
449 | 456 | | |
450 | | - | |
| 457 | + | |
| 458 | + | |
451 | 459 | | |
452 | 460 | | |
453 | 461 | | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
461 | 467 | | |
462 | 468 | | |
463 | 469 | | |
464 | | - | |
| 470 | + | |
| 471 | + | |
465 | 472 | | |
466 | 473 | | |
467 | 474 | | |
468 | | - | |
| 475 | + | |
| 476 | + | |
469 | 477 | | |
470 | 478 | | |
471 | 479 | | |
472 | 480 | | |
473 | 481 | | |
474 | 482 | | |
475 | | - | |
| 483 | + | |
| 484 | + | |
476 | 485 | | |
477 | 486 | | |
478 | 487 | | |
| |||
483 | 492 | | |
484 | 493 | | |
485 | 494 | | |
486 | | - | |
| 495 | + | |
| 496 | + | |
487 | 497 | | |
488 | | - | |
| 498 | + | |
489 | 499 | | |
490 | | - | |
| 500 | + | |
491 | 501 | | |
492 | 502 | | |
493 | | - | |
| 503 | + | |
494 | 504 | | |
495 | | - | |
| 505 | + | |
496 | 506 | | |
497 | | - | |
498 | | - | |
| 507 | + | |
499 | 508 | | |
500 | 509 | | |
501 | 510 | | |
| |||
606 | 615 | | |
607 | 616 | | |
608 | 617 | | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
609 | 643 | | |
610 | 644 | | |
611 | 645 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
452 | 452 | | |
453 | 453 | | |
454 | 454 | | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
455 | 461 | | |
456 | 462 | | |
457 | 463 | | |
458 | 464 | | |
459 | 465 | | |
460 | | - | |
| 466 | + | |
461 | 467 | | |
| 468 | + | |
| 469 | + | |
462 | 470 | | |
463 | 471 | | |
464 | 472 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
289 | 289 | | |
290 | 290 | | |
291 | 291 | | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
292 | 297 | | |
293 | 298 | | |
294 | 299 | | |
| |||
420 | 425 | | |
421 | 426 | | |
422 | 427 | | |
423 | | - | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
424 | 434 | | |
425 | 435 | | |
426 | 436 | | |
| |||
492 | 502 | | |
493 | 503 | | |
494 | 504 | | |
495 | | - | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
496 | 513 | | |
497 | | - | |
498 | | - | |
499 | | - | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
500 | 530 | | |
501 | | - | |
502 | 531 | | |
503 | 532 | | |
504 | 533 | | |
| |||
509 | 538 | | |
510 | 539 | | |
511 | 540 | | |
| 541 | + | |
| 542 | + | |
512 | 543 | | |
513 | 544 | | |
514 | 545 | | |
| |||
1008 | 1039 | | |
1009 | 1040 | | |
1010 | 1041 | | |
| 1042 | + | |
| 1043 | + | |
1011 | 1044 | | |
1012 | 1045 | | |
1013 | 1046 | | |
| |||
1018 | 1051 | | |
1019 | 1052 | | |
1020 | 1053 | | |
1021 | | - | |
1022 | | - | |
1023 | | - | |
1024 | | - | |
1025 | | - | |
1026 | | - | |
1027 | | - | |
1028 | 1054 | | |
1029 | 1055 | | |
1030 | | - | |
| 1056 | + | |
1031 | 1057 | | |
1032 | 1058 | | |
1033 | 1059 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
382 | 382 | | |
383 | 383 | | |
384 | 384 | | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
385 | 426 | | |
386 | 427 | | |
387 | 428 | | |
| |||
0 commit comments