Przeglądaj źródła

Properly initialize UAV buffer when data is provided.

Branimir Karadžić 8 lat temu
rodzic
commit
d638e5c84d
1 zmienionych plików z 6 dodań i 6 usunięć
  1. 6 6
      src/renderer_d3d11.cpp

+ 6 - 6
src/renderer_d3d11.cpp

@@ -4082,6 +4082,11 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 
 		ID3D11Device* device = s_renderD3D11->m_device;
 
+		D3D11_SUBRESOURCE_DATA srd;
+		srd.pSysMem = _data;
+		srd.SysMemPitch = 0;
+		srd.SysMemSlicePitch = 0;
+
 		if (needUav)
 		{
 			desc.Usage = D3D11_USAGE_DEFAULT;
@@ -4089,7 +4094,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 			desc.StructureByteStride = _stride;
 
 			DX_CHECK(device->CreateBuffer(&desc
-				, NULL
+				, NULL == _data ? NULL : &srd
 				, &m_ptr
 				) );
 
@@ -4119,11 +4124,6 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 			desc.Usage = D3D11_USAGE_IMMUTABLE;
 			desc.CPUAccessFlags = 0;
 
-			D3D11_SUBRESOURCE_DATA srd;
-			srd.pSysMem = _data;
-			srd.SysMemPitch = 0;
-			srd.SysMemSlicePitch = 0;
-
 			DX_CHECK(device->CreateBuffer(&desc
 				, &srd
 				, &m_ptr