# Interoperability OpenCl DX11 portable with Nvidia, AMD,

This topic is 1524 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Hi,

I want to use the interoperability between OpenCL and DirectX11. I have a Radeon graphics card, and I want to run my .exe on an Nvidia card.

Is is it possible ?

So far I use this pointer function type


clGetDeviceIDsFromD3D11KHR_fn

avaible in the AMD SDK but I guess I need to use this type

clGetDeviceIDsFromD3D11NV_fn

available in the Nvidia SDK.

I guess I am going to do something wrong if I install the Nvidia SDK https://developer.nvidia.com/cuda-toolkit-31-downloads with a Radeon card.

Any solution for me ?

thanks,

Edited by smallGame

##### Share on other sites

I would have an internal definition for each function and query for both. If the return value is valid ( I'm assuming non-null ) then that extension is available, openCL extension mechanism is similar to that of openGL so some of the same concepts apply.

##### Share on other sites

Thanks for your answer, yes but I am block before that, I cannot compile my program because I don't know

clGetDeviceIDsFromD3D11NV_fn

which is in the Nvdia SDK.

So yes that the idea, I can even use the GetPlatformInfo or GetDeviceInfo to know which extension I can use.

Even if I buy a new PC with Nvidia hardware my program won't compile anymore because I won't have AMD SDK installed on it.

So I come back with my initial question:

What's happen if I install both graphics card SDK on a same PC ?? Can I really do that ?

I guess it's my only solution...

Edited by smallGame

##### Share on other sites

Well, just try ;)

An SDK installation should not depend on what hardware you have. I have an NVidia and could install the AMD APP SDK without any problems. I haven't mentioned it explicitly in this post, but I could transliterate the sample to D3D11 by using the NV instead of KHR extension (the latter are still not exposed even with the newest driver). Quickly comparing cl_d3d11.h from AMD and cl_d3d11ext.h from NVidia shows the only difference is this KHR<->NV naming, the function signatures look the same. So you're probably good to just change the extension names.

By the way: clGetDeviceIDsFromD3D10NV is definitively not what you want, since that would be D3D10 interop.

##### Share on other sites

Well, just try ;)

ok , I tried it does compile!! Thanks

When I run it on Nvidia hardware it crashes, so now I need someone to look at it which has an Nvidia hardware ...