From c72c6ec6eda1e5e355e2d5d7805e911f67c1b1f4 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Mon, 29 Aug 2022 18:47:17 +0200 Subject: [PATCH] [d3d10] Remove d3d10.dll and d3d10_1.dll These are incomplete and are already not being used anyway, so just drop them. --- lib/d3dcompiler_43.lib | Bin 4264 -> 0 bytes lib/libd3dcompiler_43.def | 17 -- lib32/d3dcompiler_43.lib | Bin 4490 -> 0 bytes lib32/libd3dcompiler_43.def | 17 -- src/d3d10/d3d10.def | 29 --- src/d3d10/d3d10_1.def | 29 --- src/d3d10/d3d10_interfaces.h | 9 - src/d3d10/d3d10_main.cpp | 335 ------------------------- src/d3d10/d3d10_reflection.cpp | 326 ------------------------ src/d3d10/d3d10_reflection.h | 163 ------------ src/d3d10/d3d10_state_block.cpp | 432 -------------------------------- src/d3d10/d3d10_state_block.h | 82 ------ src/d3d10/meson.build | 31 --- src/d3d10/version10.rc | 32 --- src/d3d10/version10_1.rc | 32 --- 15 files changed, 1534 deletions(-) delete mode 100644 lib/d3dcompiler_43.lib delete mode 100644 lib/libd3dcompiler_43.def delete mode 100644 lib32/d3dcompiler_43.lib delete mode 100644 lib32/libd3dcompiler_43.def delete mode 100644 src/d3d10/d3d10.def delete mode 100644 src/d3d10/d3d10_1.def delete mode 100644 src/d3d10/d3d10_interfaces.h delete mode 100644 src/d3d10/d3d10_main.cpp delete mode 100644 src/d3d10/d3d10_reflection.cpp delete mode 100644 src/d3d10/d3d10_reflection.h delete mode 100644 src/d3d10/d3d10_state_block.cpp delete mode 100644 src/d3d10/d3d10_state_block.h delete mode 100644 src/d3d10/version10.rc delete mode 100644 src/d3d10/version10_1.rc diff --git a/lib/d3dcompiler_43.lib b/lib/d3dcompiler_43.lib deleted file mode 100644 index 201bab8a3eb251eedbb3ef2e335f208a3408d751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4264 zcmcIn&2AG(5Uw~766cq&mjx|rb|bMXf#Y~Q&LXW=PA~$CkVJOiLZtD}Ot6s?TjR-< zy+s^&2A*IaA}7R=140})?qQF-0sGZVx2FfU?TiR5mAj{^y1(w~s_OEMKWlEI`B!o^ z6>V##ku!`;cI}TSKO;W#cd}wsO%l;HqNz=y>6b(^Z-{2of?lHs&CLmVfu8AeK=XAX zpFW@mE$j>Wh#s`~M9^FGprt&MWtAT7?v(ee;=Rh$eX^JkohsHvKwqxd zvCor^-e;&b9hc!&zjFO?nSSk#d;zM-X!1<&z-P#;s>&!$`7ECh7S_@9EVE zyd8)tZfTnn+e#()B6@(qEBPV%0xfN(TXxN>tz@O>2MpeW{u7Kz^aaYC3O&3WL1Vos z;7L8^7ASR^K>s76k=yd%L2uHPrArXK^A+$sAy});y-&0$q?T11h z>5veJ_rpYpZyq5LAP4Yh5DYtN;GMzNtIdgtFJIJ|m_oeQ1W5}Ni2U6*CC5K&fG2cv ztb<9^*D*s5^KbHxXuLXh;Qt0c394f7EzvsGD`R?5)?Dw`ANEPY_o7qmG1$A_i)_f% zrg)Jd`RpD4$Pdx87xB8^%RA0;*FOP&Xi*b8291m~H)2}E;J-i^WxWwGXbMC5G0ZWj zwgMGo4CW-CWBrr-5IyUCFDswL!YkOvd3&k37UoVOj$`|T^WD$DLJEq!=b9`K`(90X zttqa`L%i$2;(UPTSH6uJxY(K8(4X!GkT|n3TKMp40OOx8r$_t+XzWu!RG)PXWb8AJ zK;*Xqh-%Gn9*Cy?jK2bn|7rz@VL_sSjBVHTAvei^jlx!7jw*M~V;A`$w!VcO@CzE8 zTvLc@z~kO?eu&j?0~ckyz}8i28t~ZmH;34tBME;V7+t9Y&joQrrr`fKK$KOc1}?63 R%^^3-aeFyHQ%hJ4;{TOr&olr4 diff --git a/lib/libd3dcompiler_43.def b/lib/libd3dcompiler_43.def deleted file mode 100644 index 344fbe0df..000000000 --- a/lib/libd3dcompiler_43.def +++ /dev/null @@ -1,17 +0,0 @@ -; File generated automatically from d3dcompiler_43.spec; do not edit! - -LIBRARY d3dcompiler_43.dll - -EXPORTS - D3DAssemble @1 - D3DCompile @3 - D3DCreateBlob @5 - D3DDisassemble @8 - D3DGetBlobPart @9 - D3DGetDebugInfo @10 - D3DGetInputAndOutputSignatureBlob @11 - D3DGetInputSignatureBlob @12 - D3DGetOutputSignatureBlob @13 - D3DPreprocess @14 - D3DReflect @15 - D3DStripShader @17 diff --git a/lib32/d3dcompiler_43.lib b/lib32/d3dcompiler_43.lib deleted file mode 100644 index d5578505e11648550a9154a908bafca1a3d44c8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4490 zcmcIn&2HO95FW{mQ_H_eb7_MDYU?IW5ZDqW$~IsWbfTgWqS%Jy}G=Ncs)QrIvq^n8*tZmz?>y-*R?lcKO3z(`j4{4Xnksas}uQ13L`hUv!z42iR8ca%-5NT-kUMCApdm&mOT zi$u?th~7i?mWkd$HdcsUL+%6o7V=;84{Ok9wy*+PcNsErwlB?r0TpCNUTY_RDM_NUX6^u@Nc$z zJ<4o}?aYNu8c$UeZ`Z4)=IGCB*6-h?2zh3=)MlHj?RwpLBzlaSSK`6#HClVP*=;wi z=DH$G*w*N8$bYV44!uUXOBYvi)x@}Y@Ch92HOgM5(SM6v=XNvvp?B$k+DqmxQ~ z`Xp%iO>R8bGzkxAME2}ELSug`PjpUbij0ARJd8Thu>LMz+{UA02KLptq^W_MFG=o+ zQJFA`6m?sQqO=`Fmzbk7cZ!UnHtcefqNpJB936j&2e;=a;&HDkI;L6c@4+8?AWNKs z%5FFZ{{_Q1?~Tbp)pe8|*_?xNlX9>q^c=_khzGa73NKIN*>&*GIyzN#R5OV z{grpX$2$mf1~&gIX5}4&Spz4FS+Ghwuk2s0)o{3A^&MLxXcI@$wkWNEb=?Ig4$^{m z!l7suGbzQab`G=PJ=OJl^yxNY0!bsh6te<(aN`$3@W-6zA|{Y{Exc_muogdq9X~Jj n4E(3XnXrzjCH!y2ewWUo5tK - -#include "d3d10_include.h" -#include "d3d10_reflection.h" - -#include "../dxgi/dxgi_adapter.h" - -namespace dxvk { - Logger Logger::s_instance("d3d10.log"); -} - -extern "C" { - using namespace dxvk; - - HRESULT __stdcall D3D10CoreCreateDevice( - IDXGIFactory* pFactory, - IDXGIAdapter* pAdapter, - UINT Flags, - D3D_FEATURE_LEVEL FeatureLevel, - ID3D10Device** ppDevice); - - static HRESULT D3D10InternalCreateDeviceAndSwapChain( - IDXGIAdapter* pAdapter, - D3D10_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - D3D10_FEATURE_LEVEL1 HardwareLevel, - UINT SDKVersion, - DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, - IDXGISwapChain** ppSwapChain, - REFIID deviceIID, - void** ppDevice) { - InitReturnPtr(ppDevice); - InitReturnPtr(ppSwapChain); - - if (ppSwapChain && !pSwapChainDesc) - return E_INVALIDARG; - - HRESULT hr; - - // Get DXGI factory and adapter. This is mostly - // copied from the equivalent D3D11 functions. - Com dxgiFactory = nullptr; - Com dxgiAdapter = pAdapter; - Com device = nullptr; - - if (!pAdapter) { - if (DriverType != D3D10_DRIVER_TYPE_HARDWARE) - Logger::warn("D3D10CreateDevice: Unsupported driver type"); - - hr = CreateDXGIFactory(__uuidof(IDXGIFactory), reinterpret_cast(&dxgiFactory)); - - if (FAILED(hr)) { - Logger::err("D3D10CreateDevice: Failed to create a DXGI factory"); - return hr; - } - - hr = dxgiFactory->EnumAdapters(0, &dxgiAdapter); - - if (FAILED(hr)) { - Logger::err("D3D10CreateDevice: No default adapter available"); - return hr; - } - } else { - if (FAILED(dxgiAdapter->GetParent(__uuidof(IDXGIFactory), reinterpret_cast(&dxgiFactory)))) { - Logger::err("D3D10CreateDevice: Failed to query DXGI factory from DXGI adapter"); - return E_INVALIDARG; - } - - if (DriverType != D3D10_DRIVER_TYPE_HARDWARE || Software) - return E_INVALIDARG; - } - - hr = D3D10CoreCreateDevice( - dxgiFactory.ptr(), dxgiAdapter.ptr(), - Flags, D3D_FEATURE_LEVEL(HardwareLevel), - &device); - - if (FAILED(hr)) - return hr; - - if (ppSwapChain) { - DXGI_SWAP_CHAIN_DESC desc = *pSwapChainDesc; - hr = dxgiFactory->CreateSwapChain(device.ptr(), &desc, ppSwapChain); - - if (FAILED(hr)) { - Logger::err("D3D10CreateDevice: Failed to create swap chain"); - return hr; - } - } - - if (ppDevice) { - // Just assume that this succeeds - device->QueryInterface(deviceIID, ppDevice); - } - - if (!ppDevice && !ppSwapChain) - return S_FALSE; - - return S_OK; - } - - - DLLEXPORT HRESULT __stdcall D3D10CreateDevice( - IDXGIAdapter* pAdapter, - D3D10_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - UINT SDKVersion, - ID3D10Device** ppDevice) { - return D3D10InternalCreateDeviceAndSwapChain( - pAdapter, DriverType, Software, Flags, - D3D10_FEATURE_LEVEL_10_0, SDKVersion, - nullptr, nullptr, - __uuidof(ID3D10Device), - reinterpret_cast(ppDevice)); - } - - - DLLEXPORT HRESULT __stdcall D3D10CreateDevice1( - IDXGIAdapter* pAdapter, - D3D10_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - D3D10_FEATURE_LEVEL1 HardwareLevel, - UINT SDKVersion, - ID3D10Device1** ppDevice) { - return D3D10InternalCreateDeviceAndSwapChain( - pAdapter, DriverType, Software, Flags, - HardwareLevel, SDKVersion, - nullptr, nullptr, - __uuidof(ID3D10Device1), - reinterpret_cast(ppDevice)); - } - - - DLLEXPORT HRESULT __stdcall D3D10CreateDeviceAndSwapChain( - IDXGIAdapter* pAdapter, - D3D10_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - UINT SDKVersion, - DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, - IDXGISwapChain** ppSwapChain, - ID3D10Device** ppDevice) { - return D3D10InternalCreateDeviceAndSwapChain( - pAdapter, DriverType, Software, Flags, - D3D10_FEATURE_LEVEL_10_0, SDKVersion, - pSwapChainDesc, ppSwapChain, - __uuidof(ID3D10Device), - reinterpret_cast(ppDevice)); - } - - - DLLEXPORT HRESULT __stdcall D3D10CreateDeviceAndSwapChain1( - IDXGIAdapter* pAdapter, - D3D10_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - D3D10_FEATURE_LEVEL1 HardwareLevel, - UINT SDKVersion, - DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, - IDXGISwapChain** ppSwapChain, - ID3D10Device1** ppDevice) { - return D3D10InternalCreateDeviceAndSwapChain( - pAdapter, DriverType, Software, Flags, - HardwareLevel, SDKVersion, - pSwapChainDesc, ppSwapChain, - __uuidof(ID3D10Device1), - reinterpret_cast(ppDevice)); - } - - - const char* STDMETHODCALLTYPE D3D10GetVertexShaderProfile (ID3D10Device*) { return "vs_4_1"; } - const char* STDMETHODCALLTYPE D3D10GetGeometryShaderProfile (ID3D10Device*) { return "gs_4_1"; } - const char* STDMETHODCALLTYPE D3D10GetPixelShaderProfile (ID3D10Device*) { return "ps_4_1"; } - - - HRESULT STDMETHODCALLTYPE D3D10CreateBlob(SIZE_T size, LPD3D10BLOB* ppBuffer) { - return D3DCreateBlob(size, ppBuffer); - } - - - HRESULT STDMETHODCALLTYPE D3D10GetInputSignatureBlob( - const void* pShaderBytecode, - SIZE_T BytecodeLength, - ID3D10Blob** ppSignatureBlob) { - return D3DGetInputSignatureBlob( - pShaderBytecode, - BytecodeLength, - ppSignatureBlob); - } - - - HRESULT STDMETHODCALLTYPE D3D10GetOutputSignatureBlob( - const void* pShaderBytecode, - SIZE_T BytecodeLength, - ID3D10Blob** ppSignatureBlob) { - return D3DGetOutputSignatureBlob( - pShaderBytecode, - BytecodeLength, - ppSignatureBlob); - } - - - HRESULT STDMETHODCALLTYPE D3D10ReflectShader( - const void* pShaderBytecode, - SIZE_T BytecodeLength, - ID3D10ShaderReflection** ppReflector) { - static const GUID IID_ID3D11ShaderReflection = - {0x0a233719,0x3960,0x4578,{0x9d,0x7c,0x20,0x3b,0x8b,0x1d,0x9c,0xc1}}; - - InitReturnPtr(ppReflector); - - Com d3d11Reflector = nullptr; - - HRESULT hr = D3DReflect(pShaderBytecode, - BytecodeLength, IID_ID3D11ShaderReflection, - reinterpret_cast(&d3d11Reflector)); - - if (FAILED(hr)) { - Logger::err("D3D10ReflectShader: Failed to create ID3D11ShaderReflection"); - return hr; - } - - *ppReflector = ref(new D3D10ShaderReflection(d3d11Reflector.ptr())); - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10CompileShader( - LPCSTR pSrcData, - SIZE_T SrcDataSize, - LPCSTR pFileName, - const D3D10_SHADER_MACRO* pDefines, - LPD3D10INCLUDE pInclude, - LPCSTR pFunctionName, - LPCSTR pProfile, - UINT Flags, - ID3D10Blob** ppShader, - ID3D10Blob** ppErrorMsgs) { - return D3DCompile(pSrcData, SrcDataSize, pFileName, - pDefines, pInclude, pFunctionName, pProfile, Flags, - 0, ppShader, ppErrorMsgs); - } - - - HRESULT STDMETHODCALLTYPE D3D10CreateEffectFromMemory( - void* pData, - SIZE_T DataSize, - UINT EffectFlags, - ID3D10Device* pDevice, - ID3D10EffectPool* pEffectPool, - ID3D10Effect** ppEffect) { - Logger::warn("D3D10CreateEffectFromMemory: Not implemented"); - return E_NOTIMPL; - } - - - HRESULT STDMETHODCALLTYPE D3D10CreateEffectPoolFromMemory( - void* pData, - SIZE_T DataSize, - UINT EffectFlags, - ID3D10Device* pDevice, - ID3D10EffectPool** ppEffectPool) { - Logger::warn("D3D10CreateEffectPoolFromMemory: Not implemented"); - return E_NOTIMPL; - } - - - HRESULT STDMETHODCALLTYPE D3D10CompileEffectFromMemory( - void* pData, - SIZE_T DataLength, - LPCSTR pSrcFileName, - const D3D10_SHADER_MACRO* pDefines, - ID3D10Include* pInclude, - UINT ShaderFlags, - UINT EffectFlags, - ID3D10Blob** ppCompiledEffect, - ID3D10Blob** ppErrors) { - Logger::warn("D3D10CompileEffectFromMemory: Not implemented"); - return E_NOTIMPL; - } - - - HRESULT STDMETHODCALLTYPE D3D10DisassembleEffect( - ID3D10Effect* pEffect, - BOOL EnableColorCode, - ID3D10Blob** ppDisassembly) { - Logger::warn("D3D10DisassembleEffect: Not implemented"); - return E_NOTIMPL; - } - - - HRESULT STDMETHODCALLTYPE D3D10DisassembleShader( - const void* pShader, - SIZE_T BytecodeLength, - BOOL EnableColorCode, - LPCSTR pComments, - ID3D10Blob** ppDisassembly) { - return D3DDisassemble( - pShader, BytecodeLength, - 0, pComments, ppDisassembly); - } - - - HRESULT STDMETHODCALLTYPE D3D10PreprocessShader( - LPCSTR pSrcData, - SIZE_T SrcDataSize, - LPCSTR pFileName, - const D3D10_SHADER_MACRO* pDefines, - LPD3D10INCLUDE pInclude, - ID3D10Blob** ppShaderText, - ID3D10Blob** ppErrorMsgs) { - return D3DPreprocess( - pSrcData, SrcDataSize, - pFileName, pDefines, - pInclude, - ppShaderText, - ppErrorMsgs); - } - - - UINT64 STDMETHODCALLTYPE D3D10GetVersion() { - return 0xa000100041770ull; - } - - - HRESULT STDMETHODCALLTYPE D3D10RegisterLayers() { - return E_NOTIMPL; - } - -} - - diff --git a/src/d3d10/d3d10_reflection.cpp b/src/d3d10/d3d10_reflection.cpp deleted file mode 100644 index d49dea905..000000000 --- a/src/d3d10/d3d10_reflection.cpp +++ /dev/null @@ -1,326 +0,0 @@ -#include "d3d10_reflection.h" - -namespace dxvk { - - D3D10ShaderReflectionType::D3D10ShaderReflectionType( - ID3D11ShaderReflectionType* d3d11) - : m_d3d11(d3d11) { - - } - - - D3D10ShaderReflectionType::~D3D10ShaderReflectionType() { - - } - - - HRESULT STDMETHODCALLTYPE D3D10ShaderReflectionType::GetDesc( - D3D10_SHADER_TYPE_DESC* pDesc) { - D3D11_SHADER_TYPE_DESC d3d11Desc; - HRESULT hr = m_d3d11->GetDesc(&d3d11Desc); - - if (FAILED(hr)) - return hr; - - pDesc->Class = D3D10_SHADER_VARIABLE_CLASS(d3d11Desc.Class); - pDesc->Type = D3D10_SHADER_VARIABLE_TYPE (d3d11Desc.Type); - pDesc->Rows = d3d11Desc.Rows; - pDesc->Columns = d3d11Desc.Columns; - pDesc->Elements = d3d11Desc.Elements; - pDesc->Members = d3d11Desc.Members; - pDesc->Offset = d3d11Desc.Offset; - return S_OK; - } - - - ID3D10ShaderReflectionType* STDMETHODCALLTYPE D3D10ShaderReflectionType::GetMemberTypeByIndex( - UINT Index) { - return FindMemberType(m_d3d11->GetMemberTypeByIndex(Index)); - } - - - ID3D10ShaderReflectionType* STDMETHODCALLTYPE D3D10ShaderReflectionType::GetMemberTypeByName( - const char* Name) { - return FindMemberType(m_d3d11->GetMemberTypeByName(Name)); - } - - - const char* STDMETHODCALLTYPE D3D10ShaderReflectionType::GetMemberTypeName( - UINT Index) { - return m_d3d11->GetMemberTypeName(Index); - } - - - ID3D10ShaderReflectionType* D3D10ShaderReflectionType::FindMemberType( - ID3D11ShaderReflectionType* pMemberType) { - if (!pMemberType) - return nullptr; - - auto entry = m_members.find(pMemberType); - - if (entry == m_members.end()) { - entry = m_members.insert({ pMemberType, - std::make_unique(pMemberType) }).first; - } - - return entry->second.get(); - } - - - D3D10ShaderReflectionVariable::D3D10ShaderReflectionVariable(ID3D11ShaderReflectionVariable* d3d11) - : m_d3d11(d3d11), m_type(m_d3d11->GetType()) { - - } - - - D3D10ShaderReflectionVariable::~D3D10ShaderReflectionVariable() { - - } - - - HRESULT STDMETHODCALLTYPE D3D10ShaderReflectionVariable::GetDesc( - D3D10_SHADER_VARIABLE_DESC* pDesc) { - D3D11_SHADER_VARIABLE_DESC d3d11Desc; - HRESULT hr = m_d3d11->GetDesc(&d3d11Desc); - - if (FAILED(hr)) - return hr; - - pDesc->Name = d3d11Desc.Name; - pDesc->StartOffset = d3d11Desc.StartOffset; - pDesc->Size = d3d11Desc.Size; - pDesc->uFlags = d3d11Desc.uFlags; - pDesc->DefaultValue = d3d11Desc.DefaultValue; - return S_OK; - } - - - ID3D10ShaderReflectionType* STDMETHODCALLTYPE D3D10ShaderReflectionVariable::GetType() { - return &m_type; - } - - - D3D10ShaderReflectionConstantBuffer::D3D10ShaderReflectionConstantBuffer( - ID3D11ShaderReflectionConstantBuffer* d3d11) - : m_d3d11(d3d11) { - - } - - - D3D10ShaderReflectionConstantBuffer::~D3D10ShaderReflectionConstantBuffer() { - - } - - - HRESULT STDMETHODCALLTYPE D3D10ShaderReflectionConstantBuffer::GetDesc( - D3D10_SHADER_BUFFER_DESC* pDesc) { - D3D11_SHADER_BUFFER_DESC d3d11Desc; - HRESULT hr = m_d3d11->GetDesc(&d3d11Desc); - - if (FAILED(hr)) - return hr; - - pDesc->Name = d3d11Desc.Name; - pDesc->Type = D3D10_CBUFFER_TYPE(d3d11Desc.Type); - pDesc->Variables = d3d11Desc.Variables; - pDesc->Size = d3d11Desc.Size; - pDesc->uFlags = d3d11Desc.uFlags; - return S_OK; - } - - - ID3D10ShaderReflectionVariable* STDMETHODCALLTYPE D3D10ShaderReflectionConstantBuffer::GetVariableByIndex( - UINT Index) { - return FindVariable(m_d3d11->GetVariableByIndex(Index)); - } - - - ID3D10ShaderReflectionVariable* STDMETHODCALLTYPE D3D10ShaderReflectionConstantBuffer::GetVariableByName( - LPCSTR Name) { - return FindVariable(m_d3d11->GetVariableByName(Name)); - } - - - ID3D10ShaderReflectionVariable* D3D10ShaderReflectionConstantBuffer::FindVariable( - ID3D11ShaderReflectionVariable* pVariable) { - if (!pVariable) - return nullptr; - - auto entry = m_variables.find(pVariable); - - if (entry == m_variables.end()) { - entry = m_variables.emplace( - std::piecewise_construct, - std::forward_as_tuple(pVariable), - std::forward_as_tuple(pVariable)).first; - } - - return &entry->second; - } - - - D3D10ShaderReflection::D3D10ShaderReflection(ID3D11ShaderReflection* d3d11) - : m_d3d11(d3d11) { - - } - - - D3D10ShaderReflection::~D3D10ShaderReflection() { - - } - - - HRESULT STDMETHODCALLTYPE D3D10ShaderReflection::QueryInterface( - REFIID riid, - void** ppvObject) { - if (ppvObject == nullptr) - return E_POINTER; - - static const GUID IID_ID3D10ShaderReflection - = {0xd40e20b6,0xf8f7,0x42ad,{0xab,0x20,0x4b,0xaf,0x8f,0x15,0xdf,0xaa}}; - - if (riid == __uuidof(IUnknown) - || riid == IID_ID3D10ShaderReflection) { - *ppvObject = ref(this); - return S_OK; - } - - return E_NOINTERFACE; - } - - - HRESULT STDMETHODCALLTYPE D3D10ShaderReflection::GetDesc( - D3D10_SHADER_DESC* pDesc) { - D3D11_SHADER_DESC d3d11Desc; - HRESULT hr = m_d3d11->GetDesc(&d3d11Desc); - - if (FAILED(hr)) - return hr; - - pDesc->Version = d3d11Desc.Version; - pDesc->Creator = d3d11Desc.Creator; - pDesc->Flags = d3d11Desc.Flags; - pDesc->ConstantBuffers = d3d11Desc.ConstantBuffers; - pDesc->BoundResources = d3d11Desc.BoundResources; - pDesc->InputParameters = d3d11Desc.InputParameters; - pDesc->OutputParameters = d3d11Desc.OutputParameters; - pDesc->InstructionCount = d3d11Desc.InstructionCount; - pDesc->TempRegisterCount = d3d11Desc.TempRegisterCount; - pDesc->TempArrayCount = d3d11Desc.TempArrayCount; - pDesc->DefCount = d3d11Desc.DefCount; - pDesc->DclCount = d3d11Desc.DclCount; - pDesc->TextureNormalInstructions = d3d11Desc.TextureNormalInstructions; - pDesc->TextureLoadInstructions = d3d11Desc.TextureLoadInstructions; - pDesc->TextureCompInstructions = d3d11Desc.TextureCompInstructions; - pDesc->TextureBiasInstructions = d3d11Desc.TextureBiasInstructions; - pDesc->TextureGradientInstructions = d3d11Desc.TextureGradientInstructions; - pDesc->FloatInstructionCount = d3d11Desc.FloatInstructionCount; - pDesc->IntInstructionCount = d3d11Desc.IntInstructionCount; - pDesc->UintInstructionCount = d3d11Desc.UintInstructionCount; - pDesc->StaticFlowControlCount = d3d11Desc.StaticFlowControlCount; - pDesc->DynamicFlowControlCount = d3d11Desc.DynamicFlowControlCount; - pDesc->MacroInstructionCount = d3d11Desc.MacroInstructionCount; - pDesc->ArrayInstructionCount = d3d11Desc.ArrayInstructionCount; - pDesc->CutInstructionCount = d3d11Desc.CutInstructionCount; - pDesc->EmitInstructionCount = d3d11Desc.EmitInstructionCount; - pDesc->GSOutputTopology = D3D10_PRIMITIVE_TOPOLOGY(d3d11Desc.GSOutputTopology); - pDesc->GSMaxOutputVertexCount = d3d11Desc.GSMaxOutputVertexCount; - return S_OK; - } - - - ID3D10ShaderReflectionConstantBuffer* STDMETHODCALLTYPE - D3D10ShaderReflection::GetConstantBufferByIndex( - UINT Index) { - return FindConstantBuffer(m_d3d11->GetConstantBufferByIndex(Index)); - } - - - ID3D10ShaderReflectionConstantBuffer* STDMETHODCALLTYPE - D3D10ShaderReflection::GetConstantBufferByName( - LPCSTR Name) { - return FindConstantBuffer(m_d3d11->GetConstantBufferByName(Name)); - } - - - HRESULT STDMETHODCALLTYPE D3D10ShaderReflection::GetInputParameterDesc( - UINT ParameterIndex, - D3D10_SIGNATURE_PARAMETER_DESC* pDesc) { - D3D11_SIGNATURE_PARAMETER_DESC d3d11Desc; - HRESULT hr = m_d3d11->GetInputParameterDesc(ParameterIndex, &d3d11Desc); - - if (FAILED(hr)) - return hr; - - ConvertSignatureParameterDesc(&d3d11Desc, pDesc); - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10ShaderReflection::GetOutputParameterDesc( - UINT ParameterIndex, - D3D10_SIGNATURE_PARAMETER_DESC* pDesc) { - D3D11_SIGNATURE_PARAMETER_DESC d3d11Desc; - HRESULT hr = m_d3d11->GetOutputParameterDesc(ParameterIndex, &d3d11Desc); - - if (FAILED(hr)) - return hr; - - ConvertSignatureParameterDesc(&d3d11Desc, pDesc); - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10ShaderReflection::GetResourceBindingDesc( - UINT ResourceIndex, - D3D10_SHADER_INPUT_BIND_DESC* pDesc) { - D3D11_SHADER_INPUT_BIND_DESC d3d11Desc; - HRESULT hr = m_d3d11->GetResourceBindingDesc( - ResourceIndex, &d3d11Desc); - - if (FAILED(hr)) - return hr; - - pDesc->Name = d3d11Desc.Name; - pDesc->Type = D3D10_SHADER_INPUT_TYPE(d3d11Desc.Type); - pDesc->BindPoint = d3d11Desc.BindPoint; - pDesc->BindCount = d3d11Desc.BindCount; - pDesc->uFlags = d3d11Desc.uFlags; - pDesc->ReturnType = D3D10_RESOURCE_RETURN_TYPE(d3d11Desc.ReturnType); - pDesc->Dimension = D3D10_SRV_DIMENSION (d3d11Desc.Dimension); - pDesc->NumSamples = d3d11Desc.NumSamples; - return S_OK; - } - - - ID3D10ShaderReflectionConstantBuffer* D3D10ShaderReflection::FindConstantBuffer( - ID3D11ShaderReflectionConstantBuffer* pConstantBuffer) { - if (!pConstantBuffer) - return nullptr; - - auto entry = m_constantBuffers.find(pConstantBuffer); - - if (entry == m_constantBuffers.end()) { - entry = m_constantBuffers.emplace( - std::piecewise_construct, - std::forward_as_tuple(pConstantBuffer), - std::forward_as_tuple(pConstantBuffer)).first; - } - - return &entry->second; - } - - - void D3D10ShaderReflection::ConvertSignatureParameterDesc( - const D3D11_SIGNATURE_PARAMETER_DESC* pSrcDesc, - D3D10_SIGNATURE_PARAMETER_DESC* pDstDesc) { - pDstDesc->SemanticName = pSrcDesc->SemanticName; - pDstDesc->SemanticIndex = pSrcDesc->SemanticIndex; - pDstDesc->Register = pSrcDesc->Register; - pDstDesc->SystemValueType = D3D10_NAME(pSrcDesc->SystemValueType); - pDstDesc->ComponentType = D3D10_REGISTER_COMPONENT_TYPE(pSrcDesc->ComponentType); - pDstDesc->Mask = pSrcDesc->Mask; - pDstDesc->ReadWriteMask = pSrcDesc->ReadWriteMask; - } - -} \ No newline at end of file diff --git a/src/d3d10/d3d10_reflection.h b/src/d3d10/d3d10_reflection.h deleted file mode 100644 index 482b4f0f9..000000000 --- a/src/d3d10/d3d10_reflection.h +++ /dev/null @@ -1,163 +0,0 @@ -#pragma once - -#include -#include - -#include "d3d10_include.h" - -#include -#include - -namespace dxvk { - - class D3D10ShaderReflectionType final : public ID3D10ShaderReflectionType { - - public: - - D3D10ShaderReflectionType( - ID3D11ShaderReflectionType* d3d11); - - ~D3D10ShaderReflectionType(); - - HRESULT STDMETHODCALLTYPE GetDesc( - D3D10_SHADER_TYPE_DESC* pDesc); - - ID3D10ShaderReflectionType* STDMETHODCALLTYPE GetMemberTypeByIndex( - UINT Index); - - ID3D10ShaderReflectionType* STDMETHODCALLTYPE GetMemberTypeByName( - const char* Name); - - const char* STDMETHODCALLTYPE GetMemberTypeName( - UINT Index); - - ID3D11ShaderReflectionType* GetD3D11Iface() { - return m_d3d11; - } - - private: - - ID3D11ShaderReflectionType* m_d3d11; - - std::unordered_map< - ID3D11ShaderReflectionType*, - std::unique_ptr> m_members; - - ID3D10ShaderReflectionType* FindMemberType( - ID3D11ShaderReflectionType* pMemberType); - - }; - - - class D3D10ShaderReflectionVariable final : public ID3D10ShaderReflectionVariable { - - public: - - D3D10ShaderReflectionVariable( - ID3D11ShaderReflectionVariable* d3d11); - - ~D3D10ShaderReflectionVariable(); - - HRESULT STDMETHODCALLTYPE GetDesc( - D3D10_SHADER_VARIABLE_DESC* pDesc); - - ID3D10ShaderReflectionType* STDMETHODCALLTYPE GetType(); - - ID3D11ShaderReflectionVariable* STDMETHODCALLTYPE GetD3D11Iface() { - return m_d3d11; - } - - private: - - ID3D11ShaderReflectionVariable* m_d3d11; - D3D10ShaderReflectionType m_type; - - }; - - - class D3D10ShaderReflectionConstantBuffer final : public ID3D10ShaderReflectionConstantBuffer { - - public: - - D3D10ShaderReflectionConstantBuffer( - ID3D11ShaderReflectionConstantBuffer* d3d11); - - ~D3D10ShaderReflectionConstantBuffer(); - - HRESULT STDMETHODCALLTYPE GetDesc( - D3D10_SHADER_BUFFER_DESC* pDesc); - - ID3D10ShaderReflectionVariable* STDMETHODCALLTYPE GetVariableByIndex( - UINT Index); - - ID3D10ShaderReflectionVariable* STDMETHODCALLTYPE GetVariableByName( - LPCSTR Name); - - ID3D11ShaderReflectionConstantBuffer* STDMETHODCALLTYPE GetD3D11Iface() { - return m_d3d11; - } - - private: - - ID3D11ShaderReflectionConstantBuffer* m_d3d11; - - std::unordered_map< - ID3D11ShaderReflectionVariable*, - D3D10ShaderReflectionVariable> m_variables; - - ID3D10ShaderReflectionVariable* FindVariable( - ID3D11ShaderReflectionVariable* pVariable); - - }; - - - class D3D10ShaderReflection : public ComObject { - - public: - - D3D10ShaderReflection(ID3D11ShaderReflection* d3d11); - ~D3D10ShaderReflection(); - - HRESULT STDMETHODCALLTYPE QueryInterface( - REFIID riid, - void** ppvObject); - - HRESULT STDMETHODCALLTYPE GetDesc( - D3D10_SHADER_DESC* pDesc); - - ID3D10ShaderReflectionConstantBuffer* STDMETHODCALLTYPE GetConstantBufferByIndex( - UINT Index); - - ID3D10ShaderReflectionConstantBuffer* STDMETHODCALLTYPE GetConstantBufferByName( - LPCSTR Name); - - HRESULT STDMETHODCALLTYPE GetInputParameterDesc( - UINT ParameterIndex, - D3D10_SIGNATURE_PARAMETER_DESC* pDesc); - - HRESULT STDMETHODCALLTYPE GetOutputParameterDesc( - UINT ParameterIndex, - D3D10_SIGNATURE_PARAMETER_DESC* pDesc); - - HRESULT STDMETHODCALLTYPE GetResourceBindingDesc( - UINT ResourceIndex, - D3D10_SHADER_INPUT_BIND_DESC* pDesc); - - private: - - Com m_d3d11; - - std::unordered_map< - ID3D11ShaderReflectionConstantBuffer*, - D3D10ShaderReflectionConstantBuffer> m_constantBuffers; - - ID3D10ShaderReflectionConstantBuffer* FindConstantBuffer( - ID3D11ShaderReflectionConstantBuffer* pConstantBuffer); - - void ConvertSignatureParameterDesc( - const D3D11_SIGNATURE_PARAMETER_DESC* pSrcDesc, - D3D10_SIGNATURE_PARAMETER_DESC* pDstDesc); - - }; - -} \ No newline at end of file diff --git a/src/d3d10/d3d10_state_block.cpp b/src/d3d10/d3d10_state_block.cpp deleted file mode 100644 index af628eb46..000000000 --- a/src/d3d10/d3d10_state_block.cpp +++ /dev/null @@ -1,432 +0,0 @@ -#include "d3d10_state_block.h" - -#define MAKE_STATE_TYPE(field, count) { offsetof(D3D10_STATE_BLOCK_MASK, field), count } - -namespace dxvk { - - static const std::array, 24> g_stateTypes = {{ - MAKE_STATE_TYPE(SOBuffers, 1), - MAKE_STATE_TYPE(OMRenderTargets, 1), - MAKE_STATE_TYPE(OMDepthStencilState, 1), - MAKE_STATE_TYPE(OMBlendState, 1), - MAKE_STATE_TYPE(VS, 1), - MAKE_STATE_TYPE(VSSamplers, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT), - MAKE_STATE_TYPE(VSShaderResources, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT), - MAKE_STATE_TYPE(VSConstantBuffers, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT), - MAKE_STATE_TYPE(GS, 1), - MAKE_STATE_TYPE(GSSamplers, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT), - MAKE_STATE_TYPE(GSShaderResources, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT), - MAKE_STATE_TYPE(GSConstantBuffers, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT), - MAKE_STATE_TYPE(PS, 1), - MAKE_STATE_TYPE(PSSamplers, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT), - MAKE_STATE_TYPE(PSShaderResources, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT), - MAKE_STATE_TYPE(PSConstantBuffers, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT), - MAKE_STATE_TYPE(IAVertexBuffers, D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT), - MAKE_STATE_TYPE(IAIndexBuffer, 1), - MAKE_STATE_TYPE(IAInputLayout, 1), - MAKE_STATE_TYPE(IAPrimitiveTopology, 1), - MAKE_STATE_TYPE(RSViewports, 1), - MAKE_STATE_TYPE(RSScissorRects, 1), - MAKE_STATE_TYPE(RSRasterizerState, 1), - MAKE_STATE_TYPE(Predication, 1), - }}; - - - D3D10StateBlock::D3D10StateBlock( - ID3D10Device* pDevice, - const D3D10_STATE_BLOCK_MASK* pMask) - : m_device(pDevice), m_mask(*pMask) { - - } - - - D3D10StateBlock::~D3D10StateBlock() { - - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlock::QueryInterface( - REFIID riid, - void** ppvObject) { - if (ppvObject == nullptr) - return E_POINTER; - - *ppvObject = nullptr; - - if (riid == __uuidof(IUnknown) - || riid == __uuidof(ID3D10StateBlock)) { - *ppvObject = ref(this); - return S_OK; - } - - Logger::warn("D3D10StateBlock::QueryInterface: Unknown interface query"); - Logger::warn(str::format(riid)); - return E_NOINTERFACE; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlock::Capture() { - m_state = D3D10_STATE_BLOCK_STATE(); - - if (TestBit(&m_mask.VS, 0)) m_device->VSGetShader(&m_state.vs); - if (TestBit(&m_mask.GS, 0)) m_device->GSGetShader(&m_state.gs); - if (TestBit(&m_mask.PS, 0)) m_device->PSGetShader(&m_state.ps); - - for (uint32_t i = 0; i < D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT; i++) { - if (TestBit(m_mask.VSSamplers, i)) m_device->VSGetSamplers(i, 1, &m_state.vsSso[i]); - if (TestBit(m_mask.GSSamplers, i)) m_device->GSGetSamplers(i, 1, &m_state.gsSso[i]); - if (TestBit(m_mask.PSSamplers, i)) m_device->PSGetSamplers(i, 1, &m_state.psSso[i]); - } - - for (uint32_t i = 0; i < D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT; i++) { - if (TestBit(m_mask.VSShaderResources, i)) m_device->VSGetShaderResources(i, 1, &m_state.vsSrv[i]); - if (TestBit(m_mask.GSShaderResources, i)) m_device->GSGetShaderResources(i, 1, &m_state.gsSrv[i]); - if (TestBit(m_mask.PSShaderResources, i)) m_device->PSGetShaderResources(i, 1, &m_state.psSrv[i]); - } - - for (uint32_t i = 0; i < D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT; i++) { - if (TestBit(m_mask.VSConstantBuffers, i)) m_device->VSGetConstantBuffers(i, 1, &m_state.vsCbo[i]); - if (TestBit(m_mask.GSConstantBuffers, i)) m_device->GSGetConstantBuffers(i, 1, &m_state.gsCbo[i]); - if (TestBit(m_mask.PSConstantBuffers, i)) m_device->PSGetConstantBuffers(i, 1, &m_state.psCbo[i]); - } - - for (uint32_t i = 0; i < D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT; i++) { - if (TestBit(m_mask.IAVertexBuffers, i)) { - m_device->IAGetVertexBuffers(i, 1, - &m_state.iaVertexBuffers[i], - &m_state.iaVertexOffsets[i], - &m_state.iaVertexStrides[i]); - } - } - - if (TestBit(&m_mask.IAIndexBuffer, 0)) { - m_device->IAGetIndexBuffer( - &m_state.iaIndexBuffer, - &m_state.iaIndexFormat, - &m_state.iaIndexOffset); - } - - if (TestBit(&m_mask.IAInputLayout, 0)) - m_device->IAGetInputLayout(&m_state.iaInputLayout); - - if (TestBit(&m_mask.IAPrimitiveTopology, 0)) - m_device->IAGetPrimitiveTopology(&m_state.iaTopology); - - if (TestBit(&m_mask.OMRenderTargets, 0)) { - m_device->OMGetRenderTargets( - D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT, - &m_state.omRtv[0], &m_state.omDsv); - } - - if (TestBit(&m_mask.OMDepthStencilState, 0)) { - m_device->OMGetDepthStencilState( - &m_state.omDepthStencilState, - &m_state.omStencilRef); - } - - if (TestBit(&m_mask.OMBlendState, 0)) { - m_device->OMGetBlendState( - &m_state.omBlendState, - m_state.omBlendFactor, - &m_state.omSampleMask); - } - - if (TestBit(&m_mask.RSViewports, 0)) { - m_device->RSGetViewports(&m_state.rsViewportCount, nullptr); - m_device->RSGetViewports(&m_state.rsViewportCount, m_state.rsViewports); - } - - if (TestBit(&m_mask.RSScissorRects, 0)) { - m_device->RSGetScissorRects(&m_state.rsScissorCount, nullptr); - m_device->RSGetScissorRects(&m_state.rsScissorCount, m_state.rsScissors); - } - - if (TestBit(&m_mask.RSRasterizerState, 0)) - m_device->RSGetState(&m_state.rsState); - - if (TestBit(&m_mask.SOBuffers, 0)) { - m_device->SOGetTargets( - D3D10_SO_BUFFER_SLOT_COUNT, - &m_state.soBuffers[0], - &m_state.soOffsets[0]); - } - - if (TestBit(&m_mask.Predication, 0)) - m_device->GetPredication(&m_state.predicate, &m_state.predicateInvert); - - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlock::Apply() { - if (TestBit(&m_mask.VS, 0)) m_device->VSSetShader(m_state.vs.ptr()); - if (TestBit(&m_mask.GS, 0)) m_device->GSSetShader(m_state.gs.ptr()); - if (TestBit(&m_mask.PS, 0)) m_device->PSSetShader(m_state.ps.ptr()); - - for (uint32_t i = 0; i < D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT; i++) { - if (TestBit(m_mask.VSSamplers, i)) m_device->VSSetSamplers(i, 1, &m_state.vsSso[i]); - if (TestBit(m_mask.GSSamplers, i)) m_device->GSSetSamplers(i, 1, &m_state.gsSso[i]); - if (TestBit(m_mask.PSSamplers, i)) m_device->PSSetSamplers(i, 1, &m_state.psSso[i]); - } - - for (uint32_t i = 0; i < D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT; i++) { - if (TestBit(m_mask.VSShaderResources, i)) m_device->VSSetShaderResources(i, 1, &m_state.vsSrv[i]); - if (TestBit(m_mask.GSShaderResources, i)) m_device->GSSetShaderResources(i, 1, &m_state.gsSrv[i]); - if (TestBit(m_mask.PSShaderResources, i)) m_device->PSSetShaderResources(i, 1, &m_state.psSrv[i]); - } - - for (uint32_t i = 0; i < D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT; i++) { - if (TestBit(m_mask.VSConstantBuffers, i)) m_device->VSSetConstantBuffers(i, 1, &m_state.vsCbo[i]); - if (TestBit(m_mask.GSConstantBuffers, i)) m_device->GSSetConstantBuffers(i, 1, &m_state.gsCbo[i]); - if (TestBit(m_mask.PSConstantBuffers, i)) m_device->PSSetConstantBuffers(i, 1, &m_state.psCbo[i]); - } - - for (uint32_t i = 0; i < D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT; i++) { - if (TestBit(m_mask.IAVertexBuffers, i)) { - m_device->IASetVertexBuffers(i, 1, - &m_state.iaVertexBuffers[i], - &m_state.iaVertexOffsets[i], - &m_state.iaVertexStrides[i]); - } - } - - if (TestBit(&m_mask.IAIndexBuffer, 0)) { - m_device->IASetIndexBuffer( - m_state.iaIndexBuffer.ptr(), - m_state.iaIndexFormat, - m_state.iaIndexOffset); - } - - if (TestBit(&m_mask.IAInputLayout, 0)) - m_device->IASetInputLayout(m_state.iaInputLayout.ptr()); - - if (TestBit(&m_mask.IAPrimitiveTopology, 0)) - m_device->IASetPrimitiveTopology(m_state.iaTopology); - - if (TestBit(&m_mask.OMRenderTargets, 0)) { - m_device->OMSetRenderTargets( - D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT, - &m_state.omRtv[0], m_state.omDsv.ptr()); - } - - if (TestBit(&m_mask.OMDepthStencilState, 0)) { - m_device->OMSetDepthStencilState( - m_state.omDepthStencilState.ptr(), - m_state.omStencilRef); - } - - if (TestBit(&m_mask.OMBlendState, 0)) { - m_device->OMSetBlendState( - m_state.omBlendState.ptr(), - m_state.omBlendFactor, - m_state.omSampleMask); - } - - if (TestBit(&m_mask.RSViewports, 0)) - m_device->RSSetViewports(m_state.rsViewportCount, m_state.rsViewports); - - if (TestBit(&m_mask.RSScissorRects, 0)) - m_device->RSSetScissorRects(m_state.rsScissorCount, m_state.rsScissors); - - if (TestBit(&m_mask.RSRasterizerState, 0)) - m_device->RSSetState(m_state.rsState.ptr()); - - if (TestBit(&m_mask.SOBuffers, 0)) { - m_device->SOSetTargets( - D3D10_SO_BUFFER_SLOT_COUNT, - &m_state.soBuffers[0], - &m_state.soOffsets[0]); - } - - if (TestBit(&m_mask.Predication, 0)) - m_device->SetPredication(m_state.predicate.ptr(), m_state.predicateInvert); - - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlock::GetDevice( - ID3D10Device** ppDevice) { - Logger::err("D3D10StateBlock::GetDevice: Stub"); - return E_NOTIMPL; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlock::ReleaseAllDeviceObjects() { - // Not entirely sure if this is correct? - m_state = D3D10_STATE_BLOCK_STATE(); - return S_OK; - } - - - BOOL D3D10StateBlock::TestBit( - const BYTE* pMask, - UINT Idx) { - uint32_t byte = Idx / 8; - uint32_t bit = Idx % 8; - return (pMask[byte] & (1 << bit)) != 0; - } - -} - -extern "C" { - using namespace dxvk; - - HRESULT STDMETHODCALLTYPE D3D10CreateStateBlock( - ID3D10Device* pDevice, - D3D10_STATE_BLOCK_MASK* pStateBlockMask, - ID3D10StateBlock** ppStateBlock) { - InitReturnPtr(ppStateBlock); - - if (!pDevice || !pStateBlockMask || !ppStateBlock) - return E_INVALIDARG; - - *ppStateBlock = ref(new D3D10StateBlock(pDevice, pStateBlockMask)); - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlockMaskEnableCapture( - D3D10_STATE_BLOCK_MASK* pMask, - D3D10_DEVICE_STATE_TYPES StateType, - UINT StartIdx, - UINT Count) { - if (!pMask || !StateType || StateType > g_stateTypes.size()) - return E_INVALIDARG; - - auto pair = g_stateTypes[uint32_t(StateType) - 1]; - auto mask = reinterpret_cast(pMask) + pair.first; - - if (StartIdx + Count > pair.second) - return E_INVALIDARG; - - for (uint32_t i = StartIdx; i < StartIdx + Count; i++) { - uint32_t byte = i / 8; - uint32_t bit = i % 8; - mask[byte] |= 1 << bit; - } - - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlockMaskDisableCapture( - D3D10_STATE_BLOCK_MASK* pMask, - D3D10_DEVICE_STATE_TYPES StateType, - UINT StartIdx, - UINT Count) { - if (!pMask || !StateType || StateType > g_stateTypes.size()) - return E_INVALIDARG; - - auto pair = g_stateTypes[uint32_t(StateType) - 1]; - auto mask = reinterpret_cast(pMask) + pair.first; - - if (StartIdx + Count > pair.second) - return E_INVALIDARG; - - for (uint32_t i = StartIdx; i < StartIdx + Count; i++) { - uint32_t byte = i / 8; - uint32_t bit = i % 8; - mask[byte] &= ~(1 << bit); - } - - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlockMaskEnableAll( - D3D10_STATE_BLOCK_MASK* pMask) { - if (!pMask) - return E_INVALIDARG; - - *pMask = D3D10_STATE_BLOCK_MASK(); - for (size_t i = 0; i < g_stateTypes.size(); i++) { - D3D10StateBlockMaskEnableCapture(pMask, - D3D10_DEVICE_STATE_TYPES(i + 1), - 0, g_stateTypes[i].second); - } - - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlockMaskDisableAll( - D3D10_STATE_BLOCK_MASK* pMask) { - if (!pMask) - return E_INVALIDARG; - - *pMask = D3D10_STATE_BLOCK_MASK(); - return S_OK; - } - - - BOOL STDMETHODCALLTYPE D3D10StateBlockMaskGetSetting( - D3D10_STATE_BLOCK_MASK* pMask, - D3D10_DEVICE_STATE_TYPES StateType, - UINT Idx) { - if (!pMask || !StateType || StateType > g_stateTypes.size()) - return FALSE; - - auto pair = g_stateTypes[uint32_t(StateType) - 1]; - auto mask = reinterpret_cast(pMask) + pair.first; - - if (Idx >= pair.second) - return FALSE; - - uint32_t byte = Idx / 8; - uint32_t bit = Idx % 8; - return (mask[byte] & (1 << bit)) != 0; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlockMaskDifference( - D3D10_STATE_BLOCK_MASK* pA, - D3D10_STATE_BLOCK_MASK* pB, - D3D10_STATE_BLOCK_MASK* pResult) { - if (!pA || !pB || !pResult) - return E_INVALIDARG; - - auto a = reinterpret_cast(pA); - auto b = reinterpret_cast(pB); - auto r = reinterpret_cast(pResult); - - for (size_t i = 0; i < sizeof(D3D10_STATE_BLOCK_MASK); i++) - r[i] = a[i] ^ b[i]; - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlockMaskIntersect( - D3D10_STATE_BLOCK_MASK* pA, - D3D10_STATE_BLOCK_MASK* pB, - D3D10_STATE_BLOCK_MASK* pResult) { - if (!pA || !pB || !pResult) - return E_INVALIDARG; - - auto a = reinterpret_cast(pA); - auto b = reinterpret_cast(pB); - auto r = reinterpret_cast(pResult); - - for (size_t i = 0; i < sizeof(D3D10_STATE_BLOCK_MASK); i++) - r[i] = a[i] & b[i]; - return S_OK; - } - - - HRESULT STDMETHODCALLTYPE D3D10StateBlockMaskUnion( - D3D10_STATE_BLOCK_MASK* pA, - D3D10_STATE_BLOCK_MASK* pB, - D3D10_STATE_BLOCK_MASK* pResult) { - if (!pA || !pB || !pResult) - return E_INVALIDARG; - - auto a = reinterpret_cast(pA); - auto b = reinterpret_cast(pB); - auto r = reinterpret_cast(pResult); - - for (size_t i = 0; i < sizeof(D3D10_STATE_BLOCK_MASK); i++) - r[i] = a[i] | b[i]; - return S_OK; - } - -} diff --git a/src/d3d10/d3d10_state_block.h b/src/d3d10/d3d10_state_block.h deleted file mode 100644 index b899034d5..000000000 --- a/src/d3d10/d3d10_state_block.h +++ /dev/null @@ -1,82 +0,0 @@ -#pragma once - -#include "d3d10_include.h" -#include "d3d10_interfaces.h" - -namespace dxvk { - - struct D3D10_STATE_BLOCK_STATE { - Com vs = { }; - Com vsSso[D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT] = { }; - Com vsSrv[D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT] = { }; - Com vsCbo[D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT] = { }; - Com gs = { }; - Com gsSso[D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT] = { }; - Com gsSrv[D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT] = { }; - Com gsCbo[D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT] = { }; - Com ps = { }; - Com psSso[D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT] = { }; - Com psSrv[D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT] = { }; - Com psCbo[D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT] = { }; - Com iaVertexBuffers[D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT] = { }; - UINT iaVertexOffsets[D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT] = { }; - UINT iaVertexStrides[D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT] = { }; - Com iaIndexBuffer = { }; - DXGI_FORMAT iaIndexFormat = DXGI_FORMAT_UNKNOWN; - UINT iaIndexOffset = 0; - Com iaInputLayout = nullptr; - D3D10_PRIMITIVE_TOPOLOGY iaTopology = D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED; - Com omRtv[D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT] = { }; - Com omDsv = { }; - Com omDepthStencilState = { }; - UINT omStencilRef = 0; - Com omBlendState = { }; - FLOAT omBlendFactor[4] = { }; - UINT omSampleMask = 0; - UINT rsViewportCount = 0; - D3D10_VIEWPORT rsViewports[D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE] = { }; - UINT rsScissorCount = 0; - RECT rsScissors [D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE] = { }; - Com rsState = { }; - Com soBuffers[D3D10_SO_BUFFER_SLOT_COUNT] = { }; - UINT soOffsets[D3D10_SO_BUFFER_SLOT_COUNT] = { }; - Com predicate = { }; - BOOL predicateInvert = FALSE; - }; - - - class D3D10StateBlock : public ComObject { - - public: - D3D10StateBlock( - ID3D10Device* pDevice, - const D3D10_STATE_BLOCK_MASK* pMask); - - ~D3D10StateBlock(); - - HRESULT STDMETHODCALLTYPE QueryInterface( - REFIID riid, - void** ppvObject); - - HRESULT STDMETHODCALLTYPE Capture(); - - HRESULT STDMETHODCALLTYPE Apply(); - - HRESULT STDMETHODCALLTYPE GetDevice( - ID3D10Device** ppDevice); - - HRESULT STDMETHODCALLTYPE ReleaseAllDeviceObjects(); - - private: - - Com m_device; - D3D10_STATE_BLOCK_MASK m_mask; - D3D10_STATE_BLOCK_STATE m_state; - - static BOOL TestBit( - const BYTE* pMask, - UINT Idx); - - }; - -} diff --git a/src/d3d10/meson.build b/src/d3d10/meson.build index 0a78fcc37..20324939d 100644 --- a/src/d3d10/meson.build +++ b/src/d3d10/meson.build @@ -1,17 +1,9 @@ -d3d10_res = wrc_generator.process('version10.rc') -d3d10_1_res = wrc_generator.process('version10_1.rc') d3d10_core_res = wrc_generator.process('version10_core.rc') d3d10_core_src = [ 'd3d10_core.cpp', ] -d3d10_main_src = [ - 'd3d10_main.cpp', - 'd3d10_reflection.cpp', - 'd3d10_state_block.cpp', -] - d3d10_core_dll = shared_library('d3d10core'+dll_ext, d3d10_core_src, d3d10_core_res, name_prefix : '', dependencies : [ d3d11_dep ], @@ -23,26 +15,3 @@ d3d10_core_dll = shared_library('d3d10core'+dll_ext, d3d10_core_src, d3d10_core_ d3d10_core_dep = declare_dependency( link_with : [ d3d10_core_dll ], ) - -d3d10_deps = [ lib_d3dcompiler_43, lib_dxgi, dxbc_dep, dxvk_dep, d3d10_core_dep ] - -d3d10_dll = shared_library('d3d10'+dll_ext, d3d10_main_src, d3d10_res, - name_prefix : '', - dependencies : [ d3d10_deps ], - include_directories : dxvk_include_path, - install : true, - vs_module_defs : 'd3d10'+def_spec_ext, -) - -d3d10_1_dll = shared_library('d3d10_1'+dll_ext, d3d10_main_src, d3d10_1_res, - name_prefix : '', - dependencies : [ d3d10_deps ], - include_directories : dxvk_include_path, - install : true, - vs_module_defs : 'd3d10_1'+def_spec_ext, -) - -d3d10_dep = declare_dependency( - link_with : [ d3d10_dll, d3d10_1_dll, d3d10_core_dll ], - include_directories : [ dxvk_include_path ], -) diff --git a/src/d3d10/version10.rc b/src/d3d10/version10.rc deleted file mode 100644 index 43d7a62fd..000000000 --- a/src/d3d10/version10.rc +++ /dev/null @@ -1,32 +0,0 @@ -#include - -// DLL version information. -VS_VERSION_INFO VERSIONINFO -FILEVERSION 10,0,17763,1 -PRODUCTVERSION 10,0,17763,1 -FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -FILEFLAGS 0 -FILEOS VOS_NT_WINDOWS32 -FILETYPE VFT_DLL -FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "080904b0" - BEGIN - VALUE "CompanyName", "DXVK" - VALUE "FileDescription", "Direct3D 10 Runtime" - VALUE "FileVersion", "10.0.17763.1 (WinBuild.160101.0800)" - VALUE "InternalName", "D3D10.dll" - VALUE "LegalCopyright", "zlib/libpng license" - VALUE "OriginalFilename", "D3D10.dll" - VALUE "ProductName", "DXVK" - VALUE "ProductVersion", "10.0.17763.1" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0809, 1200 - END -END - diff --git a/src/d3d10/version10_1.rc b/src/d3d10/version10_1.rc deleted file mode 100644 index 92550d322..000000000 --- a/src/d3d10/version10_1.rc +++ /dev/null @@ -1,32 +0,0 @@ -#include - -// DLL version information. -VS_VERSION_INFO VERSIONINFO -FILEVERSION 10,0,17763,1 -PRODUCTVERSION 10,0,17763,1 -FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -FILEFLAGS 0 -FILEOS VOS_NT_WINDOWS32 -FILETYPE VFT_DLL -FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "080904b0" - BEGIN - VALUE "CompanyName", "DXVK" - VALUE "FileDescription", "Direct3D 10.1 Runtime" - VALUE "FileVersion", "10.0.17763.1 (WinBuild.160101.0800)" - VALUE "InternalName", "D3D10_1.dll" - VALUE "LegalCopyright", "zlib/libpng license" - VALUE "OriginalFilename", "D3D10_1.dll" - VALUE "ProductName", "DXVK" - VALUE "ProductVersion", "10.0.17763.1" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0809, 1200 - END -END -