diff --git a/Tests/GPUTestFramework/src/GPUTestingEnvironment.cpp b/Tests/GPUTestFramework/src/GPUTestingEnvironment.cpp index 158151565..13db964ca 100644 --- a/Tests/GPUTestFramework/src/GPUTestingEnvironment.cpp +++ b/Tests/GPUTestFramework/src/GPUTestingEnvironment.cpp @@ -267,7 +267,7 @@ GPUTestingEnvironment::GPUTestingEnvironment(const CreateInfo& EnvCI, const Swap EngineCI.AdapterId = FindAdapter(Adapters, EnvCI.AdapterType, EnvCI.AdapterId); NumDeferredCtx = EnvCI.NumDeferredContexts; - EngineCI.NumDeferredContexts = NumDeferredCtx; + EngineCI.NumDeferredContexts = NumDeferredCtx / 2; ppContexts.resize(std::max(size_t{1}, ContextCI.size()) + NumDeferredCtx); pFactoryD3D11->CreateDeviceAndContextsD3D11(EngineCI, &m_pDevice, ppContexts.data()); } @@ -331,7 +331,7 @@ GPUTestingEnvironment::GPUTestingEnvironment(const CreateInfo& EnvCI, const Swap EngineCI.DynamicDescriptorAllocationChunkSize[1] = 8; // D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER NumDeferredCtx = EnvCI.NumDeferredContexts; - EngineCI.NumDeferredContexts = NumDeferredCtx; + EngineCI.NumDeferredContexts = NumDeferredCtx / 2; ppContexts.resize(std::max(size_t{1}, ContextCI.size()) + NumDeferredCtx); pFactoryD3D12->CreateDeviceAndContextsD3D12(EngineCI, &m_pDevice, ppContexts.data()); } @@ -431,7 +431,7 @@ GPUTestingEnvironment::GPUTestingEnvironment(const CreateInfo& EnvCI, const Swap EngineCI.ppIgnoreDebugMessageNames = IgnoreDebugMessages.data(); NumDeferredCtx = EnvCI.NumDeferredContexts; - EngineCI.NumDeferredContexts = NumDeferredCtx; + EngineCI.NumDeferredContexts = NumDeferredCtx / 2; ppContexts.resize(std::max(size_t{1}, ContextCI.size()) + NumDeferredCtx); pFactoryVk->CreateDeviceAndContextsVk(EngineCI, &m_pDevice, ppContexts.data()); } @@ -465,7 +465,7 @@ GPUTestingEnvironment::GPUTestingEnvironment(const CreateInfo& EnvCI, const Swap EngineCI.SetValidationLevel(VALIDATION_LEVEL_1); NumDeferredCtx = EnvCI.NumDeferredContexts; - EngineCI.NumDeferredContexts = NumDeferredCtx; + EngineCI.NumDeferredContexts = NumDeferredCtx / 2; ppContexts.resize(std::max(size_t{1}, ContextCI.size()) + NumDeferredCtx); pFactoryMtl->CreateDeviceAndContextsMtl(EngineCI, &m_pDevice, ppContexts.data()); } @@ -497,6 +497,11 @@ GPUTestingEnvironment::GPUTestingEnvironment(const CreateInfo& EnvCI, const Swap break; } + for (Uint32 ctx = EnvCI.NumDeferredContexts / 2; ctx < EnvCI.NumDeferredContexts; ++ctx) + { + m_pDevice->CreateDeferredContext(&ppContexts[std::max(ContextCI.size(), size_t{1}) + ctx]); + } + { const DeviceFeatures& ActualFeats = m_pDevice->GetDeviceInfo().Features; #define CHECK_FEATURE_STATE(Feature) \