Followers 0

# DX11 dx11 adapter with emtpy output

## 2 posts in this topic

Hello gamedev.net,

I was struggling against a Problem with the EnumAdapter1 function of DXGI.
What I've supposed to do was to switch from my onboard chip to my nvidia geforce gt550m (laptop),
because my onboard chip is DX10.1 and it runs just fine, when reverting from DX11.

printf("Adapter: %d (%s)\n", adapterCount, m_videoCardDescription);


Shows my nvidia chip, but when trying to use this card later, it can't find Outputs:

if(FAILED(adapter->EnumOutputs(OutputCount, &adapterOutput)))
break;


Here is a snippet:

[...]

int adapterChoosen = 0;
if(adapterCount > 1) {
}
else if(adapterCount == 1) {
}
else {
log(LOG_ERROR, "No suitable adapter found!");
return false;
}

log(LOG_ERROR, "D3DClass::Initalize IDXGIFactory::EnumAdapters failed");
return false;
}

int OutputCount;
for(OutputCount = 0; ; OutputCount++) { //adapter->EnumOutputs(OutputIndex, &adapterOutput) == S_OK)
//printf("Output found: %d\n", OutputIndex);
break;

}

[...]


My chip can handle DX11 as I can start other DX11 applications, which do work.
- Regards

PS: sorry for bad english

0

##### Share on other sites

Are you able to see your output when you query for the onboard graphics?  If so, then do you need to plug your monitor directly into the graphics card output in order to use it as an output for that adapter?  I haven't done much with multi-adapter/multi-output setups, so that is just a guess...

0

##### Share on other sites

Are you able to see your output when you query for the onboard graphics?  If so, then do you need to plug your monitor directly into the graphics card output in order to use it as an output for that adapter?  I haven't done much with multi-adapter/multi-output setups, so that is just a guess...

I noticed, when printing the adapters to console, it looks like this:

Searching for adapters...
Adapter: 0 (Intel(R) HD Graphics Family)
Adapter: 1 (NVIDIA GeForce GT 540M)


When typing in 0, the application runs on DirectX 10.1 on my internal chip.

When typing in 1, the application crashes (D3DClass::Initialize IDXGIAdapter::EnumOutputs failed)

so even if I can read out the geforce adapter, I can't use it.

Now I found a workaround by opening the NVIDIA Control Panel and changing in the 3d-settings for
this special application the preferred processor from "global (Intel(R) HD Graphics ...)" to the nvidia chip.

The console has changed:

Searching for adapters...
Adapter: 0 (NVIDIA GeForce GT 540M)
Adapter: 1 (NVIDIA GeForce GT 540M)


On "adapter 0" it chooses my nvidia chip and everything initialize correctly but even here, typing in "1" forces

the application to crash with the same error as above. This is strange to me because the application can see

this "adapter 1". Is there any explanation of this behavior?

regards

0

## Create an account or sign in to comment

You need to be a member in order to leave a comment

## Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Followers 0

• ### Similar Content

• By YixunLiu
Hi,
I have a surface mesh and I want to use a cone to cut a hole on the surface mesh.
Anybody know a fast method to calculate the intersected boundary of these two geometries?

Thanks.

YL

• By hiya83
Hi, I tried searching for this but either I failed or couldn't find anything. I know there's D11/D12 interop and there are extensions for GL/D11 (though not very efficient). I was wondering if there's any Vulkan/D11 or Vulkan/D12 interop?
Thanks!

• Hi Guys,
I am just wondering if it is possible to acquire the address of the backbuffer if an API (based on DX11) only exposes the 'device' and 'context' pointers?
Any advice would be greatly appreciated

• bool InitDirect3D::Init() { if (!D3DApp::Init()) { return false; } //Additional Initialization //Disable Alt+Enter Fullscreen Toggle shortkey IDXGIFactory* factory; CreateDXGIFactory(__uuidof(IDXGIFactory), reinterpret_cast<void**>(&factory)); factory->MakeWindowAssociation(mhWindow, DXGI_MWA_NO_WINDOW_CHANGES); factory->Release(); return true; }
As stated on the title and displayed on the code above, regardless of it Alt+Enter still takes effect...
I recall something from the book during the swapChain creation, where in order to create it one has to use the same factory used to create the ID3D11Device, therefore I tested and indeed using that same factory indeed it work.
How is that one particular factory related to my window and how come the MakeWindowAssociation won't take effect with a newly created factory?
Also what's even the point of being able to create this Factories if they won't work,?(except from that one associated with the ID3D11Device)
• By ProfL
Can anyone recommend a wrapper for Direct3D 11 that is similarly simple to use as SFML? I don't need all the image formats etc. BUT I want a simple way to open a window, allocate a texture, buffer, shader.

• 12
• 28
• 14
• 11
• 35