GPU Sorting algorithm


I want to use an existing algorithm to implement GPU sorting of my data, for rendering correctly a particle system. Who is using a sorting algorithm?¿

I am trying to use the GPUSort 2.0 algorithm, but it doesn’t work when it is trying to use MRT. Anyone knows this implementation?¿ Do you can used it properly?

Check last ATI SDK (march '06).
There is an example “Render to Vertex Buffer Sort”. Of cource run only with ATI hw (since R2VB).

I will see this, but I have a Nvidia card. Any suggestion?

The sorting is done using bitonic sort. The sorting part of the sample should run fine on Nvidia too, only the rendering requires R2VB.

Yes I know the method, but the source code that you can download doesn’t work (crashes). Do you use it? The example works?

it most likely crashes since the nvidia card doesnt do R2VB (as already mentioned) thus u will need to extract the sort part out of the code + use that ( i assumed it works otherwise why would ati publish it? )

What extensions does R2VB use on ATI hardware?

I’ve used render-2-fbo -> copy-2-pbo -> convert-2-vbo -> render-with-vbo successfully on NVidia hardware, but couldn’t find a PBO-similar extension for ATI?!?!

I haven’t explained correctly. I wonder if someone uses GPUSort source code. It is based on nvidia cards. But when I compile the example, it crashes.

Originally posted by Hampel:
What extensions does R2VB use on ATI hardware?
It’s D3D only.

@Humus: are there any plans to support PBO in the near future? The hardware seems to support it due to R2VB in D3D…

R2VB does not really use PBO. It’s more like binding a texture or a renderbuffer to a vertex array, so you have one less copy (at least conceptually, I don’t know if there is any internal copy involved).

I guess we’ll have to wait until the new object model is complete until we get a similar functionality in OpenGL.