Commit Graph

4146 Commits

Author SHA1 Message Date
Joshua Ashton 787a979514 [d3d9] Implement D3D9UserDefinedAnnotation 2022-03-17 11:35:19 +01:00
Joshua Ashton 47b1ab52ce [d3d9] Implement D3D9GlobalAnnotationList 2022-03-17 11:35:19 +01:00
Joshua Ashton 5d54d79865 [d3d11] Use IDXVKUserDefinedAnnotation 2022-03-17 11:35:19 +01:00
Joshua Ashton a010397f34 [util] Move DecodeD3DColor to util
This will be used in the D3D11UserDefinedAnnotation implementation to handle PIX calls which contain a color.
2022-03-17 11:35:19 +01:00
Joshua Ashton d5d5c1a8bc [dxvk] Define IDXVKUserDefinedAnnotation
Something common to share for perf markers between D3D9 and D3D11.

Inherits from the public D3D11 interface.
2022-03-17 11:35:19 +01:00
Joshua Ashton 0bc972697b [d3d11] Fix D3D11UserDefinedAnnotation declaration
Mark it as final too.
2022-03-17 11:35:19 +01:00
Georg Lehmann 2550cff149 [build] Cleanup build system.
No changes except dropping support for msvc before 15.3.
2022-03-17 01:38:58 +00:00
Georg Lehmann f1efc9dc9f [dxso] Emit spirv OpCross if we can. 2022-03-16 19:13:09 +00:00
Georg Lehmann 630fee59fc [dxso] Implement zerowins for Lerp.
Fixes #2545.
2022-03-16 19:13:09 +00:00
Joshua Ashton 1f88ee595f [d3d9] Don't expose D32 format
Not supported anywhere except REF device it seems... *sigh*

Supercedes: #2547
2022-03-16 19:11:16 +00:00
Philip Rebohle 4f8da62c34
[dxvk] Fix color write mask normalization
Previously we'd set too many bits by accident here. Also, we should
not modify partial write masks to include unnecessary bits. Only do
this if we can actually promote to a full write mask for consistency.
2022-03-16 19:31:37 +01:00
Liam Middlebrook f92c6ae859 [dxgi] Add DXVK_ENABLE_NVAPI envvar
Add a new environment variable DXVK_ENABLE_NVAPI as an environment-level
override for 'nvapiHack'. This will allow for DLSS (and other
NvAPI-backed features) to be available without the user manually writing
a configuration file, allowing for more seamless integration with
Proton's launch script.
2022-03-16 13:06:25 +01:00
Robin Kertels 115385d1d9 [d3d9] Update buffer seq number in FlushBuffer
How did I miss this?!
2022-03-15 01:24:54 +00:00
Robin Kertels 5f4fc56226 [d3d9] Update texture sequence number AFTER using it 2022-03-13 17:13:00 +00:00
Robin Kertels a6357a254d [d3d9] Fix CS thread synchronization for directly mapped buffers 2022-03-13 17:13:00 +00:00
Philip Rebohle 9eb2393d44
[dxvk] Normalize color write masks for non-RGBA formats 2022-03-13 16:24:53 +01:00
Philip Rebohle 4c429f044f
[util] Add another weeb game to the list of workarounds
Sophie is apparently D3D9 an we already have Lydie and Suelle in there,
so it's just this on missing from that series.
2022-03-13 05:38:06 +01:00
Philip Rebohle caa83247d9
[d3d9] Mark backend image as shared for shared resources
Otherwise, the backend may not transition the image to the correct
layout after each submission.
2022-03-13 02:32:56 +01:00
Robin Kertels bd1a2aa5a1 [dxvk] Force dedicated allocation for exportable images
The Nvidia driver does not set prefers-/requiresDedicatedAllocation
for exportable images on its own.

