Skip to main content
GameDev.net gamedev.net
🔒 Locked

(X)SSetConstantBuffers1 - no luck?

Started by sepul Nov 2, 2013 at 5:48 PM 6 replies 3.5k views
Original Post
sepul
sepul

Hi,

I need to use some limited functionality of d3d11.1 under win7, but so far I had no luck

I've installed the win7 platform update and win8 sdk. Here's a snippet that I acquire d3d11.1 device :


dxhr = D3D11CreateDevice(adapter, D3D_DRIVER_TYPE_UNKNOWN, NULL, dev_flags,  
    NULL, 0, D3D11_SDK_VERSION, &dev, &ft_level, &ctx);  
ID3D11Device1* dev1;  
dxhr = dev->QueryInterface(__uuidof(ID3D11Device1), (void**)&dev1);  
dev->Release()  
D3D_FEATURE_LEVEL ft_level = dev1->GetFeatureLevel()  
...

The d3d11.1 objects are valid and working, but I can't use any d3d11.1 specific feature. The structure returned by CheckFeatureLevel(D3D11_FEATURE_D3D11_OPTIONS) is all FALSE and I can't run any d3d11.1 APIs without error (or d3d-debug complains)

For example my application is something like glMapBufferRange and glBindBufferRange on DX. (which existed since GL3), so I guess it's just a API/driver issue and doesn't rely on d3d11.1 hardware requirements.

But the support in the D3D11_FEATURE_D3D11_OPTIONS is not there and calling VSSetConstantBuffers1 leads to d3d complain "This current driver does not support constant buffer offsets"

In the d3d document for VSSetConstantBuffers it says: "This feature is always available on new drivers for feature level 10 and higher"

So, Am I missing something in the API ? or it's just lazy drivers from AMD ? (I'm using latest Catalyst 13.9 drivers on 5750 card)

Veiled Glitch
Veiled Glitch

What GPU do you have?

It may be that it simply doesn't have the capability of executing dx 10-11 commands.

EDIT:

As you said:

"This feature is always available on new drivers for feature level 10 and higher"

Either your GPU isn't capable of this, or you should update your driver, from NVIDIA.

sepul
sepul
@migi: mentioned them in my first post.
amd 5950 card, win7, latest amd catalyst 13.9 drivers
gpu should be capable as described in d3d documentation
satanir
satanir

When you call D3D11CreateDevice, you pass NULL as the requested feature level array (5th param). You need to explicitly request D3D_FEATURE_LEVEL_11_1, otherwise it will create 11.0 device.

Check D3D11CreateDevice() on MSDN.

MJP
MJP

I'm not sure if any drivers actually support that feature on Win7. I just checked on my 7950 and it also reports that constant buffer offsets aren't available. It's pretty frustrating, since it's the 1 feature from 11.1 that's supposed to be available on Win7.

MJP
MJP

When you call D3D11CreateDevice, what feature level do you request? You need to explicitly request D3D_FEATURE_LEVEL_11_1, otherwise it will create 11.0 device.

Check D3D11CreateDevice() on MSDN.

FEATURE_LEVEL_11_1 isn't available at all on Win7. The platform update basically lets Win7 support the new interfaces, but none of the functionality. Basically, it's totally useless.

satanir
satanir

FEATURE_LEVEL_11_1 isn't available at all on Win7. The platform update basically lets Win7 support the new interfaces, but none of the functionality. Basically, it's totally useless.

Some features are supported on Win7(MSDN), though it doesn't say how to create device that supports those features.

sepul
sepul

@MJP this sucks.

Isn't it because of AMD drivers ?

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.