ultimatepp/benchmarks/RGBAFill/main.cpp
cxl f842c6672b .benchmarks
git-svn-id: svn://ultimatepp.org/upp/trunk@14476 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2020-05-15 08:03:34 +00:00

41 lines
605 B
C++

#include <CtrlLib/CtrlLib.h>
using namespace Upp;
void CoFill(RGBA *t, RGBA c, int len)
{
const int CHUNK = 1024;
std::atomic<int> ii(0);
CoDo([&] {
for(;;) {
int pos = CHUNK * ii++;
if(pos >= len)
break;
Fill(t + pos, c, min(CHUNK, len - pos));
}
});
}
GUI_APP_MAIN
{
Color c = Red();
int len = 4000 * 2000;
Buffer<RGBA> b(len);
for(int i = 0; i < 10; i++) {
{
RTIMING("memsetd");
memsetd(b, *(dword*)&(c), len);
}
{
RTIMING("Fill");
Fill(b, c, len);
}
{
RTIMING("CoFill");
CoFill(b, c, len);
}
}
}