• Advertisement
Sign in to follow this  

(X)SSetConstantBuffers1 - no luck?

This topic is 1540 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

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)

 

 

 

 

 

 

Share this post


Link to post
Share on other sites
Advertisement

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.

Edited by Migi0027

Share this post


Link to post
Share on other sites
@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

Share this post


Link to post
Share on other sites

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.

Edited by N.I.B.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Edited by N.I.B.

Share this post


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

  • Advertisement