Vkd3d-todo
From WineHQ Wiki
libvkd3d-shader release
- Finish API for flexible shader parameters.
- Add API for enabling optional features/extensions, e.g. SPIR-V extensions, GLSL extensions.
- Avoid artificial limits in the API, e.g. VKD3D_SHADER_MAX_UNORDERED_ACCESS_VIEWS.
- Should shader translation to GLSL use the same exported function as SPIR-V translator?
- Should DXIL use the same exported function as TPF (DXBC)?
- Consider renaming vkd3d_shader_compile_dxbc() to vkd3d_shader_compile_tpf() (Tokenized Program Format).
- Consider addding tests for OpenGL SPIR-V.
- Review API for consistency and extensibility.
- Add support for resource arrays.
- Add or consider support for Shader Model 5.1 and 6.0+.
- Add or consider support for UAV in vertex processing shader stages.
- Finish API for scanning/gathering info from shaders (registers used, bindings used, parameters used, required limits, extensions).
libvkd3d
- Re-implement descriptor heaps on top of VK_EXT_descriptor_indexing.
- Try to use VK_EXT_buffer_device_address for GPU addresses (re-implement root descriptors).
- Implement ID3D12Resource::ReadFromSubresource() for Metro Exodus.
- Emulate wait-before-signal.
- Emulate NULL SRVs and UAVs.
- Add tests for out-of-bounds access with vertex buffers.
- Improve multi-queue support.
- Fix all Vulkan validation errors.
- Test ClearRTV() with UINT formats.
- Implement UAVs in vertex processing shader stages.
- Implement support for multiple viewports.
- Implement ID3D12GraphicsCommandList::SetPredication().
- Test and fix copying between BC and other compatible formats.
- State decay for resources and queue ownership transfer for resources.
- Add tests for "lod" shader instruction.
- Add tests for sample_d and sample_b instructions.
- Add tests for "bufinfo" instruction.
- Add tests for bufinfo and resinfo with NULL SRV and UAV descriptors.
- Add a test for early depth-stencil (mostly done - jkucia).
- Add a test and fix relative vertex input addressing.
- Raytracing?
- DirectML?
libvkd3d-shader
- Add support for capturing components with stream output.
- Add support for unlimited registers (SM5.1).
- Finish and fix tessellation shaders.
- Import SM4 to GLSL shader translation from wined3d.
- Start working on DXIL.
- Add foundations for common shader tests. Write a shader test one time and run it on D3D10, D3D11, D3D12, Vulkan and OpenGL on Linux and Windows (mostly done - jkucia).
- Add tests for OpenGL atomic counters.
TPF validation
- Interpolation mode is the same for all variables in the register.
DXGI
- Implement d3d12_swapchain_SetFullscreenState().
- Implement d3d12_swapchain_GetFullscreenState().
- Implement d3d12_swapchain_ResizeTarget().