瀏覽代碼

D3D11: Don't use Intel extensions on Win7. Issue #1460.

Branimir Karadžić 7 年之前
父節點
當前提交
fb4ae811d6
共有 1 個文件被更改,包括 19 次插入16 次删除
  1. 19 16
      src/renderer_d3d11.cpp

+ 19 - 16
src/renderer_d3d11.cpp

@@ -519,30 +519,33 @@ namespace bgfx { namespace d3d11
 
 
 	static BX_NO_INLINE bool getIntelExtensions(ID3D11Device* _device)
 	static BX_NO_INLINE bool getIntelExtensions(ID3D11Device* _device)
 	{
 	{
-		uint8_t temp[28];
+		if (windowsVersionIs(Condition::GreaterEqual, 0x0604) )
+		{
+			uint8_t temp[28];
 
 
-		bx::StaticMemoryBlockWriter writer(&temp, sizeof(temp) );
-		bx::write(&writer, "INTCEXTNCAPSFUNC", 16);
-		bx::write(&writer, kIntelExtensionInterfaceVersion);
-		bx::write(&writer, UINT32_C(0) );
-		bx::write(&writer, UINT32_C(0) );
+			bx::StaticMemoryBlockWriter writer(&temp, sizeof(temp) );
+			bx::write(&writer, "INTCEXTNCAPSFUNC", 16);
+			bx::write(&writer, kIntelExtensionInterfaceVersion);
+			bx::write(&writer, UINT32_C(0) );
+			bx::write(&writer, UINT32_C(0) );
 
 
-		if (SUCCEEDED(setIntelExtension(_device, temp, sizeof(temp) ) ) )
-		{
-			bx::MemoryReader reader(&temp, sizeof(temp) );
-			bx::skip(&reader, 16);
+			if (SUCCEEDED(setIntelExtension(_device, temp, sizeof(temp) ) ) )
+			{
+				bx::MemoryReader reader(&temp, sizeof(temp) );
+				bx::skip(&reader, 16);
 
 
-			uint32_t version;
-			bx::read(&reader, version);
+				uint32_t version;
+				bx::read(&reader, version);
 
 
-			uint32_t driverVersion;
-			bx::read(&reader, driverVersion);
+				uint32_t driverVersion;
+				bx::read(&reader, driverVersion);
 
 
-			return version <= driverVersion;
+				return version <= driverVersion;
+			}
 		}
 		}
 
 
 		return false;
 		return false;
-	};
+	}
 
 
 	void resume(ID3D11Device* _device)
 	void resume(ID3D11Device* _device)
 	{
 	{