I'm working on a voxel terrain generation system. Currently I'm running into issues using DrawProceduralIndirect. In the call, you are able to choose how the GPU should render the data you are passing. In my case I want to render triangles, so I set the MeshTopology parameter as MeshTopology.Triangles.
The weird thing, however, is that on NVIDIA GPU's my mesh seems to render correctly. However, on my AMD GPU, the triangles are all scrambled. When rendering it with MeshTopology.Points on the AMD GPU, it seems that all of the vertices are in the correct spot, but there are a couple of extra vertices that the NVIDIA GPU's don't render.
My question is: could there be some fundamental difference on how AMD and NVIDIA GPUs handle the ComputeBuffers I'm passing into the material's shader? Also, does DrawProceduralIndirect with MeshTopology.Triangles read every three vertices in the ComputeBuffer and form a triangle with them?