Skip to content

freedreno/replay: Add WSL backend for Windows

Danylo Piliaiev requested to merge Danil/mesa:freedreno/feature/wsl-replay into main

What does this MR do and why?

Drivers for some GPUs may exist only on Windows e.g. for A690. We need replay to work in WSL in order to test if issues are in user-space or in kernel.

Additional -a option is introduced for WSL backend, it controls the base GPU address, which allows to replay captures from MSM or KGSL.

d3dkmthk.h contains only non driver specific structs, private data structs are not defined anywhere public but contain important information for memory allocation and submissions.

Limitations:

  • Same as with KGSL in WSL I allocate the whole memory in a single chunk. I'm not entirely sure the kernel supports user-space iovas.
    • However here the base address space address is configurable.
  • The wait for submission to be executed is done via additional IB that writes a fence.

Merge request reports