# DrawIndexedInstanced on feature_level_9_3?

This topic is 2036 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Now apparently DrawIndexedInstanced is supported on feature level 9_3 / vs_4_0_level_9_3, but it seems to be crashing for me, does anybody know why this might be happening? I'm definitely not exceeding the primitive, index or texture repeat restrictions, it's a 33 polygon tree drawn 4 times.
The error is a "Unhandled exception at 0x76cbfc56 in XEngine11.exe: 0x0000087C: 0x87c." Weird that there seems to be no description text
Here is an outline of the setup: Perhaps I have set up the input layout incorrectly?

 // Vertex Shader: normal and texcoord parts snipped VSOutput VSmain(float3 iPos : POSITION0, float3 iNorm : NORMAL0, float2 iTex : TEXCOORD0 ,float3 iInstPos : POSITION1) { float4 worldPos = mul(float4(iPos, 1), World); worldPos.xyz += iInstPos; float4 viewPos = mul(worldPos, View); float4 projPos = mul(viewPos, Proj); VSOutput output; output.Position = projPos; return output; } // Input layout D3D11_INPUT_ELEMENT_DESC desc[] = { // { name, index, format, slot, offset, class, steprate } // stream 0 { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }, { "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }, { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }, // stream 1 { "POSITION", 1, DXGI_FORMAT_R32G32B32_FLOAT, 1, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_INSTANCE_DATA, 1 }, }; 

I've tried using TEXCOORD1 and NORMAL1 as the semantics for the instance position in the shader but that didnt work. Also, somebody else at the XNA forums seemed to have a similar problem, but theirs was solved by making sure the semantic index was explicitly typed in the shader, which is not my problem.

I remember this was particularly fiddly to achieve in D3D9. Just hoping it doesn't take too long to figure out for D3D11.

EDIT: I tried changing my index buffer to use 32 bit indices (DXGI_FORMAT_R32_UINT). Now the same crash occurs - at the line where the index buffer is bound to the pipeline. Edited by hupsilardee

##### Share on other sites
That code you have looks okay...do you have the DEBUG flag enabled for your device?

##### Share on other sites
I had D3D11_CREATE_DEVICE_DEBUG enabled, and in the DX control panel I put D3D9 on debug with maximum output and D3D11 with "Force On" and the project added to the executable list. So it gives me some interesting messages in the output window.
 D3D11: Removing Device. D3D11: WARNING: ID3D11Device::RemoveDevice: Device removal has been triggered for the following reason (DXGI_ERROR_DRIVER_INTERNAL_ERROR: There is strong evidence that the driver has performed an undefined operation; but it may be because the application performed an illegal or undefined operation to begin with.). [ EXECUTION WARNING #379: DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT ] D3D11: Raising UM Driver Internal Error to continuable exception.First-chance exception at 0x76cbfc56 in XEngine11.exe: 0x0000087C: 0x87c. Unhandled exception at 0x76cbfc56 in XEngine11.exe: 0x0000087C: 0x87c. The program '[19512] XEngine11.exe: Native' has exited with code 2172 (0x87c). 

So it's a driver error?

##### Share on other sites
Yeah it looks like you crashed the driver somehow. These kinds of things can be hard to track down.

##### Share on other sites
Try verifying against a WARP device with feature level 11 - that will help confirm if it's your code or level 9_3 that's causing you trouble.

##### Share on other sites
Good idea. Should have thought of that earlier. As it turns out, the WARP device renders 4 models as expected, so it's level_9_3 causing the problem