   DirectX 11 tech preview
  Hello,Yesterday I felt the urge to port my DirectX 10 application to DirectX 11 (bright idea, I know). Luckily I was not using D3DX10 so the missing effect file support in the DX11 beta wasn't too much a problem. So when I was done, I tried to run the application and... nothing, cannot create the device.That seemed strange to me, since I could run the DirectX 11 samples (the multithreading one anyway, since the other ones require a DirectX 11 card). Note that I have two graphics cards: a Radeon 4850 (D3D10, SM4) and a Radeon X1550 (D3D9, SM3).After some messing around, debugging the samples and such, I found out the following:- I can use the Radeon X1550, by letting DirectX pick the device itself (NULL for the IDXGIAdapter), but that gives me 9.3 feature levels... (not good for my geometry shaders)- I cannot pass anything as the IDXGIAdapter for D3D11CreateDeviceNow the second line is quite strange, because in the samples I can pick the device I want... except when debugging it, it simply displays the name of the device you want, but actually still passes NULL to D3D11CreateDevice, thus picking my X1550 again; at least that explains why the samples were so slow.So anyone else got a look at the DX11 tech preview? And maybe got it working with a Radeon 4850... I don't feel like disabling my X1550 to test because I'd get a missing monitor...Thanks   
  I had problems using the DXGI with the DX11TP too, namely creating a swap chain after creating the device. To sole this, you can call D3D11CreateDeviceAndSwapChain and create everything in one shot, while skipping on DXGI altogether for now.The problem might be in the collision with beta and non-beta dll-s, e.g. if you link to both dxgi.lib and dxgi_beta.lib at the same time. You can experiment with that if you want, but I think you should just wait for the final DX11 release before messing with DXGI.Also, DXGI will get an update come Win7, so there are interfaces present like IDXGIAdapter1 and IDXGIFactory1. You can try look into that, maybe DX11 expects those, dunno.   ;  Well the DXGI code was already there from the DirectX 10 code... I'm already using dxgi_beta.lib, but regarding the IDXGI*1 interfaces, I can't really use them since it seems impossible to link with DXGICreateFactory1; the D3D11CreateDevice function expects a "normal" IDXGIAdapter anyway.Also, passing anything as the adapter fails with either a COM error (invalid argument) or a crash in d3d11_beta.dll. Specifying a feature level above D3D 9 (so above what the X1550 can do) leads to no device being found, and a DXGI error telling me so... And doing the swap chain creation at the same time gives the same result.I guess I'll just have to stick to WARP for the time being (which works and gives me D3D 10.1 level features), and hope either the next SDK update or a more recent Catalyst will fix this issue...edit: note that the main problem isn't DXGI, it's just that D3D11 thinks my Radeon 4850 is not capable of doing anything from D3D 9 to D3D 11...   ;  I get the maximum feature level :D3D_FEATURE_LEVEL FeatureLevel = D3D_FEATURE_LEVEL_10_0;hr = D3D11CreateDevice(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, NULL, 0,    D3D11_SDK_VERSION, NULL, &FeatureLevel, NULL );and I create the real devicehr = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, &FeatureLevel, 1,D3D11_SDK_VERSION, &sd, &pSwapChain, &pd3dDevice, NULL, &pImmediateContext);It works perfectly, and I can use any geometry shaders. (I have a 4870x2 and It worked on a geforce 9600 GT too)   ;  Hm then I guess it comes from the mix of the 4850 and the old X1550 in the same system, I'll try taking it out for a test...   ;  And try to update to the latest drivers. I'm using 9.1 with the 4870x2.   ;  Sadly I am already using the latest drivers (I tried with previous ones too, down to November)   ;re-opened/woken up as per request by Slogar...Cheers,Jack   ;  Well in case anybody wants to know, I swapped the older card with a second 4850 and from that points everything worked fine (I never got a reply from ATI regarding the issue anyway)...This also got rid of some rare random driver restarts while doing nothing special on the computer.   ;  Thanks Jack.Here is what I found out by debugging the d3d sdk examples:There are two ways to initialize the device.1. Pass NULL as an adapter to D3D11CreateDeviceAndSwapChain and let d3d choose the device. That's not a solution if you want to use your second graphics card.2. Link to d3d11_beta.lib and dxgi_beta.lib (not dxgi.lib !). Get an adapter with CreateDXGIFactory (not CreateDXGIFactory1 !) and pass it to D3D11CreateDeviceAndSwapChain. Linking to dxgi.lib gives the "invalid argument" error message. Also you should use following arguments for D3D11CreateDeviceAndSwapChain:D3D_FEATURE_LEVEL featureLevelRequested = D3D_FEATURE_LEVEL_10_0;D3D11CreateDeviceAndSwapChain(   adapter,   D3D_DRIVER_TYPE_UNKNOWN,   NULL,   D3D11_CREATE_DEVICE_DEBUG,  &featureLevelRequested,   1,   D3D11_SDK_VERSION,   &swapChainDesc,   &swapChain,   &device,   0,  &immediateDeviceContext)Especially the combination of D3D_FEATURE_LEVEL_10_0, D3D_DRIVER_TYPE_UNKNOWN and D3D11_SDK_VERSION seems to do the trick.Sadly the NVidia PerfHUD adapter is not enumerated by dxgi_beta, which originally was the reason for me to select an adapter.This is what I remember from earlier this month when I requested the reopening of this thread for people who are referred from google. In case I missed something and somebody is still having problems selecting an adapter, I could give a code example by private message or email.Sorry for letting you guys wait so long since the thread way reopened. I thought that I get an email when new private messages arrive. Does this board have such a feature?   