From 4c7896467955fed3091234f7016583f303f28d28 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Wed, 1 Mar 2023 13:16:37 +0100 Subject: [PATCH] [d3d9] Only log QueryInterface errors once --- src/d3d11/d3d11_shader.h | 4 +++- src/d3d9/d3d9_buffer.cpp | 14 ++++++++++---- src/d3d9/d3d9_device.cpp | 7 +++++-- src/d3d9/d3d9_interface.cpp | 7 +++++-- src/d3d9/d3d9_query.cpp | 7 +++++-- src/d3d9/d3d9_shader.h | 7 +++++-- src/d3d9/d3d9_stateblock.cpp | 7 +++++-- src/d3d9/d3d9_surface.cpp | 7 +++++-- src/d3d9/d3d9_swapchain.cpp | 7 +++++-- src/d3d9/d3d9_texture.cpp | 21 +++++++++++++++------ src/d3d9/d3d9_vertex_declaration.cpp | 7 +++++-- src/d3d9/d3d9_volume.cpp | 7 +++++-- 12 files changed, 73 insertions(+), 29 deletions(-) diff --git a/src/d3d11/d3d11_shader.h b/src/d3d11/d3d11_shader.h index 8d6e11254..44a3bcb98 100644 --- a/src/d3d11/d3d11_shader.h +++ b/src/d3d11/d3d11_shader.h @@ -136,8 +136,10 @@ namespace dxvk { if (logQueryInterfaceError(__uuidof(D3D11Interface), riid)) { Logger::warn("D3D11Shader::QueryInterface: Unknown interface query"); - return E_NOINTERFACE; + Logger::warn(str::format(riid)); } + + return E_NOINTERFACE; } const D3D11CommonShader* GetCommonShader() const { diff --git a/src/d3d9/d3d9_buffer.cpp b/src/d3d9/d3d9_buffer.cpp index c0b72c46e..999844ef1 100644 --- a/src/d3d9/d3d9_buffer.cpp +++ b/src/d3d9/d3d9_buffer.cpp @@ -29,8 +29,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9VertexBuffer::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DVertexBuffer9), riid)) { + Logger::warn("D3D9VertexBuffer::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } @@ -86,8 +89,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9IndexBuffer::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DIndexBuffer9), riid)) { + Logger::warn("D3D9IndexBuffer::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index e8ef30126..0cf65cf00 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -201,8 +201,11 @@ namespace dxvk { if (riid == __uuidof(IDirect3DDevice9Ex)) return E_NOINTERFACE; - Logger::warn("D3D9DeviceEx::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DDevice9), riid)) { + Logger::warn("D3D9DeviceEx::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_interface.cpp b/src/d3d9/d3d9_interface.cpp index 10113e57d..e56c8b3d5 100644 --- a/src/d3d9/d3d9_interface.cpp +++ b/src/d3d9/d3d9_interface.cpp @@ -91,8 +91,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9InterfaceEx::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3D9), riid)) { + Logger::warn("D3D9InterfaceEx::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_query.cpp b/src/d3d9/d3d9_query.cpp index a48732528..238c7e353 100644 --- a/src/d3d9/d3d9_query.cpp +++ b/src/d3d9/d3d9_query.cpp @@ -64,8 +64,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9Query::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DQuery9), riid)) { + Logger::warn("D3D9Query::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_shader.h b/src/d3d9/d3d9_shader.h index 997d15259..564c881ac 100644 --- a/src/d3d9/d3d9_shader.h +++ b/src/d3d9/d3d9_shader.h @@ -109,8 +109,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9Shader::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(Base), riid)) { + Logger::warn("D3D9Shader::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_stateblock.cpp b/src/d3d9/d3d9_stateblock.cpp index aec477127..9c0abba11 100644 --- a/src/d3d9/d3d9_stateblock.cpp +++ b/src/d3d9/d3d9_stateblock.cpp @@ -32,8 +32,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9StateBlock::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DStateBlock9), riid)) { + Logger::warn("D3D9StateBlock::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_surface.cpp b/src/d3d9/d3d9_surface.cpp index 91f917853..ec6b7860f 100644 --- a/src/d3d9/d3d9_surface.cpp +++ b/src/d3d9/d3d9_surface.cpp @@ -74,8 +74,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9Surface::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DSurface9), riid)) { + Logger::warn("D3D9Surface::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_swapchain.cpp b/src/d3d9/d3d9_swapchain.cpp index e01c80413..89c356fbe 100644 --- a/src/d3d9/d3d9_swapchain.cpp +++ b/src/d3d9/d3d9_swapchain.cpp @@ -84,8 +84,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9SwapChainEx::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DSwapChain9), riid)) { + Logger::warn("D3D9SwapChainEx::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_texture.cpp b/src/d3d9/d3d9_texture.cpp index 1332fb32e..25a131493 100644 --- a/src/d3d9/d3d9_texture.cpp +++ b/src/d3d9/d3d9_texture.cpp @@ -32,8 +32,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9Texture2D::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DTexture9), riid)) { + Logger::warn("D3D9Texture2D::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } @@ -128,8 +131,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9Texture3D::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DVolumeTexture9), riid)) { + Logger::warn("D3D9Texture3D::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } @@ -218,8 +224,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9TextureCube::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DCubeTexture9), riid)) { + Logger::warn("D3D9TextureCube::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_vertex_declaration.cpp b/src/d3d9/d3d9_vertex_declaration.cpp index 49b4dacaa..58c43be43 100644 --- a/src/d3d9/d3d9_vertex_declaration.cpp +++ b/src/d3d9/d3d9_vertex_declaration.cpp @@ -40,8 +40,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9VertexDecl::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DVertexDeclaration9), riid)) { + Logger::warn("D3D9VertexDecl::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; } diff --git a/src/d3d9/d3d9_volume.cpp b/src/d3d9/d3d9_volume.cpp index dff931f25..18a80751b 100644 --- a/src/d3d9/d3d9_volume.cpp +++ b/src/d3d9/d3d9_volume.cpp @@ -65,8 +65,11 @@ namespace dxvk { return S_OK; } - Logger::warn("D3D9Volume::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); + if (logQueryInterfaceError(__uuidof(IDirect3DVolume9), riid)) { + Logger::warn("D3D9Volume::QueryInterface: Unknown interface query"); + Logger::warn(str::format(riid)); + } + return E_NOINTERFACE; }