This makes DXVK ignore the dedicated allocation struct ptr
which also contains VkExportMemoryAllocateInfo or
VkImportMemoryWin32HandleInfoKHR.
2022-03-13 00:43:41 +01:00
Philip Rebohle 59e3c96976
[d3d9] Fix texture formats that can be exported 2022-03-12 22:24:05 +01:00
Derek Lesho 1d1d8adee6
[d3d9] Fix shared handle check for exporting images
Co-authored-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2022-03-12 21:35:42 +01:00
Philip Rebohle c87660480d
[d3d11] Reimplement R11G11B10 UAV clears without R32 views 2022-03-12 16:23:42 +01:00
Philip Rebohle ee28f145dc
[d3d11] Explicitly handle R32-compatible UAV formats 2022-03-12 16:23:39 +01:00
Derek Lesho 6640cc350c
[d3d9] Add support for shared IDirect3DTexture9 resources. 2022-03-12 16:23:06 +01:00
Derek Lesho 48046e009c
[d3d11] Add support for shared ID3D11Texture2D resources. 2022-03-12 16:23:06 +01:00
Derek Lesho f9d94c82a5
[util] Add helpers for shared resource metadata access. 2022-03-12 16:23:06 +01:00
Derek Lesho 02d3e0d31f
[dxvk] Add shared handle access to DxvkImage memory.
Based off preliminary work from Josh.
2022-03-12 16:23:06 +01:00
Derek Lesho b5014401e7
[dxvk] Enable VK_KHR_EXTERNAL_MEMORY_WIN32 if available. 2022-03-12 16:23:03 +01:00
Philip Rebohle 5d4c8a6b51 [dxso] Fix ExpP instruction on Shader Model 2+ 2022-03-11 22:44:18 +00:00
Joshua Ashton 7151fbd598 [dxvk] Use new [[fallthrough]] attribute 2022-03-10 00:47:38 +01:00
Joshua Ashton b96f65be31 [dxbc] Use new [[fallthrough]] attribute 2022-03-10 00:47:38 +01:00
Joshua Ashton 63bd41f785 [d3d11] Add fallthrough comment to PickFormats
Silences a warning
2022-03-10 00:47:38 +01:00
Joshua Ashton dc6c350cf2 [d3d9] Add fallthrough comment to SetRenderState
Silences a warning
2022-03-10 00:47:38 +01:00
Joshua Ashton f4ab14cafa [dxso] Fix potential fallthrough in RasterizerOut 2022-03-10 00:47:38 +01:00
Joshua Ashton a5b0f2898a [dxso] Fix ExpP fallthrough 2022-03-10 00:47:38 +01:00
Joshua Ashton b2d96ee087 [d3d9] Fix fallthroughs in PickFormats 2022-03-10 00:47:38 +01:00
Joshua Ashton e9b0d5d716 [build] Enable -Wimplicit-fallthrough
I got bit by this in D3D9.
2022-03-10 00:47:38 +01:00
Joshua Ashton 53b9a723ac [d3d9] Set initial dirty state flags
We had a bug where initial state values caused the data to not get sent to the backend.

Let's fix that going forward and dirty everything we possibly can on device creation.
2022-03-09 23:33:12 +00:00
Joshua Ashton d4d4f0ca18 [d3d9] Fix default initialization of some state values
If we end up being the same as what we are, we don't dirty initially.
2022-03-09 23:33:08 +00:00
Philip Rebohle 89b1f025eb
[d3d10] Forward OpenSharedResource to D3D11 implementation
Trivial since the requested IID is passed by the application.
2022-03-04 19:13:30 +01:00
Philip Rebohle 23eead9e99
[meta] Release 1.10 2022-03-04 17:15:51 +01:00
Philip Rebohle b774d4dbea
[meta] Update README 2022-03-04 16:32:33 +01:00
Oschowa bb178baaf1 [util] Enable cached vertex and index buffers for The Evil Within
Large performance win.
2022-03-04 02:19:17 +01:00
Philip Rebohle f14bccc8c3
[util] Use CPU-cached constant buffers for Anno 1800
Sigh.
2022-03-03 17:33:14 +01:00
Philip Rebohle 1b196c24a4
[dxvk] Invalidate buffer in clearBuffer if possible 2022-03-01 21:39:35 +01:00
Philip Rebohle 4c0df63e2d
[meta] Update example configuration file 2022-02-28 23:39:55 +01:00
Philip Rebohle 5822a8de9f
[util] Enable cached vertex and index buffers for FFXIV
Fixes some weird performance issues on the Garlemald map. Doesn't seem
to affect performance in other areas.
2022-02-28 23:33:27 +01:00
Philip Rebohle 2bceeff5f2
[d3d11] Replace apitrace mode option with something more granular
And enable it only for vertex and index buffers in Nier Replicant.
2022-02-28 22:44:10 +01:00
Robin Kertels b42c07253e [d3d9] Fix sysmem readback 2022-02-24 07:49:55 +00:00
Robin Kertels a81c653b42 [d3d9] Fix synchronization after readback 2022-02-22 21:49:28 +00:00