dx11 debugresult interpreter method (plugged into where we are finding issues with the material::mul switch on stateblocks

This commit is contained in:
AzaezelX 2019-07-22 08:39:51 -05:00
parent 836c4d34cd
commit 36722c0e22
5 changed files with 78 additions and 4 deletions

View file

@ -1764,3 +1764,76 @@ void GFXD3D11Device::setDebugMarker(ColorI color, const char *name)
D3DPERF_SetMarker(D3DCOLOR_ARGB(color.alpha, color.red, color.green, color.blue),
(LPCWSTR)&eventName);
}
const char* GFXD3D11Device::interpretDebugResult(long result)
{
const char* error;
switch (result) {
case S_OK:
error = "S_OK";
break;
case S_FALSE:
error = "S_FALSE";
break;
//generics
case E_UNEXPECTED:
error = "E_UNEXPECTED";
break;
case E_NOTIMPL:
error = "E_NOTIMPL";
break;
case E_OUTOFMEMORY:
error = "E_OUTOFMEMORY";
break;
case E_INVALIDARG:
error = "E_INVALIDARG";
break;
case E_NOINTERFACE:
error = "E_NOINTERFACE";
break;
case E_POINTER:
error = "E_POINTER";
break;
case E_HANDLE:
error = "E_HANDLE";
break;
case E_ABORT:
error = "E_ABORT";
break;
case E_FAIL:
error = "E_FAIL";
break;
case E_ACCESSDENIED:
error = "E_ACCESSDENIED";
break;
//graphics specific
case DXGI_ERROR_INVALID_CALL:
error = "DXGI_ERROR_INVALID_CALL";
break;
case DXGI_ERROR_WAS_STILL_DRAWING:
error = "DXGI_ERROR_WAS_STILL_DRAWING";
break;
//dx11 specific
case D3D11_ERROR_FILE_NOT_FOUND:
error = "D3D11_ERROR_FILE_NOT_FOUND";
break;
case D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS:
error = "D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS";
break;
case D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS:
error = "D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS";
break;
case D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD:
error = "D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD";
break;
default:
error = "UNKNOWN";
break;
}
return error;
}

View file

@ -255,7 +255,7 @@ public:
virtual void setClipRect( const RectI &rect );
virtual const RectI& getClipRect() const { return mClipRect; }
// }
// }
@ -325,6 +325,7 @@ public:
// grab the sampler map
const SamplerMap &getSamplersMap() const { return mSamplersMap; }
SamplerMap &getSamplersMap(){ return mSamplersMap; }
const char* interpretDebugResult(long result);
};
#endif

View file

@ -77,7 +77,7 @@ GFXD3D11StateBlock::GFXD3D11StateBlock(const GFXStateBlockDesc& desc)
if (FAILED(hr))
{
AssertFatal(false, "GFXD3D11StateBlock::GFXD3D11StateBlock - CreateBlendState call failure.");
AssertFatal(false, avar("GFXD3D11StateBlock::GFXD3D11StateBlock - CreateBlendState call failure: %s.", GFX->interpretDebugResult(hr)));
}
ZeroMemory(&mDepthStencilDesc, sizeof(D3D11_DEPTH_STENCIL_DESC));

View file

@ -428,7 +428,7 @@ public:
virtual void enterDebugEvent(ColorI color, const char *name) = 0;
virtual void leaveDebugEvent() = 0;
virtual void setDebugMarker(ColorI color, const char *name) = 0;
virtual const char* interpretDebugResult(long result) { return "Not Implemented"; };
/// @}
/// @name Resource debug methods

View file

@ -160,7 +160,7 @@ public:
const U32 getNumVertexStreams() const { return mNumVertexStream; }
bool glUseMap() const { return mUseGlMap; }
const char* interpretDebugResult(long result) { return "Not Implemented"; };
protected:
/// Called by GFXDevice to create a device specific stateblock
virtual GFXStateBlockRef createStateBlockInternal(const GFXStateBlockDesc& desc);