mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-06 20:58:37 +01:00
Updated Developer guidelines (markdown)
parent
6c94d517e7
commit
3a52b47bd2
1 changed files with 1 additions and 1 deletions
|
@ -13,7 +13,7 @@ Note that this page is written for DXVK 2.6 and later. Older versions may behave
|
||||||
- Do not compile shaders "on demand", i.e. just before they are first used in a draw. Doing so **will** cause stutter that is more severe than on native D3D11 drivers.
|
- Do not compile shaders "on demand", i.e. just before they are first used in a draw. Doing so **will** cause stutter that is more severe than on native D3D11 drivers.
|
||||||
- Do not use stream output. DXVK supports this feature, but it is significantly less efficient than compute shaders on our implementation.
|
- Do not use stream output. DXVK supports this feature, but it is significantly less efficient than compute shaders on our implementation.
|
||||||
- Do not use class linkage. DXVK does not support this feature.
|
- Do not use class linkage. DXVK does not support this feature.
|
||||||
- In shader code, avoid unrolling loops. Excessive unrolling increases compile times and makes it harder for Vulkan drivers to optimize.
|
- In shader code, avoid unrolling large loops or loops with high iteration counts. Excessive unrolling increases compile times and makes it harder for Vulkan drivers to optimize.
|
||||||
|
|
||||||
## Constant buffers
|
## Constant buffers
|
||||||
- Use `*SetConstantBuffers1` to bind sub-ranges of a larger constant buffer. This is by far the fastest path on our implementation. Ideally, only map the buffer with `MAP_WRITE_DISCARD` a few times per frame and write as much data as possible at once, but if that is not viable, using `MAP_WRITE_NO_OVERWRITE` between draws is still good.
|
- Use `*SetConstantBuffers1` to bind sub-ranges of a larger constant buffer. This is by far the fastest path on our implementation. Ideally, only map the buffer with `MAP_WRITE_DISCARD` a few times per frame and write as much data as possible at once, but if that is not viable, using `MAP_WRITE_NO_OVERWRITE` between draws is still good.
|
||||||
|
|
Loading…
Add table
Reference in a new issue