|
|
|
|
@ -25,20 +25,15 @@ void BM_RenderSmallClx(benchmark::State &state)
|
|
|
|
|
OwnedClxSpriteList sprites = LoadClx("data\\resistance.clx"); |
|
|
|
|
|
|
|
|
|
const size_t numSprites = sprites.numSprites(); |
|
|
|
|
const size_t dataSize = sprites.dataSize(); |
|
|
|
|
size_t numBytesProcessed = 0; |
|
|
|
|
size_t numItemsProcessed = 0; |
|
|
|
|
for (auto _ : state) { |
|
|
|
|
for (size_t i = 0; i < numSprites; ++i) { |
|
|
|
|
RenderClxSprite(out, sprites[i], Point { static_cast<int>(i * 100), static_cast<int>(i * 60) }); |
|
|
|
|
} |
|
|
|
|
uint8_t color = out[Point { 120, 120 }]; |
|
|
|
|
benchmark::DoNotOptimize(color); |
|
|
|
|
numItemsProcessed += numSprites; |
|
|
|
|
numBytesProcessed += dataSize; |
|
|
|
|
} |
|
|
|
|
state.SetBytesProcessed(numBytesProcessed); |
|
|
|
|
state.SetItemsProcessed(numItemsProcessed); |
|
|
|
|
state.SetBytesProcessed(state.iterations() * sprites.dataSize()); |
|
|
|
|
state.SetItemsProcessed(state.iterations() * numSprites); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void BM_RenderLargeClx(benchmark::State &state) |
|
|
|
|
@ -52,18 +47,13 @@ void BM_RenderLargeClx(benchmark::State &state)
|
|
|
|
|
Surface out = Surface(sdl_surface.get()); |
|
|
|
|
OwnedClxSpriteList sprites = LoadClx("ui_art\\dvl_lrpopup.clx"); |
|
|
|
|
|
|
|
|
|
const size_t dataSize = sprites.dataSize(); |
|
|
|
|
size_t numBytesProcessed = 0; |
|
|
|
|
size_t numItemsProcessed = 0; |
|
|
|
|
for (auto _ : state) { |
|
|
|
|
RenderClxSprite(out, sprites[0], Point { 100, 100 }); |
|
|
|
|
uint8_t color = out[Point { 120, 120 }]; |
|
|
|
|
benchmark::DoNotOptimize(color); |
|
|
|
|
numBytesProcessed += dataSize; |
|
|
|
|
++numItemsProcessed; |
|
|
|
|
} |
|
|
|
|
state.SetBytesProcessed(numBytesProcessed); |
|
|
|
|
state.SetItemsProcessed(numItemsProcessed); |
|
|
|
|
state.SetBytesProcessed(state.iterations() * sprites.dataSize()); |
|
|
|
|
state.SetItemsProcessed(state.iterations()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BENCHMARK(BM_RenderSmallClx); |
|
|
|
|
|