Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/HansKristian-Work/vkd3d-proton.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-10vkd3d: Rename inline UBO data fetch helper.HEADmasterHans-Kristian Arntzen
It's not inline UBO anymore, so slightly misleading. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10vkd3d: Hoist out loop for dstSet in gather query implementation.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10vkd3d: Remove redundant check for creating swapchain user descriptors.Hans-Kristian Arntzen
We don't need to create a descriptor set or pool anymore since we rely on push descriptors. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10vkd3d: Remove BINDLESS_SET_AUX_BUFFER references.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10vkd3d: Always enable RAW_VA sets.Hans-Kristian Arntzen
BDA is required now, so we never have to consider the fallback scenarios. Remove RAW_VA root signature bindings as well to clean things up further. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10meta: Mark VK_KHR_push_descriptor as required.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10vkd3d: Replace all meta shaders with push descriptors.Hans-Kristian Arntzen
Massive cleanup. :) Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10vkd3d: Rewrite push descriptor and inline UBO handling for root sigs.Hans-Kristian Arntzen
Make push descriptors a required feature. It's widely supported now that amdvlk enabled it. The min spec of push descriptors is 32 descriptors which means we never have to fall back. The D3D12 spec supports 32 root descriptors. When we have that many root descriptors, we never risk running out of push constant space, so there won't be a need for fallback UBO. Tweak the hoisting logic a little bit to make sure we never overflow the 32 push desc min-spec. Replace inline UBO (not compatible with push descriptors) with push UBO for fallback data. This path should basically never be hit anyways. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10vkd3d: Add scratch pool for upload data.Hans-Kristian Arntzen
To be used for inline UBO replacement. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-10vkd3d: Require VK_KHR_buffer_device_address.Hans-Kristian Arntzen
The old path is completely untested at this point, and I found a bug with root descriptors since we don't do the proper deref to obtain proper VA anymore, so that would have crashed GPUs hard ... Removes a lot of old jank code. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-08dxil-spirv: Update submodule.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-07dxil-spirv: Update submodule.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-07vkd3d: Handle private root signature for mesh shader.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-07vkd3d-shader: Add handling of mesh visibility enums.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-11-07debug: Mark initial descriptor heap as containing NULL descriptors.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-27Revert "vkd3d: Add NO_UPLOAD_HVV workaround on Elden Ring."v2.7Hans-Kristian Arntzen
This reverts commit 53f00dfecc0332495ec899835c1581328a25af85. The assertion that it did not affect GPU perf was wrong after all. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-26vkd3d: Add NO_UPLOAD_HVV workaround on Elden Ring.Hans-Kristian Arntzen
Works around disasterous CPU performance during skeleton animations according to several users, especially on NVIDIA. The game does not seem to benefit from ReBAR on UPLOAD heaps either way. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-26meta: Update meson build version to v2.7.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-26meta: Update CHANGELOG for v2.7.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-20dxil-spirv: Update submodule.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-14vkd3d: Add forced placement initialization on Spiderman Remastered.Hans-Kristian Arntzen
Works around GPU crash on recent NV drivers. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-14vkd3d: Add a workaround to force initial placed transitions.Hans-Kristian Arntzen
Many games seem to get this wrong, since it happens to work on native drivers. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-14vkd3d: Add basic validation of initial placed resource usage.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-14vkd3d: Avoid initial resource transition if ClearRTV/DSV fully covers.Hans-Kristian Arntzen
Right now we unconditionally initialize. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-14vkd3d: Defer resource tracking until we start rendering.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-14vkd3d: Cleanup some mismatching uses of vkd3d_malloc.Hans-Kristian Arntzen
It's just a wrapper, but we should be consistent. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-14ci: Update github actionsJens Peters
Use github-upload-artifact-action v3 and joshua-ashton-gcc-problem-matcher v2. Fixes Node.js 12 deprecation warning.
2022-10-13ci: Use github-checkout-action v3Jens Peters
Fixes Node.js 12 deprecation warning.
2022-10-11vkd3d: Add PREALLOCATE_SRV_MIP_CLAMPS workaround for Halo Infiniteesullivan-nvidia
Halo Infinite currently has a race condition that can result in a GPU fault on NVIDIA hardware. The root cause of this race condition is the application overwriting existing SRV descriptors with a new mip clamp value asynchronously to the applications GPU submission timeline. This is problematic for vkd3d because it requires creating a new VkImageView to represent the SRV with the updated mip clamp value. If this SRV is being created after work has been submitted that accesses it, the GPU may not see the correct descriptor state possibly resulting in a fault. This commit adds the VKD3D_CONFIG_FLAG_PREALLOCATE_SRV_MIP_CLAMPS configuration as a workaround to the race condition. It works by preallocating all the VkImageViews for each possible mip clamp level the application may attempt to create for the resource. Technically this is still a race condition but the end result isn't a GPU fault if the race condition is lost. Instead the shader will just sample from the texture with the previous SRVs mip clamp level rather than the updated one. These are the same outcomes that are possible on RADV without this workaround. Signed-off-by: Eric Sullivan <esullivan@nvidia.com>
2022-10-07vkd3d: Reset current_buffer_index when changing swapchain size.Hans-Kristian Arntzen
If application lowers the count, we might access resources out of bounds later. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-07vkd3d: Consider that CACHED can be an optional memory type.Hans-Kristian Arntzen
Some resources might only expose HOST | COHERENT and not CACHED | COHERENT. If we cannot find a suitable type, just try again immediate with just COHERENT. Never try to fallback allocations on the outside. If we fail to allocate system memory, there is nothing we can do. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-07vkd3d: Handle fallback scenarios where a type mask does not exist.Hans-Kristian Arntzen
If we request DEVICE | HOST_VISIBLE and the driver does not expose the type at all, we'll hit fallback logic that assumes we actually failed to allocate rather than failed to identify a candidate memory type. Attempt fallbacks in the try functions as well if we did not identify a suitable memory type at all. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-06vkd3d-shader: Return -1 for FIRSTBIT_(S)HI when we have to.Georg Lehmann
With the added benefit that vulkan drivers can optimize this to the native dxbc instruction. Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
2022-10-06tests: Improve firstbithi tests.Georg Lehmann
Proves that vkd3d-shader currently doesn't handle the -1 case correctly. The old test didn't show that because the code fxc inserts to convert the index from MSB-first to LSB-first hides the bug. Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
2022-10-05vkd3d: Add another host memory import workaround.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-10-04dxil-spirv: Update submodule.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-23tests: Add missing UAV barrier in test_tgsm.Hans-Kristian Arntzen
Spuriously started failing on NV. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-23dxil-spirv: Update submodule.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-23vkd3d-shader: Reimplement MD5 checksum.Hans-Kristian Arntzen
Reuse the renderdoc implementation directly (MIT license). Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-23vkd3d-shader: Add MD5 implementation pulled from RenderDoc 3rdparty/.Hans-Kristian Arntzen
MIT compatible license. RenderDoc ships this already. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-23vkd3d-shader: Remove unused trace.c code.Hans-Kristian Arntzen
We're aiming to relicense and this is ancient code we cannot track down. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-23tests: Add migration test for checksum algorithm.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-23tests: Add shader-api tests to build system.Hans-Kristian Arntzen
Fix some build issues as well. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-21vkd3d: Add missing descriptor type to local descriptor pools.Philip Rebohle
We're using storage buffers for various internal operations. Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2022-09-21tests: Add TODO for file mapping heap import test.Hans-Kristian Arntzen
This is likely hitting the limitation that even memfd (or whatever wine uses) cannot be imported at the moment. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-21vkd3d: Add some logging for descriptor heap allocations.Hans-Kristian Arntzen
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-21vkd3d: Disable shader caches entirely when capturing.Hans-Kristian Arntzen
Only serves to invalidate existing caches and increases memory pressure unnecessarily. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-17vkd3d: Fix wrong resource used in image -> buffer copy.Hans-Kristian Arntzen
Need to track source here, not dest. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-17vkd3d: Only skip initial layout transition if single subresource.Hans-Kristian Arntzen
write_full_subresource may allow us to transition from UNDEFINED so that we can skip the initial layout transition, but not in the scenario where the resource has multiple subresources. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-09-16vkd3d: Implement VK_EXT_shader_module_identifier.Hans-Kristian Arntzen
Instead of storing SPIR-V in the cache, we can store identifiers instead. Saves 95% storage of the vkd3d-proton cache. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>