|
SDLPainter 1.2.0
SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
|
Bir karenin çizim maliyeti — profilleme ve ekran üstü gösterim için. Ayrıntılar...
#include <frame_stats.h>
Public Özellikler(attribute) | |
| double | cpu_frame_ms {0.0} |
| Begin()–End() arası CPU süresi (milisaniye). | |
| double | gpu_frame_ms {0.0} |
| Karenin GPU süresi (milisaniye); ölçülemiyorsa 0. | |
| uint32_t | draw_calls {0} |
| IRenderer'a giden çizim çağrısı sayısı (DrawTriangles + DrawTextured). | |
| uint32_t | batches {0} |
| Geometri üreten batch (flush) sayısı. | |
| uint32_t | vertices {0} |
| GPU'ya gönderilen toplam vertex sayısı. | |
| uint32_t | state_changes {0} |
| Batch'lenemeyen GPU durum değişikliği sayısı. | |
Bir karenin çizim maliyeti — profilleme ve ekran üstü gösterim için.
Painter her karede doldurur; Painter::GetFrameStats ile okunur. Değerler son tamamlanan kareye aittir (End() çağrıldıktan sonra geçerlidir).
Bu sayaçların neden önemli olduğu examples/benchmarks/README.md içinde ölçümle anlatılır: aynı görüntüyü üreten iki çizim deseni arasında draw_calls farkı 20 kata varan kare süresi farkı yaratabiliyor.
| uint32_t sdl_painter::FrameStats::batches {0} |
Geometri üreten batch (flush) sayısı.
| double sdl_painter::FrameStats::gpu_frame_ms {0.0} |
Karenin GPU süresi (milisaniye); ölçülemiyorsa 0.
OpenGL backend'de GL_TIME_ELAPSED timer query ile ölçülür. Sonuç bir kare gecikmeli okunur (senkronizasyon duraklaması yaratmamak için), yani gösterilen değer bir önceki kareye aittir. Vulkan backend'de şu an ölçülmez ve 0 kalır.
| uint32_t sdl_painter::FrameStats::state_changes {0} |
Batch'lenemeyen GPU durum değişikliği sayısı.
Scissor (clip) ayarları, projeksiyon ve model matrisi yüklemeleri. Renk ve transform bu sayaca girmez — ikisi de vertex verisinde taşındığı için durum değişikliği değildir.