Paul Gofman
59441b1ff5
[dxgi] Also support use after free in IDXGISwapChain::SetFullscreenState()
2022-08-09 23:10:50 +02:00
Joshua Ashton
8580bb32ca
[vulkan] Only define VK_USE_PLATFORM_WIN32_KHR on Windows
2022-08-09 14:16:50 +01:00
Joshua Ashton
50018de483
[util] Use topath helper for fstreams
2022-08-09 14:16:50 +01:00
Joshua Ashton
5de058e14a
[util] Introduce topath helper
...
Manages converting strings to the right type for paths per-platform
2022-08-09 14:16:50 +01:00
Joshua Ashton
d9000485ea
[util] Add stubs for shared resources on other platforms
2022-08-09 14:16:50 +01:00
Joshua Ashton
8c3a44cac4
[util] Add stubs for GDI functions on other platforms
2022-08-09 14:16:50 +01:00
Philip Rebohle
ab1d629961
[dxvk] Implement lifetime tracking for graphics pipelines
2022-08-09 13:40:58 +02:00
Philip Rebohle
764de6ff82
[dxvk] Add use counter to pipeline libraries
...
And destroy Vulkan pipeline objects once the counter reaches zero.
2022-08-09 13:40:58 +02:00
Philip Rebohle
1f9db49727
[dxvk] Change member order in pipeline manager
...
Ensures that pipelines are destroyed before pipeline libraries.
2022-08-09 13:40:58 +02:00
Philip Rebohle
b97dba3712
[dxvk] Use shader module identifier for subsequent pipeline libary compiles
...
Should further reduce the hit we take from destroying pipeline libraries.
2022-08-09 13:40:58 +02:00
Philip Rebohle
4bc2d713fb
[dxvk] Destroy shader pipeline libraries after initial compile on 32-bit
...
This alone saves ~700 MiB of address space in the Resident Evil 6 main
menu on Nvidia.
2022-08-09 13:40:58 +02:00
Philip Rebohle
915b03ba7b
[dxvk] Add option to control pipeline lifetime tracking
2022-08-09 13:40:58 +02:00
Philip Rebohle
eddbe73ba4
[dxbc] Fix off-by-one error for primitive vertex counts
...
Not sure if it's even possible to use this, but this was clearly a bug.
2022-08-09 03:19:59 +02:00
Philip Rebohle
d6253aeae6
[dxvk] Order descriptors by type and binding
...
Reduces the number of unique descriptor set layouts further,
which may help with descriptor pool usage, and also makes
branching more predictable for the CPU.
2022-08-09 03:19:59 +02:00
Robin Kertels
1fcd5dc0af
[d3d9] Unmap stored shader bytecode
2022-08-08 23:15:21 +01:00
Robin Kertels
49e9ba2ca7
[d3d9] Move d3d9 bytecode into D3D9Shader
...
This reduces the amount of times we copy the bytecode
and actually frees it when the game frees the associated shader.
2022-08-08 23:15:21 +01:00
Robin Kertels
1628b9e63a
[d3d9] Add 64bit implementation for D3D9MemoryAllocator
...
This just uses malloc & free but allows us to use
the same code for D3D9 shader bytecode on 64 bit builds.
2022-08-08 23:15:21 +01:00
Robin Kertels
01fb40423d
[d3d9] Remove some dead debug code
...
Oops.
2022-08-08 23:15:21 +01:00
Robin Kertels
36d8bb77a5
[d3d9] Fix synchronization in UpdateTextureFromBuffer
2022-08-08 23:14:30 +01:00
Robin Kertels
ac1e44f120
[d3d9] Fix typo
2022-08-08 23:14:30 +01:00
Derek Lesho
57dcf73a54
d3d11: Fix shared textures that export both NT and KMT handles.
...
We should always create the DxvkImage with the KMT handle type, so that the call later to openKmtHandle succeeds. Also, don't free sharedHandle when exporting an NT handle.
2022-08-08 23:31:01 +02:00
Philip Rebohle
0ad7a08c49
[dxvk] Get rid of some old debug code for compute pipelines
2022-08-08 18:58:22 +02:00
Philip Rebohle
c392308e6f
[dxvk] Fix spec constant selector test for compute shaders
...
This isn't supported on compute.
2022-08-08 18:54:11 +02:00
Philip Rebohle
7789fd53ff
[d3d9] Use new flat shading state for fixed-function pipelines
2022-08-08 13:34:59 +02:00
Philip Rebohle
8f1024c094
[d3d9] Use new flat shading state for DXSO shaders
2022-08-08 13:34:59 +02:00
Philip Rebohle
dfdb729476
[dxvk] Add SPIR-V pass to decorate variables as flat on demand
2022-08-08 13:34:59 +02:00
Philip Rebohle
a84beae112
[dxvk] Add flat shading field to pipeline state
2022-08-08 13:34:59 +02:00
Philip Rebohle
0adf64f085
[dxvk] Add flat shading parameter to rasterizer state
2022-08-08 13:34:59 +02:00
Joshua Ashton
4f0c217633
[d3d9] Fix recording MultiplyTransform
2022-08-08 03:53:25 +01:00
Philip Rebohle
43df6cfa45
[dxvk] Fix indentation
...
Thanks, VSCode.
2022-08-08 04:50:50 +02:00
Philip Rebohle
2b2c44aa99
[dxvk] Move image view cookie to DxvkResource
2022-08-07 21:24:57 +02:00
Philip Rebohle
4831909656
[d3d9] Enable apitrace mode for The Witcher
2022-08-07 20:04:37 +02:00
Philip Rebohle
a74f8da7b7
[d3d11] Use bindVertexBufferRange whenever possible
2022-08-07 19:03:51 +02:00
Philip Rebohle
97f0d1dfb8
[d3d11] Use bindIndexBufferRange whenever possible
2022-08-07 19:03:51 +02:00
Philip Rebohle
35dde3e1b9
[d3d11] Change how resourece binding treats null resources
2022-08-07 19:03:51 +02:00
Philip Rebohle
897e7816f0
[d3d11] Don't return undefined slices from GetBufferSlice
...
Instead, return a slice with length zero.
2022-08-07 19:03:51 +02:00
Philip Rebohle
08b9b0eb44
[dxvk] Introduce bindVertexBufferRange and bindIndexBufferRange
2022-08-07 19:03:51 +02:00
Philip Rebohle
26d46e7f80
[dxvk] Handle bound buffers with zero size in the backend
2022-08-07 18:45:17 +02:00
Philip Rebohle
d314bee86d
[d3d11] Fix bad signature of various BindToContext methods
2022-08-07 18:44:47 +02:00
Philip Rebohle
45a1587b88
[d3d11] Fix some possible constant buffer binding bugs
2022-08-07 18:44:47 +02:00
Philip Rebohle
2e6a2f1be3
[dxvk] Make shader stage parameter in bindShader a template parameter
2022-08-07 18:44:44 +02:00
Philip Rebohle
29a2cb9a5e
[d3d9,d3d11] Make GetShaderStage functions constexpr
2022-08-07 18:44:44 +02:00
Philip Rebohle
12c2d24d5c
[dxvk] Remove bindResourceView method
2022-08-07 17:59:20 +02:00
Philip Rebohle
69b15b7fe6
[dxvk] Use new resource view binding methods in swapchain blitter
2022-08-07 17:59:20 +02:00
Philip Rebohle
eebcfcf973
[hud] Use new resource view binding methods
2022-08-07 17:59:20 +02:00
Philip Rebohle
1c1958be44
[d3d9] Use new resource view binding methods
2022-08-07 17:59:20 +02:00
Philip Rebohle
28ecf8268d
[d3d11] Use new resource view binding methods
2022-08-07 17:59:20 +02:00
Philip Rebohle
317850e16f
[dxvk] Introduce bindResourceImageView and bindResourceBufferView methods
2022-08-07 17:59:20 +02:00
Philip Rebohle
88bdf2b592
[dxvk] Use vertex extent from vertex binding info
...
Computing this at runtime is fairly expensive, so try to avoid.
2022-08-07 17:58:19 +02:00
Philip Rebohle
6bcb0a0d61
[d3d11] Compute vertex extent in CreateInputLayout
2022-08-07 17:58:19 +02:00