dxmt icon indicating copy to clipboard operation
dxmt copied to clipboard

WIP: Fence

Open 3Shain opened this issue 6 months ago • 3 comments

(work in progress)

3Shain avatar Jun 25 '25 02:06 3Shain

I'm curious: what's making you go for manual tracking when you're implementing an API with automatic barriers on top of an API with automatic barriers?

K0bin avatar Jun 25 '25 02:06 K0bin

I'm curious: what's making you go for manual tracking when you're implementing an API with automatic barriers on top of an API with automatic barriers?

  1. A prerequisite for resource suballocation. Currently every buffer allocation takes a minimum of 4kB (1 page) memory, which is not ideal especially on WoW64, thus to suballocate from a large buffer is desirable. However, with automatic tracking, it can create false dependency when two encoder read from/write to non-overlapping ranges of the same buffer.
  2. make Begin/EndUAVOverlap implementation possible
  3. it's faster, so why not?

3Shain avatar Jun 25 '25 03:06 3Shain

The sub allocation one is definitely a good point. I always thought that the Metal 3 fence API would be too much of a mess to manage.

K0bin avatar Jun 25 '25 12:06 K0bin