🔒 Locked
November 2007 DirectX SDK out now!
Advertisement
Original Post
The November 2007 DirectX SDK is out now! GET IT HERE Now to see if the ID3D10Device::OpenSharedResource page has been updated... [evil]
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...
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...
Good catch - I've stuck this to the top of the forum for all to see [smile]
Cheers,
Jack
Cheers,
Jack
Quote:[headshake] oops. I've been so busy with my day-job that I never even saw that thread...
Original post by Demirug
We already had a thread about this last week.
Thanks for pointing it out - somehow doesn't surprise me that you were the one to start it [smile]
Cheers,
Jack
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.
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.
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.
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 D3D9pDevice9->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 pDevice10This 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.
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:
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]
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]; local_position.xyz += mul(input.position, transform)*input.blend_weights; float3x3 inverse_transpose_transform = inverse_transpose(transform)*input.blend_weights; 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]
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement