From fb4ae811d63fce5d641243dca1a6d2760e7a027b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Mon, 20 Aug 2018 05:19:09 -0700 Subject: [PATCH] D3D11: Don't use Intel extensions on Win7. Issue #1460. --- src/renderer_d3d11.cpp | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index b032f691b..b2a9414f0 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -519,30 +519,33 @@ namespace bgfx { namespace d3d11 static BX_NO_INLINE bool getIntelExtensions(ID3D11Device* _device) { - 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) ); - - if (SUCCEEDED(setIntelExtension(_device, temp, sizeof(temp) ) ) ) + if (windowsVersionIs(Condition::GreaterEqual, 0x0604) ) { - bx::MemoryReader reader(&temp, sizeof(temp) ); - bx::skip(&reader, 16); + uint8_t temp[28]; - uint32_t version; - bx::read(&reader, version); + 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) ); - uint32_t driverVersion; - bx::read(&reader, driverVersion); + if (SUCCEEDED(setIntelExtension(_device, temp, sizeof(temp) ) ) ) + { + bx::MemoryReader reader(&temp, sizeof(temp) ); + bx::skip(&reader, 16); - return version <= driverVersion; + uint32_t version; + bx::read(&reader, version); + + uint32_t driverVersion; + bx::read(&reader, driverVersion); + + return version <= driverVersion; + } } return false; - }; + } void resume(ID3D11Device* _device) {