Branimir Karadžić 8 years ago
parent
commit
690f232c09
1 changed files with 6 additions and 4 deletions
  1. 6 4
      examples/17-drawstress/drawstress.cpp

+ 6 - 4
examples/17-drawstress/drawstress.cpp

@@ -167,9 +167,10 @@ public:
 		// Imgui.
 		imguiCreate();
 
-		m_numThreads = (BX_COUNTOF(m_thread)+1)/2;
+		m_maxThreads = bx::min<int32_t>(caps->limits.maxEncoders, BX_COUNTOF(m_thread) );
+		m_numThreads = (m_maxThreads+1)/2;
 
-		for (uint32_t ii = 0; ii < BX_COUNTOF(m_thread); ++ii)
+		for (int32_t ii = 0; ii < m_maxThreads; ++ii)
 		{
 			m_thread[ii].init(threadFunc, this);
 		}
@@ -177,7 +178,7 @@ public:
 
 	int shutdown() override
 	{
-		for (uint32_t ii = 0; ii < BX_COUNTOF(m_thread); ++ii)
+		for (int32_t ii = 0; ii < m_maxThreads; ++ii)
 		{
 			m_thread[ii].push(reinterpret_cast<void*>(UINTPTR_MAX) );
 			m_thread[ii].shutdown();
@@ -346,7 +347,7 @@ public:
 
 			ImGui::Checkbox("Auto adjust", &m_autoAdjust);
 
-			ImGui::SliderInt("Num threads", &m_numThreads, 1, BX_COUNTOF(m_thread) );
+			ImGui::SliderInt("Num threads", &m_numThreads, 1, m_maxThreads);
 			const uint32_t numThreads = m_numThreads;
 
 			ImGui::SliderInt("Dim", &m_dim, 5, m_maxDim);
@@ -424,6 +425,7 @@ public:
 	int32_t  m_maxDim;
 	int32_t  m_transform;
 	int32_t  m_numThreads;
+	int32_t  m_maxThreads;
 
 	int64_t  m_timeOffset;