• Advertisement
Sign in to follow this  

November 2007 DirectX SDK out now!

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

If you intended to correct an error in the post then please contact us.

Recommended Posts

Advertisement
BOLLOCKS! Err I mean, how unfortunate... It appears I'll have to either:

A) Pace up-and-down till the next update in March 2008, hoping that this is the one.

B) Start looking at an ugly task blocking / GPU synchronising system. Arrgh.


BTW. Looks like support for VS2003 is being dropped in March...

Share this post


Link to post
Share on other sites
Quote:
Original post by Demirug
We already had a thread about this last week.
[headshake] oops. I've been so busy with my day-job that I never even saw that thread...

Thanks for pointing it out - somehow doesn't surprise me that you were the one to start it [smile]

Cheers,
Jack

Share this post


Link to post
Share on other sites
I think it is interesting to note that Microsoft has removed any mention of Managed DirectX in the Microsoft DirectX SDK (November 2007) release. There is no longer a .chm file for managed code; there is no "managed" subdirectory under the "samples" directory and the sample explorer utility no longer has a "managed" check box for filtering. Looks like its time to give up on C# for DirectX applications.

In early October I sent an email to directx@microsoft.com describing what I think is a bug in buffer notifications using c#. I included a demonstration program showing the problem. Briefly, it seems that notifications in the output buffer are generated when the currentWritePosition reaches the notification point instead of based on the currentPlayPosition as documented. As of 11/3/07 I have had no response or even acknowledgement of receipt of my email.

If you want to learn more about this apparent bug, you can read the thread here: http://forums.microsoft.com/msdn/showpost.aspx?postid=2361599&siteid=1&sb=0&d=1&at=7&ft=11&tf=0&pageid=0

There is some discussion by others in the thread questioning if the notifications work correctly in C++/Win32 environment. This is a major problem for me. I at a minimum am faced with rewriting my DirectX related code in C++ and there is some question that this will solve the problem.

Any knowledge of issues related to this that readers here might have would be greatly appreciated.

Share this post


Link to post
Share on other sites
Quote:

I think it is interesting to note that Microsoft has removed any mention of Managed DirectX in the Microsoft DirectX SDK

This change was known to be coming as of early summer, if not before. You shouldn't be that surprised. Managed DirectX is now officially a deprecated project, so of course you're not going to get a response to your bug report.

Quote:

Looks like its time to give up on C# for DirectX applications.

Hardly.

Share this post


Link to post
Share on other sites
Quote:
Original post by jpetrie
Quote:

Looks like its time to give up on C# for DirectX applications.

Hardly.

Not to mention XNA.

Share this post


Link to post
Share on other sites
I see that dmusici.h is missing from the include files folder from the November SDK

I had some code that used DirectMusic
IDirectMusicSegment8,IDirectMusicAudioPath8,...

What should I use instead ?

Share this post


Link to post
Share on other sites
Quote:
Original post by Racky1275

The November 2007 DirectX SDK is out now! GET IT HERE

Now to see if the ID3D10Device::OpenSharedResource page has been updated... [evil]


I'm sorry the documentation isn't up to snuff, I'll try to get it corrected for the next SDK.

To share a resource from a 9 device to a 10 device:

sharedHandle = NULL; // must be set to NULL to create, can use a valid handle here to open in D3D9
pDevice9->CreateTexture(..., pTex2D_9, &sharedHandle); // that's the "reserved" parameter
//...
pDevice10->OpenSharedResource(sharedHandle, __uuidof(ID3D10Resource), (void**)(&tempResource10));
tempResource10->QueryInterface(__uuidof(ID3D10Texture2D), (void**)(&pTex2D_10));
tempResource10->Release();
// now use pTex2D_10 with pDevice10


This should allow you to use the same texture in video memory across multiple devices.

Restrictions:
  • 2D Textures only

  • 1 mip level only

  • Usage DEFAULT only

  • No CPU Access

  • No MSAA Textures

  • BindFlags = SHADER_RESOURCE | RENDER_TARGET (that's a bitwise OR, it must have both set)

  • MiscFlags = D3D10_RESOURCE_MISC_SHARED

  • Formats: R10G10B10A2_UNORM, R16G16B16A16_FLOAT, R8G8B8A8_UNORM. Note that the DXGI formats are reversed from DX9, so R8G8B8A8 in DXGI = A8B8G8R8 in DX9. Unfortunately, most 9 devices don't support that particular format. I believe in D3D10.1, this will be expanded to allow DXGI_FORMAT_B8G8R8A8_UNORM which has a commonly available D3D9 counterpart.

  • If you update the texture on one device, you must issue a Flush() on that device or somehow flush the pipeline so the kernel driver serializes the texture access.

Share this post


Link to post
Share on other sites
You are an absolute star! Thank you so much! [smile] [smile] [smile] [smile]

Hmmm lots of new code to write... better get some coffee.

Share this post


Link to post
Share on other sites
I think this version has serious problems with the new shaders compiler.
Stable shaders either can't be compiled now or stopped working properly.
For example:
for (int i = 0; i != 4; ++i)
{
float4x3 transform = bones_matrices[input.blend_indices[i]];
local_position.xyz += mul(input.position, transform)*input.blend_weights[i];
float3x3 inverse_transpose_transform = inverse_transpose(transform)*input.blend_weights[i];
binormal += mul(input.binormal, inverse_transpose_transform);
tangent += mul(input.tangent, inverse_transpose_transform);
normal += mul(input.normal, inverse_transpose_transform);
}


This part of shader will not compile under the vs_2_0 profile with the following error: "error X4505: maximum temp register index exceeded".
Under the vs_3_0 profile it will compile but gives incorrect result. Unrolling the loop solves the problem.

p.s.: Sorry for mistake. The problem exist from the august 2007 DXSDK update. The last stable SDK for me is june 2007.

[Edited by - arabesc on December 5, 2007 9:44:25 AM]

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement