From 2001a8b9d2399f3697d2ec8c5c52c43c29bc72f2 Mon Sep 17 00:00:00 2001 From: assiduous Date: Wed, 13 Jan 2021 13:11:03 -0800 Subject: GLTF Loader: made Model::GPUDataInitialized atomic --- AssetLoader/interface/GLTFLoader.hpp | 5 +++-- AssetLoader/src/GLTFLoader.cpp | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'AssetLoader') diff --git a/AssetLoader/interface/GLTFLoader.hpp b/AssetLoader/interface/GLTFLoader.hpp index a4bc29f..125c16a 100644 --- a/AssetLoader/interface/GLTFLoader.hpp +++ b/AssetLoader/interface/GLTFLoader.hpp @@ -33,6 +33,7 @@ #include #include #include +#include #include "../../../DiligentCore/Graphics/GraphicsEngine/interface/RenderDevice.h" #include "../../../DiligentCore/Graphics/GraphicsEngine/interface/DeviceContext.h" @@ -425,7 +426,7 @@ struct Model bool IsGPUDataInitialized() const { - return GPUDataInitialized; + return GPUDataInitialized.load(); } void Transform(const float4x4& Matrix); @@ -489,7 +490,7 @@ private: Node* FindNode(Node* parent, Uint32 index); Node* NodeFromIndex(uint32_t index); - bool GPUDataInitialized = false; + std::atomic_bool GPUDataInitialized = false; struct BufferInfo { diff --git a/AssetLoader/src/GLTFLoader.cpp b/AssetLoader/src/GLTFLoader.cpp index 13f5886..485def6 100644 --- a/AssetLoader/src/GLTFLoader.cpp +++ b/AssetLoader/src/GLTFLoader.cpp @@ -911,7 +911,7 @@ void Model::LoadTextures(IRenderDevice* pDevice, void Model::PrepareGPUResources(IRenderDevice* pDevice, IDeviceContext* pCtx) { - if (GPUDataInitialized) + if (GPUDataInitialized.load()) return; std::vector Barriers; @@ -1064,7 +1064,7 @@ void Model::PrepareGPUResources(IRenderDevice* pDevice, IDeviceContext* pCtx) if (!Barriers.empty()) pCtx->TransitionResourceStates(static_cast(Barriers.size()), Barriers.data()); - GPUDataInitialized = true; + GPUDataInitialized.store(true); } namespace -- cgit v1.2.3