From 08a916487dd1acac5e439eb3c0bb0cbb394c8ed5 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Mon, 29 Jan 2018 11:53:57 +0100 Subject: [PATCH] [d3d11] Implemented CreateHullShader and CreateDomainShader --- src/d3d11/d3d11_device.cpp | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index f126f95a..16c39462 100644 --- a/src/d3d11/d3d11_device.cpp +++ b/src/d3d11/d3d11_device.cpp @@ -879,8 +879,18 @@ namespace dxvk { SIZE_T BytecodeLength, ID3D11ClassLinkage* pClassLinkage, ID3D11HullShader** ppHullShader) { - Logger::err("D3D11Device::CreateHullShader: Not implemented"); - return E_NOTIMPL; + D3D11ShaderModule module; + + if (FAILED(this->CreateShaderModule(&module, + pShaderBytecode, BytecodeLength, pClassLinkage))) + return E_INVALIDARG; + + if (ppHullShader != nullptr) { + *ppHullShader = ref(new D3D11HullShader( + this, std::move(module))); + } + + return S_OK; } @@ -889,8 +899,18 @@ namespace dxvk { SIZE_T BytecodeLength, ID3D11ClassLinkage* pClassLinkage, ID3D11DomainShader** ppDomainShader) { - Logger::err("D3D11Device::CreateDomainShader: Not implemented"); - return E_NOTIMPL; + D3D11ShaderModule module; + + if (FAILED(this->CreateShaderModule(&module, + pShaderBytecode, BytecodeLength, pClassLinkage))) + return E_INVALIDARG; + + if (ppDomainShader != nullptr) { + *ppDomainShader = ref(new D3D11DomainShader( + this, std::move(module))); + } + + return S_OK; }