Source

Branch

1/ @Meetem4

@NOTimothyLottes

I wonder is there explainable perf and algorithmic different between atomicAdd on uint cell vs incrementing a buffer counter (for append/consume buffer)

2/ @NOTimothyLottes

@Meetem4

So I don’t use the “fixed function” atomic counters (which are going to be emulated likely with global atomics), nor do I use the “fixed function” append or consume of graphics. However …

3/ @NOTimothyLottes

@Meetem4

Some platforms probably optimized append and consume by parallelizing the global atomics to multiple L2 partitions (had parallel counters). Which of course one can do in software too.

4/ @NOTimothyLottes

@Meetem4

And at least AMD traditionally had GDS which could be used, but that is the great serializer, so not sure if that is wise for huge GPU appending (multiple append queues is probably better, in theory)

5/ @Meetem4

@NOTimothyLottes

Well, yeah, I was expecting some form of optimization here, because the counter is only valid for the current thread, according to D3D specification, which raises the suspicion that some higher level optimization can be applied