mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-07 03:13:49 +00:00
Improve work with threads in NoiseTexture::init()
This commit is contained in:
parent
911e5490f1
commit
e576e2c0b9
|
@ -50,8 +50,8 @@ void NoiseTexture::init()
|
||||||
vec.resize(NOISE_TEX_WIDTH * NOISE_TEX_HEIGHT);
|
vec.resize(NOISE_TEX_WIDTH * NOISE_TEX_HEIGHT);
|
||||||
|
|
||||||
const u32 concurentThreadsSupported = std::thread::hardware_concurrency();
|
const u32 concurentThreadsSupported = std::thread::hardware_concurrency();
|
||||||
if (concurentThreadsSupported > 2) {
|
if (concurentThreadsSupported > 1) {
|
||||||
const u32 numThreads = concurentThreadsSupported - 1;
|
const u32 numThreads = concurentThreadsSupported;
|
||||||
u32 chunk = NOISE_TEX_NUM / numThreads;
|
u32 chunk = NOISE_TEX_NUM / numThreads;
|
||||||
if (NOISE_TEX_NUM % numThreads != 0)
|
if (NOISE_TEX_NUM % numThreads != 0)
|
||||||
chunk++;
|
chunk++;
|
||||||
|
@ -71,7 +71,9 @@ void NoiseTexture::init()
|
||||||
start,
|
start,
|
||||||
std::min(start + chunk, static_cast<u32>(texData.size())));
|
std::min(start + chunk, static_cast<u32>(texData.size())));
|
||||||
start += chunk;
|
start += chunk;
|
||||||
} while (start < NOISE_TEX_NUM);
|
} while (start < NOISE_TEX_NUM - chunk);
|
||||||
|
|
||||||
|
FillTextureData(generator(), &texData, start, texData.size());
|
||||||
|
|
||||||
for (auto& t : threads)
|
for (auto& t : threads)
|
||||||
t.join();
|
t.join();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user