Hi, amazing work, ty very much for this (VAM needed this for a long, long time, imagine this coupled with something like FSR 2, oh boy).
Anyways, I just wanted to say, however, that the readme is a little weirdly-worded when it comes to adjusting the .INI file values.
Here, I quote what it says:
computeColliders: should be 75% of the amount of threads your CPU has (including hyperthreads)
skinmeshPart: should be 1 if you have a fast CPU or up to 4 if you have a slow one
CCD: Intel users set it to 0, AMD users who have a ryzen with multiple CCDs set it to 1 or 2, depending which CCD is faster
IterateCCD: leave at 0 or set to 1 if you want to try switching CCDs between every frame, new X3D ryzens might benefit from it. Requires CCD=0 if you want to use it.
So I just wanted to point out the bits that confuse me a little.
1) "75% of the amount of threads your CPU has (including hyperthreads).
So, my 7900X3D has 12 cores, 24 threads. So... I have 24 threads. If I'm not mistaken, each one of the physical Cores have two threads (hence, the "multithread" part, so indeed 12x2 so 24). This may confuse some people into thinking that there's "more" than the threads their CPU is advertised with, into thinking something along the lines of "Wait, do I have hyperthreads over just my normal threads?".
Maybe it's just how I read it first. But basically my number should be 18, since 75% of 24 is 18. Instead, in the readme, I would simply recommend you to just plain and simply type what the actual number to enter should be for this value based on the number of Cores the CPU has (since all CPUs since many years are hyperthreaded anyways).
2) SkinmeshPart description is clear... until you start wondering what actually is considered a "Fast" and a "Slow" CPU? Obviously, the absolute best and most expensive ones are the "best", but where do we draw the line and start saying "Slow" for VAM? (IMO as far as VAM is concerned, there's no such thing as "Fast" really, if I could I would go into the future by +50 years, take a CPU there, and come back to the present to just brute force +300 FPS into this thing). I would recommend for this section to give some examples of AMD / Intel CPU models that would correspond to applying a Value of 1, 2, 3 and 4.
3) As an AMD user, when you say "which CCD is faster" based the choice of number 1, or 2 is a no go. Since for us it's either CCD 0, or CCD 1; there's no CCD 2 (unless there's a model with CCD 2 that I'm not aware of, but my 7900X3D only has CCD 0, which contains the X3D cores, and CCD 1 which contains the non-X3D cores). So here if I enter a value of 1, it leads me to think that it refers to the non-X3D CCD, which is not the CCD I want VAM to focus on (but instead to focus on CCD 0, the X3D cores).
4) The description for IterateCCD is also weird to me. To "leave at 0 or set to 1, if you want to try switching..."
It's either I want to try the 'switching' thing, or not. I cannot leave it at either 0 or 1 and expect to try switching. The way it's worded it basically says that the switch thing will happen at both a value of 0 and 1. Either it happens, or it doesn't, lol. This part just made me scratch my head. So as you say though, it requires CCD 0 if I want to use this feature, which I do. But the setting above this one tells me to set the value to either 1 or 2 for CCDs which still confuses me since I don't have CCD 2. So does this setting here (IterateCCD) actually depend on the value we set above? Or is this feature independent to the value above?
Anyways...
I do genuinely thank you very much for this. But the readme is a bit of a head-scratcher to me.