Age | Commit message (Collapse) | Author |
|
It's not inline UBO anymore, so slightly misleading.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
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>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
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>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Massive cleanup. :)
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
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>
|
|
To be used for inline UBO replacement.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
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>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
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>
|
|
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>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Works around GPU crash on recent NV drivers.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
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>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Right now we unconditionally initialize.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
It's just a wrapper, but we should be consistent.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Use github-upload-artifact-action v3 and joshua-ashton-gcc-problem-matcher v2.
Fixes Node.js 12 deprecation warning.
|
|
Fixes Node.js 12 deprecation warning.
|
|
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>
|
|
If application lowers the count, we might access resources out of bounds
later.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
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>
|
|
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>
|
|
With the added benefit that vulkan drivers can optimize this to the native
dxbc instruction.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
|
|
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>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Spuriously started failing on NV.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Reuse the renderdoc implementation directly (MIT license).
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
MIT compatible license. RenderDoc ships this already.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
We're aiming to relicense and this is ancient code we cannot track down.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Fix some build issues as well.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
We're using storage buffers for various internal operations.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
|
|
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>
|
|
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Only serves to invalidate existing caches and increases memory pressure
unnecessarily.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
Need to track source here, not dest.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
|
|
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>
|
|
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>
|