Question for those developing 64-bit plugins
-
- KVRist
- 222 posts since 7 Apr, 2003 from San Francisco, CA
Hi,
I am developing a VST plugin that has both a 32-bit (x86) and 64-bit (x64) version. I use Sonar x86 and Sonar x64 to test it with. Let's say they are called Plugin x86.dll and Plugin x64.dll. So my questions/commets are:
1. Can both the DLLs be in the same VST folder?
2. Should both plugin file names be the same (and therefore be in different folders?)
3. Should both plugins return the same name and unique ID?
4. What happens if I load the x64 version into a project under Sonar 64, then open the same project in Sonar 32? Would Sonar be smart enough to automatically load the 32-bit version (and vice-versa)?
5. A very strange problem: When I run Sonar under the debugger, it does not find the x64 version during a scan. It only finds the x86 version. But when I run Sonar outside of the debugger, it detects both and both are listed as available plugins. The only way for me currently to debug the 64-bit version is to start Sonar outside of the debugger, and then manually attach the debugger to Sonar.
6. What is the pack value of the data structures under x64? Is it 8 or 4?
7. I searched but did not find any documentation specific to 64-bit VST development. Does anyone know where I can find a good source of info?
Thanks in advance for any help with this.
I am developing a VST plugin that has both a 32-bit (x86) and 64-bit (x64) version. I use Sonar x86 and Sonar x64 to test it with. Let's say they are called Plugin x86.dll and Plugin x64.dll. So my questions/commets are:
1. Can both the DLLs be in the same VST folder?
2. Should both plugin file names be the same (and therefore be in different folders?)
3. Should both plugins return the same name and unique ID?
4. What happens if I load the x64 version into a project under Sonar 64, then open the same project in Sonar 32? Would Sonar be smart enough to automatically load the 32-bit version (and vice-versa)?
5. A very strange problem: When I run Sonar under the debugger, it does not find the x64 version during a scan. It only finds the x86 version. But when I run Sonar outside of the debugger, it detects both and both are listed as available plugins. The only way for me currently to debug the 64-bit version is to start Sonar outside of the debugger, and then manually attach the debugger to Sonar.
6. What is the pack value of the data structures under x64? Is it 8 or 4?
7. I searched but did not find any documentation specific to 64-bit VST development. Does anyone know where I can find a good source of info?
Thanks in advance for any help with this.
-
Jeff McClintock Jeff McClintock https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=56398
- KVRist
- 433 posts since 30 Jan, 2005 from New Zealand
32-bit goes in for example "C:\Program Files (x86)\Common Files\Steinberg\VST2"BitFlipper wrote: 1. Can both the DLLs be in the same VST folder?
64-bit in "C:\Program Files\Common Files\Steinberg\VST2"
On english-language systems anyhow.
Jeff
-
- KVRAF
- 1940 posts since 16 Aug, 2004 from Vienna, Austria
-
- KVRist
- Topic Starter
- 222 posts since 7 Apr, 2003 from San Francisco, CA
Thanks guys, I found the answers to all my questions. Here's what I found in case anyone else run into the same questions:
1. Can both the DLLs be in the same VST folder?
Yes. BTW, they don't need to be under the Program Files folder at all.
2. Should both plugin file names be the same (and therefore be in different folders?)
No.
3. Should both plugins return the same name and unique ID?
Yes.
4. What happens if I load the x64 version into a project under Sonar 64, then open the same project in Sonar 32? Would Sonar be smart enough to automatically load the 32-bit version (and vice-versa)?
In Sonar, it will automatically switch to either the 32-bit or 64-bit version, depending on whether you load the 32-bit or 64-bit version of Sonar.
5. A very strange problem: When I run Sonar under the debugger, it does not find the x64 version during a scan...
This turned out to be my own stupidity: Visual Studio was set to start the 32-bit version of Sonar, not the 64-bit version.
6. What is the pack value of the data structures under x64? Is it 8 or 4?
So far as I can tell, it is 4 byte on both, except of course structures that contain pointers, which will then have a different layout due to the 64-bit pointers.
7. I searched but did not find any documentation specific to 64-bit VST development. Does anyone know where I can find a good source of info?
I still haven't found any but I don't need it anymore...
Thanks,
BitFlipper
1. Can both the DLLs be in the same VST folder?
Yes. BTW, they don't need to be under the Program Files folder at all.
2. Should both plugin file names be the same (and therefore be in different folders?)
No.
3. Should both plugins return the same name and unique ID?
Yes.
4. What happens if I load the x64 version into a project under Sonar 64, then open the same project in Sonar 32? Would Sonar be smart enough to automatically load the 32-bit version (and vice-versa)?
In Sonar, it will automatically switch to either the 32-bit or 64-bit version, depending on whether you load the 32-bit or 64-bit version of Sonar.
5. A very strange problem: When I run Sonar under the debugger, it does not find the x64 version during a scan...
This turned out to be my own stupidity: Visual Studio was set to start the 32-bit version of Sonar, not the 64-bit version.
6. What is the pack value of the data structures under x64? Is it 8 or 4?
So far as I can tell, it is 4 byte on both, except of course structures that contain pointers, which will then have a different layout due to the 64-bit pointers.
7. I searched but did not find any documentation specific to 64-bit VST development. Does anyone know where I can find a good source of info?
I still haven't found any but I don't need it anymore...
Thanks,
BitFlipper
-
- KVRer
- 15 posts since 14 Nov, 2008
Hi,BitFlipper wrote: 7. I searched but did not find any documentation specific to 64-bit VST development. Does anyone know where I can find a good source of info?
I still haven't found any but I don't need it anymore...
Thanks,
BitFlipper
I want to port one of my 32-bit plugins to x64 (VST2.4, VisualC++Express2008 64-bit enabled). Would you mind share some tips with us? Sort of walk-through?
Thanks!!!
