1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

[d3d11] Improved debug output of D3D11DeviceContext methods

This commit is contained in:
Philip Rebohle 2018-04-14 11:45:31 +02:00
parent 8dfe7088fd
commit a6767ebd52
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 40 additions and 20 deletions

View File

@ -229,7 +229,10 @@ namespace dxvk {
pData = nullptr; pData = nullptr;
if (pData != nullptr && pAsync->GetDataSize() != DataSize) { if (pData != nullptr && pAsync->GetDataSize() != DataSize) {
Logger::err(str::format("D3D11DeviceContext: GetData: Data size mismatch: ", pAsync->GetDataSize(), ",", DataSize)); Logger::err(str::format(
"D3D11: GetData: Data size mismatch",
"\n Expected: ", pAsync->GetDataSize(),
"\n Got: ", DataSize));
return E_INVALIDARG; return E_INVALIDARG;
} }
@ -245,7 +248,7 @@ namespace dxvk {
return static_cast<D3D11Query*>(query.ptr())->GetData(pData, GetDataFlags); return static_cast<D3D11Query*>(query.ptr())->GetData(pData, GetDataFlags);
// The interface is not supported // The interface is not supported
Logger::err("D3D11DeviceContext: GetData: Unsupported Async type"); Logger::err("D3D11: GetData: Unsupported Async type");
return E_INVALIDARG; return E_INVALIDARG;
} }
@ -290,7 +293,10 @@ namespace dxvk {
pSrcResource->GetType(&srcResourceDim); pSrcResource->GetType(&srcResourceDim);
if (dstResourceDim != srcResourceDim) { if (dstResourceDim != srcResourceDim) {
Logger::err("D3D11DeviceContext: CopySubresourceRegion: Mismatched resource types"); Logger::err(str::format(
"D3D11: CopySubresourceRegion: Incompatible resources",
"\n Dst resource type: ", dstResourceDim,
"\n Src resource type: ", srcResourceDim));
return; return;
} }
@ -408,7 +414,10 @@ namespace dxvk {
pSrcResource->GetType(&srcResourceDim); pSrcResource->GetType(&srcResourceDim);
if (dstResourceDim != srcResourceDim) { if (dstResourceDim != srcResourceDim) {
Logger::err("D3D11DeviceContext: CopyResource: Mismatched resource types"); Logger::err(str::format(
"D3D11: CopyResource: Incompatible resources",
"\n Dst resource type: ", dstResourceDim,
"\n Src resource type: ", srcResourceDim));
return; return;
} }
@ -417,7 +426,10 @@ namespace dxvk {
auto srcBuffer = static_cast<D3D11Buffer*>(pSrcResource)->GetBufferSlice(); auto srcBuffer = static_cast<D3D11Buffer*>(pSrcResource)->GetBufferSlice();
if (dstBuffer.length() != srcBuffer.length()) { if (dstBuffer.length() != srcBuffer.length()) {
Logger::err("D3D11DeviceContext: CopyResource: Mismatched buffer size"); Logger::err(str::format(
"D3D11: CopyResource: Mismatched buffer size",
"\n Dst buffer size: ", dstBuffer.length(),
"\n Src buffer size: ", srcBuffer.length()));
return; return;
} }
@ -541,7 +553,7 @@ namespace dxvk {
// FIXME support packed formats // FIXME support packed formats
if (uavFormat != rawFormat && rawFormat == VK_FORMAT_UNDEFINED) { if (uavFormat != rawFormat && rawFormat == VK_FORMAT_UNDEFINED) {
Logger::err(str::format("D3D11: No raw format found for ", uavFormat)); Logger::err(str::format("D3D11: ClearUnorderedAccessViewUint: No raw format found for ", uavFormat));
return; return;
} }
@ -724,9 +736,8 @@ namespace dxvk {
cDstImageView->subresources()); cDstImageView->subresources());
}); });
} else { } else {
Logger::err("D3D11DeviceContext: GenerateMips called on a buffer"); Logger::err("D3D11: GenerateMips called on a buffer");
} }
} }
@ -754,7 +765,12 @@ namespace dxvk {
} }
if (offset + size > bufferSlice.length()) { if (offset + size > bufferSlice.length()) {
Logger::err("D3D11DeviceContext: Buffer update range out of bounds"); Logger::err(str::format(
"D3D11: UpdateSubresource: Buffer update range out of bounds",
"\n Dst slice offset: ", bufferSlice.offset(),
"\n Dst slice length: ", bufferSlice.length(),
"\n Src slice offset: ", offset,
"\n Src slice length: ", size));
return; return;
} }
@ -885,7 +901,10 @@ namespace dxvk {
if (dstResourceType != D3D11_RESOURCE_DIMENSION_TEXTURE2D if (dstResourceType != D3D11_RESOURCE_DIMENSION_TEXTURE2D
|| srcResourceType != D3D11_RESOURCE_DIMENSION_TEXTURE2D) { || srcResourceType != D3D11_RESOURCE_DIMENSION_TEXTURE2D) {
Logger::err("D3D11: ResolveSubresource: Incompatible resources"); Logger::err(str::format(
"D3D11: ResolveSubresource: Incompatible resources",
"\n Dst resource type: ", dstResourceType,
"\n Src resource type: ", srcResourceType));
return; return;
} }
@ -899,7 +918,10 @@ namespace dxvk {
srcTexture->GetDesc(&srcDesc); srcTexture->GetDesc(&srcDesc);
if (dstDesc.SampleDesc.Count != 1) { if (dstDesc.SampleDesc.Count != 1) {
Logger::err("D3D11: ResolveSubresource: Resource sample count invalid"); Logger::err(str::format(
"D3D11: ResolveSubresource: Invalid sample counts",
"\n Dst sample count: ", dstDesc.SampleDesc.Count,
"\n Src sample count: ", srcDesc.SampleDesc.Count));
return; return;
} }
@ -1187,7 +1209,7 @@ namespace dxvk {
auto shader = static_cast<D3D11VertexShader*>(pVertexShader); auto shader = static_cast<D3D11VertexShader*>(pVertexShader);
if (NumClassInstances != 0) if (NumClassInstances != 0)
Logger::err("D3D11DeviceContext::VSSetShader: Class instances not supported"); Logger::err("D3D11: Class instances not supported");
if (m_state.vs.shader != shader) { if (m_state.vs.shader != shader) {
m_state.vs.shader = shader; m_state.vs.shader = shader;
@ -1313,7 +1335,7 @@ namespace dxvk {
auto shader = static_cast<D3D11HullShader*>(pHullShader); auto shader = static_cast<D3D11HullShader*>(pHullShader);
if (NumClassInstances != 0) if (NumClassInstances != 0)
Logger::err("D3D11DeviceContext::HSSetShader: Class instances not supported"); Logger::err("D3D11: Class instances not supported");
if (m_state.hs.shader != shader) { if (m_state.hs.shader != shader) {
m_state.hs.shader = shader; m_state.hs.shader = shader;
@ -1439,7 +1461,7 @@ namespace dxvk {
auto shader = static_cast<D3D11DomainShader*>(pDomainShader); auto shader = static_cast<D3D11DomainShader*>(pDomainShader);
if (NumClassInstances != 0) if (NumClassInstances != 0)
Logger::err("D3D11DeviceContext::DSSetShader: Class instances not supported"); Logger::err("D3D11: Class instances not supported");
if (m_state.ds.shader != shader) { if (m_state.ds.shader != shader) {
m_state.ds.shader = shader; m_state.ds.shader = shader;
@ -1565,7 +1587,7 @@ namespace dxvk {
auto shader = static_cast<D3D11GeometryShader*>(pShader); auto shader = static_cast<D3D11GeometryShader*>(pShader);
if (NumClassInstances != 0) if (NumClassInstances != 0)
Logger::err("D3D11DeviceContext::GSSetShader: Class instances not supported"); Logger::err("D3D11: Class instances not supported");
if (m_state.gs.shader != shader) { if (m_state.gs.shader != shader) {
m_state.gs.shader = shader; m_state.gs.shader = shader;
@ -1691,7 +1713,7 @@ namespace dxvk {
auto shader = static_cast<D3D11PixelShader*>(pPixelShader); auto shader = static_cast<D3D11PixelShader*>(pPixelShader);
if (NumClassInstances != 0) if (NumClassInstances != 0)
Logger::err("D3D11DeviceContext::PSSetShader: Class instances not supported"); Logger::err("D3D11: Class instances not supported");
if (m_state.ps.shader != shader) { if (m_state.ps.shader != shader) {
m_state.ps.shader = shader; m_state.ps.shader = shader;
@ -1817,7 +1839,7 @@ namespace dxvk {
auto shader = static_cast<D3D11ComputeShader*>(pComputeShader); auto shader = static_cast<D3D11ComputeShader*>(pComputeShader);
if (NumClassInstances != 0) if (NumClassInstances != 0)
Logger::err("D3D11DeviceContext::CSSetShader: Class instances not supported"); Logger::err("D3D11: Class instances not supported");
if (m_state.cs.shader != shader) { if (m_state.cs.shader != shader) {
m_state.cs.shader = shader; m_state.cs.shader = shader;

View File

@ -115,10 +115,8 @@ namespace dxvk {
D3D11_MAP MapType, D3D11_MAP MapType,
UINT MapFlags, UINT MapFlags,
D3D11_MAPPED_SUBRESOURCE* pMappedResource) { D3D11_MAPPED_SUBRESOURCE* pMappedResource) {
if (pResource == nullptr) { if (pResource == nullptr)
Logger::warn("D3D11ImmediateContext::Map() application tried to map a nullptr resource");
return DXGI_ERROR_INVALID_CALL; return DXGI_ERROR_INVALID_CALL;
}
if (pMappedResource != nullptr) { if (pMappedResource != nullptr) {
pMappedResource->pData = nullptr; pMappedResource->pData = nullptr;