Repository navigation
v0.0.156
rePIU v0.0.156
이전 릴리스 v0.0.155 이후의 변경입니다. 이번 릴리스는 pumpitp3 타이틀 화면에서
확인된 paletted texture 갱신 병목을 제거하면서, palette가 기존 P_8/AP_88 texture에
반영되는 Glide 의미를 유지합니다.
Paletted texture 지연 갱신
- palette download마다 보존된 모든 P_8/AP_88 texture를 CPU에서 RGBA로 다시 디코드하고
glTexImage2D로 전량 재업로드하던 eager refresh를 제거했습니다. - Win32 OpenGL backend는 실제 palette byte가 바뀔 때만 generation을 증가시킵니다.
byte-identical palette download는 generation 변경과 texture 작업을 모두 생략합니다. - 각 indexed texture는 마지막 적용 palette generation을 기록합니다. textured draw에서
실제로 sampling되는 현재 texture가 오래된 경우에만 보존 index source를 다시 디코드하고
기존 GPU allocation을glTexSubImage2D로 갱신합니다. - palette 변경은 다음 sampling 전에 반영되므로 Task 483의 texture/palette 독립 수명과
P_8 불투명 alpha, AP_88 texel alpha 계약을 유지합니다.
성능 계측
- 종료 texture census에 palette download의 전체/변경/동일 횟수를 추가했습니다.
- 지연 갱신 성공/실패 수, source/RGBA byte, CPU decode 시간과 OpenGL upload 호출 시간을
출력합니다. - 기존 Task 483 palette 성능 TODO를 이번 구현과 문서로 완료했습니다.
검증
- Win32 x86 Debug/Release의
repiu_aot_probe와repiu빌드가 성공했습니다. pumpitp3/PIU/PIU.EXE전체 AOT probe가 두 구성에서 exit 0으로 통과했습니다.glide_texture_table_stack_probe=pass,
glide_texture_census_palette_refresh_profiled=true,
glide_texture_census_all=true를 확인했습니다.- 사용자가 실제
pumpitp3타이틀 화면에서 성능 개선을 확인했습니다. - 기존 C4819 코드 페이지 경고와 LNK4217 경고만 남았습니다.
rePIU v0.0.156
Changes since v0.0.155. This release removes the paletted-texture refresh
bottleneck observed on the pumpitp3 title screen while preserving the Glide
semantics that make a new palette affect existing P_8/AP_88 textures.
Lazy paletted-texture refresh
- Removed the eager path that CPU-decoded every retained P_8/AP_88 texture to RGBA
and re-uploaded the entire set throughglTexImage2Don every palette download. - The Win32 OpenGL backend advances a generation only when palette bytes actually
change. A byte-identical download skips both generation advance and texture work. - Each indexed texture records its applied palette generation. A textured draw
decodes retained indices and callsglTexSubImage2Donly when the currently
sampled texture is stale. - Palette changes remain visible before the next sample, retaining Task 483's
independent texture/palette lifetime, opaque P_8 alpha, and AP_88 texel-alpha
contracts.
Performance telemetry
- The ending texture census now reports total, changed, and identical palette
downloads. - It also reports lazy-refresh successes/failures, source/RGBA bytes, CPU decode
time, and OpenGL upload-call time. - The deferred Task 483 palette-performance TODO is complete in this implementation
and its documentation.
Verification
- Win32 x86 Debug/Release builds of
repiu_aot_probeandrepiusucceeded. - The complete
pumpitp3/PIU/PIU.EXEAOT probe exited zero in both configurations. glide_texture_table_stack_probe=pass,
glide_texture_census_palette_refresh_profiled=true, and
glide_texture_census_all=truewere confirmed.- The user confirmed the performance improvement on the real
pumpitp3title
screen. - Only the existing C4819 code-page and LNK4217 warnings remain.