Followers 0

# DX11 DX11 - Shader Reflection - Interface not supported

## 4 posts in this topic

Hi guys.

So I'm having a slight problem here, I've just started on the shader reflection as it might prove useful for me, but some obstacles came along the way, some were fixed, but not this one.

How I'm attempting it:

// Compile e.g. the Vertex Shader
D3DX11CompileFromFile(...)

// Set up the shader reflection
HRESULT hr =

if (FAILED(hr)) // I didn't directly just check the returned HR, because it's used later...
{
std::string error = std::string((std::string)"Shader Reflection Failed, Error:\n" + _com_error(hr).ErrorMessage()).c_str(); // Yeah, this is a bit ugly, but it works.
}

pReflector->GetDesc( &desc );


So what happens is that the HR fails, with the following error message: (Please keep in mind that the message was in another language, so this is just a rough translation):

This interface is not supported


So my questions are:

• What have I done wrong?
• (Bonus) Is there any way of setting the error messages to english?

I've stumbled across several threads, like this one:

http://xboxforums.create.msdn.com/forums/t/63358.aspx

But unfortunately I didn't get it to work.

-MIGI0027

0

2

##### Share on other sites

D3DX11CompileFromFile() is deprecated. Shader compilation functions are now part of D3D, not D3DX.

You should use D3DCompileFromFile() to compile you shaders, that should solve your issues.

Edited by N.I.B.
1

##### Share on other sites

Yes I'm using VS 2012 (v11), so that's most likely the issue, I'm going to try and copy the IID from the Dx headers. And I'll also adapt to the D3DCompileFromFile.

I'll post the results here as soon as I can.

Thank you.

-MIGI0027

0

##### Share on other sites

Ok, thanks guys, It seems like the problem has been fixed (For now!  )

Actually, this was partly my fault as well, it seems like I was linking against DX11Effects.lib, which had a different definition for D3DReflect, which only accepted the GUI for the effects, so removing this link fixed the issue (I'm not really sure why it was linked, as I never used it...)

Anyways, thanks for you help!

-MIGI0027

0

## Create an account

Register a new account

Followers 0

• ### Similar Content

• Hi Guys,
I am revisiting an old DX11 framework I was creating a while back and am scratching my head with a small issue.
I am trying to set the pixel shader resources and am getting the following error on every loop.
As you can see in the below code, I am clearing out the shader resources as per the documentation. (Even going overboard and doing it both sides of the main PSSet call). But I just can't get rid of the error. Which results in the render target not being drawn.
ID3D11ShaderResourceView* srv = { 0 }; d3dContext->PSSetShaderResources(0, 1, &srv); for (std::vector<RenderTarget>::iterator it = rtVector.begin(); it != rtVector.end(); ++it) { if (it->szName == name) { //std::cout << it->srv <<"\r\n"; d3dContext->PSSetShaderResources(0, 1, &it->srv); break; } } d3dContext->PSSetShaderResources(0, 1, &srv);
I am storing the RT's in a vector and setting them by name. I have tested the it->srv and am retrieving a valid pointer.
At this stage I am out of ideas.
Any help would be greatly appreciated

• hi, guys, how to understand the math used in CDXUTDirectionWidget ::UpdateLightDir
the  following code snippet is taken from MS DXTU source code

D3DXMATRIX mInvView;
D3DXMatrixInverse( &mInvView, NULL, &m_mView );
mInvView._41 = mInvView._42 = mInvView._43 = 0;
D3DXMATRIX mLastRotInv;
D3DXMatrixInverse( &mLastRotInv, NULL, &m_mRotSnapshot );
D3DXMATRIX mRot = *m_ArcBall.GetRotationMatrix();
m_mRotSnapshot = mRot;
// Accumulate the delta of the arcball's rotation in view space.
// Note that per-frame delta rotations could be problematic over long periods of time.
m_mRot *= m_mView * mLastRotInv * mRot * mInvView;
// Since we're accumulating delta rotations, we need to orthonormalize
// the matrix to prevent eventual matrix skew
D3DXVECTOR3* pXBasis = ( D3DXVECTOR3* )&m_mRot._11;
D3DXVECTOR3* pYBasis = ( D3DXVECTOR3* )&m_mRot._21;
D3DXVECTOR3* pZBasis = ( D3DXVECTOR3* )&m_mRot._31;
D3DXVec3Normalize( pXBasis, pXBasis );
D3DXVec3Cross( pYBasis, pZBasis, pXBasis );
D3DXVec3Normalize( pYBasis, pYBasis );
D3DXVec3Cross( pZBasis, pXBasis, pYBasis );

https://github.com/Microsoft/DXUT/blob/master/Optional/DXUTcamera.cpp
• By YixunLiu
Hi,
I have a surface mesh and I want to use a cone to cut a hole on the surface mesh.
Anybody know a fast method to calculate the intersected boundary of these two geometries?

Thanks.

YL

• By hiya83
Hi, I tried searching for this but either I failed or couldn't find anything. I know there's D11/D12 interop and there are extensions for GL/D11 (though not very efficient). I was wondering if there's any Vulkan/D11 or Vulkan/D12 interop?
Thanks!

• Hi Guys,
I am just wondering if it is possible to acquire the address of the backbuffer if an API (based on DX11) only exposes the 'device' and 'context' pointers?
Any advice would be greatly appreciated

• 19
• 12
• 23
• 11
• 28