Bugs in February 2005 SDK?

Started by
8 comments, last by Namethatnobodyelsetook 19 years, 1 month ago
Hi everyone, I just upgraded to the February 2005 SDK and now I am experiencing crashes in the effects framework. Happens with different projects and different fx-files, but the dx samples still work. The top of the call stack is always: d3dx9d_24.dll!D3DXEffects::_Unpack<float,4>() + 0x1e d3dx9d_24.dll!D3DXEffects::CEffect::Unpack<float,4>() + 0x5b d3dx9d_24.dll!D3DXEffects::CEffect::ApplyAssignment() + 0x4a4 d3dx9d_24.dll!D3DXEffects::CEffect::ApplyBlock() + 0x149 d3dx9d_24.dll!D3DXEffects::CEffect::ApplyAssignment_Apply() + 0x10fe d3dx9d_24.dll!D3DXEffects::CEffect::ApplyAssignment() + 0xac5 d3dx9d_24.dll!D3DXEffects::CEffect::ApplyBlock() + 0x149 d3dx9d_24.dll!D3DXEffects::CEffect::BeginPass() + 0x2c4 ... I am not sure what this means, but it looks like the effect compiler is broken. The fx-files used to work with previous versions of the sdk up to december, so I doubt it is my fault... plus: d3dx should not crash, no matter what. Any ideas? Any guys from Microsoft present? I managed to work-around some of the problems, but I still have a bad feeling about this... David
Advertisement
Im clueless to why your getting this error, but im also experiencing problems with the Effect class. You could always try the offical DirectX newsgroup - Google Groups has it if your newgroup server doesnt.

Microsoft.Public.Win32.Programmer.DirectX I believe
Ollie"It is better to ask some of the questions than to know all the answers." ~ James Thurber[ mdxinfo | An iridescent tentacle | Game design patterns ]
Hi folks,

I have the same problem.
Sometimes when the application crashes I get the following debug output:

D3DX: ID3DXEffect: Cannot unpack non-numeric type into shader constant
D3DX: Assertion failure! (d:\bt\36\private\multimedia\directx\dxg\d3dx9\shader\fx\runtimeeffect.cpp 3233): 0
D3DX: ID3DXEffect: Cannot unpack non-numeric type into shader constant
D3DX: Assertion failure! (d:\bt\36\private\multimedia\directx\dxg\d3dx9\shader\fx\runtimeeffect.cpp 3233): 0
First-chance exception at 0x009db9ce (d3dx9d_24.dll) in Didgeridoo.exe: 0xC0000005: Access violation reading location 0x41d3889c.
Unhandled exception at 0x009db9ce (d3dx9d_24.dll) in Didgeridoo.exe: 0xC0000005: Access violation reading location 0x41d3889c.

... but I definitly do not assign a non-numeric type variable to a numeric shader constant. Sometimes, it helps to change some parts of the fx-file or to disable preshaders, but that can't be the solution to that problem ...

---
dma
The official newsgroups ( microsoft.public.win32.programmer.directx.graphics almost as acid2 said, also this list might help ) and the direct-email: directx@microsoft.com are probably the best people to talk to here.

Send them as much information as you can - ideally in the form of a small "repro" sample and a copy of all debug/error output you get, and steps to reproduce it.

Looking at what you've got, it is quite possible that you've found a bug - or you've found a way of feeding something bad into the system that it can't copy with [smile].

Let us know how it goes.
Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

If the issue is not discussed in the newsgroup yet, definately e-mail the dx team.
They will answer you within a couple hours and tell you whether it's a bug (which they will fix) or not.
I don't use FX files, so I can't really help, but I've just posted this to the MVP private newsgroups. Could anyone who gets this error reply with a broken FX file in a source block.
... I think I've found a reason for this problem:
ID3DXEffect::BeginPass only crashes if it's called on a cloned effect. It might be the same problem as in this thread:

http://www.gamedev.net/community/forums/topic.asp?topic_id=256348

However - doesn't look like anyone has posted a solution for that so far.

You can reproduce the crash, by adding the following lines to SkinnedMesh.cpp (dxsdk-skinnedmesh-sample) behind the call of D3DXCreateEffectFromFile.

    if (g_pEffect)    {        ID3DXEffect* pClonedEffect = NULL;        V_RETURN( g_pEffect->CloneEffect(pd3dDevice, &pClonedEffect) );        g_pEffect->Release();        g_pEffect = pClonedEffect;    }


... or is there something wrong with these lines?

----
dma

ps: don't forget to select HLSL-Skinning if you run the sample

[Edited by - dma42 on February 17, 2005 5:57:40 AM]
Can someone reply or PM me with a full broken FX file for this issue. The DX team wants to look into it, but they need more info. A simplified, but complete, FX file is fine as long as it does cause the issue.
The problem is not caused by certain fx-files but by cloned effects. Look at the last post by dma42, it describes how to reproduce the problem with the directx skinning sample.
Ok, thanks LostSoul and dma42. We should see an official explaination, fix, or workaround, or "Oops" soon.

This topic is closed to new replies.

Advertisement