Vkd3d-todo

From WineHQ Wiki
Jump to: navigation, search

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.
  • 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.

DXGI

  • Implement d3d12_swapchain_SetFullscreenState().
  • Implement d3d12_swapchain_GetFullscreenState().
  • Implement d3d12_swapchain_ResizeTarget().

TPF validation

  • Interpolation mode is the same for all variables in the register.