libvkd3d-shader

Finish and fix tessellation shaders (I have some patches but unfortunately a lot of shaders are broken by Nvidia driver bugs - jkucia).

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.

Implement D3D discard.

Import SM4 to GLSL shader translation from wined3d.

TPF validation

Vkd3d-shader generally assumes that Direct3D shader bytecode is valid and doesn't do much validation. It would be nice to have some kind of validation pass. The validation potentially could be optional, e.g. used only in debug builds.

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

DXGI

Implement d3d12_swapchain_SetFullscreenState().

Implement d3d12_swapchain_GetFullscreenState().

Implement d3d12_swapchain_ResizeTarget().

Fix adapter LUIDs in Wine.

Reimplement IDXGIAdapter3::QueryVideoMemoryInfo() on top of VK_EXT_memory_budget. Ideally, Vulkan implementations should return the memory budget based on total system load (memory used by all graphics APIs).

Vulkan

Try to fix detached WSI surfaces after D3D9/D3D11 swapchain (OpenGL) is created for a window with D3D12 swapchain (Vulkan).