From 2a7470723ed0ba366af35be539fb794e41d43e7f Mon Sep 17 00:00:00 2001 From: Jeff Date: Sun, 7 Jul 2024 11:47:18 +0100 Subject: [PATCH] [d3d8] Tidy up D3DDEVINFO_VCACHE handling --- src/d3d8/d3d8_device.cpp | 10 ++++++++-- src/d3d8/d3d8_include.h | 7 ------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/d3d8/d3d8_device.cpp b/src/d3d8/d3d8_device.cpp index 765cdfa24b4..bb4f12b4897 100644 --- a/src/d3d8/d3d8_device.cpp +++ b/src/d3d8/d3d8_device.cpp @@ -94,12 +94,18 @@ namespace dxvk { // on modern native AMD drivers and D3D8-era native ATI drivers. res = GetD3D9()->CreateQuery(d3d9::D3DQUERYTYPE_VCACHE, &pQuery); + struct D3DDEVINFO_VCACHE { + DWORD Pattern; + DWORD OptMethod; + DWORD CacheSize; + DWORD MagicNumber; + }; + if(FAILED(res)) { if (DevInfoStructSize != sizeof(D3DDEVINFO_VCACHE)) return D3DERR_INVALIDCALL; - D3DDEVINFO_VCACHE vCacheDevInfo = {0}; - memcpy(pDevInfoStruct, &vCacheDevInfo, DevInfoStructSize); + memset(pDevInfoStruct, 0, std::min(size_t(DevInfoStructSize), sizeof(D3DDEVINFO_VCACHE))); return S_FALSE; } diff --git a/src/d3d8/d3d8_include.h b/src/d3d8/d3d8_include.h index ab5e1d77c87..78d7dcd16d2 100644 --- a/src/d3d8/d3d8_include.h +++ b/src/d3d8/d3d8_include.h @@ -179,13 +179,6 @@ namespace d3d9 { #define D3DDEVINFOID_VCACHE 4 #endif -typedef struct D3DDEVINFO_VCACHE { - DWORD Pattern; - DWORD OptMethod; - DWORD CacheSize; - DWORD MagicNumber; -} D3DDEVINFO_VCACHE; - // MinGW headers are broken. Who'dve guessed? #ifndef _MSC_VER