Philip Rebohle
2f20a61342
[dxbc] Map 2D MS shader resource views to 2D MS Array views
...
Works around a game bug in Dragon Age: Inquisition, which binds
an MS image to a non-MS resource slot. Closes
2018-04-22 18:27:01 +02:00
Philip Rebohle
cd63ff6d76
[dxbc] Fix operand type of resinfo_rcp_float division
...
Fixes invalid SPIR-V generated for this instruction.
2018-04-22 16:43:16 +02:00
Philip Rebohle
f30923718f
[dxbc] Fix texture component count for OpImageQueryLod
...
Not a bug, but we don't need the extra component when dealing with
array images.
2018-04-22 14:08:01 +02:00
Philip Rebohle
0bf97993c6
[dxbc] Fix layer count in resinfo instruction
...
For non-layered types, this instruction is supposed to return 0, not 1.
2018-04-22 08:34:07 +02:00
Philip Rebohle
f71f527b4d
[d3d11] Prevent mapping of depth-stencil textures
...
We currently don't support this, and copying data back and forth
with the wrong image aspect set crashes the RADV driver.
2018-04-21 20:34:41 +02:00
Philip Rebohle
dcb5b2a20c
[dxbc] Map 1D and 2D textures to their respective array type v2
...
We need to adjust the texture coordinate vectors as well, so that
some instructions continue to work properly.
2018-04-21 18:09:43 +02:00
Philip Rebohle
0318cc730a
Revert "[dxbc] Map 1D and 2D textures to their respective array type"
...
Broken. Requires some prep work in the shader compiler.
2018-04-21 15:38:39 +02:00
Philip Rebohle
906355b0da
[dxbc] Map 1D and 2D textures to their respective array type
...
As with cube textures, some games think it's a good idea to bind a
non-array view to a slot that expects an array view or vice versa.
Fixes clouds not appearing in TrackMania 2 Stadium (#191 ).
2018-04-21 14:15:10 +02:00
Philip Rebohle
0558a3b2c5
[d3d11] Fix incorrect cube face count calculation
2018-04-21 14:14:42 +02:00
Philip Rebohle
fd1c50d8d8
[dxbc] Fixed incorrect shader resource slot computation
2018-04-21 14:01:27 +02:00
ZeroFault
52f0d853c0
[d3d11] add some resource validation for copying resources ( #305 )
...
* [d3d11] add some resource validation for CopyResource and CopyResourceSubregion
combine if statement
* [d3d11] added copy extents validation for compressed formats
* correct return values
* fix incorrect logic operators
* set valid copy extents when possible
* [d3d11] Clamp copy region in CopySubresourceRegion
* [dxvk] Add helper methods to deal with block-compressed images
* [d3d11] Clean up validation in CopySubresourceRegion
* [d3d11] Improve error reporting and validation in CopyResource
* [d3d11] Fix inconsistent error messages
2018-04-20 23:35:29 +02:00
Philip Rebohle
50f1cf007d
[dxbc] Implement precise flag
...
May fix depth precision in Skyrim SE (issue #189 ).
2018-04-20 23:32:51 +02:00
Philip Rebohle
f52cc3859b
[general] Use non-default wine prefix in build script
2018-04-20 17:28:45 +02:00
Philip Rebohle
1ed1c43431
[d3d11] Wire up D3D11VkInteropSurface to D3D11Texture*D classes
2018-04-20 11:12:54 +02:00
Philip Rebohle
81a0fa4805
[d3d11] Implemented IDXGIVkInteropSurface for common textures
2018-04-20 10:38:39 +02:00
Joshua Ashton
90e7fe6791
Make hashes use correct types and fix narrowing warnings in spirv module. ( #307 )
...
* Fix narrowing warnings in spirv_module relating to enum's default width on x64
* Make hashes of states use correct types without casting.
* Fix narrowing conversion in d3d11_sampler.cpp
2018-04-20 01:10:58 +02:00
Philip Rebohle
62b0e34a73
[d3d11] Implement IDXGIVkInteropDevice for D3D11Device
2018-04-20 00:19:03 +02:00
Philip Rebohle
c2854e1fb9
[dxgi] Added IDXGIVkInteropSurface interface
2018-04-19 20:13:53 +02:00
Philip Rebohle
478a87f6d2
[dxgi] Added IDXGIVkInteropDevice interface
2018-04-19 15:46:57 +02:00
Philip Rebohle
a6a22cd00a
[dxvk] Export DxvkDeviceQueue from DxvkDevice
...
Access to the Vulkan queues provided by the DXVK device
is required for external Vulkan libraries to work.
2018-04-19 15:42:48 +02:00
Joshua Ashton
cfd3723221
Workaround for C++ STD not being set on MSVC/Visual Studio 2017 ( #304 )
2018-04-19 11:47:17 +02:00
Philip Rebohle
8eb78591a0
[dxbc] Scan pixel shader output register type at declaration time
...
Fixes invalid shaders being generated in the Blacksmith demo on
some GPUs. Works around a possible issue in the output signature
reader.
Commit #1000 , yay.
2018-04-18 21:14:34 +02:00
Philip Rebohle
8125d53e58
[dxvk] Remove std::clamp usage
...
Breaks outdated compilers.
2018-04-18 17:49:11 +02:00
Philip Rebohle
adb0f5e16b
[dxgi] DxgiSwapchain: Check whether window is valid
...
Fixes a GPU hang when closing Dark Souls 3 as well as similar
undesired behaviour in other games that continue to use the
DXGI swap chain after the window has been destroyed.
2018-04-18 17:30:46 +02:00
Philip Rebohle
bb3e3c9e4f
[dxgi] GetDisplayModeList: Report DXGI_MODE_SCALING_UNSPECIFIED
...
This is what happens on Windows 10. In addition, we might have
to add CENTERED and STRETCHED entries for non-native modes.
2018-04-18 16:04:17 +02:00
Philip Rebohle
ffe3028285
[dxgi] GetDisplayModeList: Sort display mode list
...
Some games, including Dark Souls 3, rely on display modes
being returned in a specific order. This emulates Windows
10 behaviour.
2018-04-18 15:33:56 +02:00
Philip Rebohle
01061e43aa
[dxgi] GetDisplayModeList: Do not report modes as stretched
...
This is more in line with what Windows does. Games should now be
able to list more than just the monitor's maximum resolution again.
2018-04-18 15:33:15 +02:00
Philip Rebohle
05a96e96bb
[dxvk] Fix Nvidia driver version reporting
2018-04-17 23:34:16 +02:00
Philip Rebohle
669df2146b
Merge branch 'master' of https://github.com/doitsujin/dxvk
2018-04-17 22:23:46 +02:00
Philip Rebohle
fcdba67b88
[d3d11] Implement 2D<->3D image copies in CopySubresourceRegion
2018-04-17 22:22:49 +02:00
Vesim
b82ae16f8a
[dxbc] Moved all operators in dxbc_names to dxvk namespace ( #296 )
2018-04-17 17:33:07 +02:00
Philip Rebohle
9a8263f465
[dxvk] Implement vertex binding divisors
...
Uses VK_EXT_vertex_attribute_divisor when available.
2018-04-17 17:24:16 +02:00
ZeroFault
a248ae985d
[d3d11] nullptr check on Begin and End ( #295 )
2018-04-17 13:57:39 +02:00
Philip Rebohle
d043753e7c
[general] Fix issue with spaces in setup script
...
Closes #294 .
2018-04-17 12:09:33 +02:00
Philip Rebohle
388fe02158
[hud] Added frametime graph
...
Enable with DXVK_HUD=frametimes.
2018-04-17 12:03:03 +02:00
Philip Rebohle
a4f9e5f0d5
[hud] Added line renderer
2018-04-17 10:01:06 +02:00
Philip Rebohle
8bfaae9350
[hud] Rename renderText -> render
2018-04-17 09:21:40 +02:00
Philip Rebohle
e38e1347d3
[hud] HudTextRenderer -> HudRenderer
...
Maintaining one class should be easier than creating
multiple renderer classes and having to switch between
them.
2018-04-17 09:20:18 +02:00
Philip Rebohle
75c928fc87
[dxbc] Remove is-bound check for constant buffer reads
...
We do not have to do this anymore since we'll bind a large
enough dummy buffer. Considerably reduces code size in shaders
which access a large number of shader constants.
2018-04-16 23:40:48 +02:00
Philip Rebohle
6f3454842f
[dxvk] Increase dummy buffer size to max uniform buffer size
2018-04-16 23:40:41 +02:00
Philip Rebohle
327cd5ff30
[dxvk] Enable VK_EXT_vertex_attribute_divisor if available
...
We will use this extension in order to implement vertex
binding divisors other than 1 for per-instance attributes.
Will be *required* as soon as support by wine and Vulkan
drivers is widely available.
2018-04-16 17:33:55 +02:00
Philip Rebohle
6e93e55762
[general] Update Vulkan headers
2018-04-16 17:31:39 +02:00
Philip Rebohle
98b8d41016
[dxbc] Write shader name to the generated SPIR-V
...
Might help identifying shaders in debugging tools such as Renderdoc.
2018-04-15 21:00:08 +02:00
Philip Rebohle
08777e2c0e
[dxvk] Change stat couter type to uint64_t
2018-04-15 20:59:41 +02:00
Philip Rebohle
af19bba048
[dxgi] Remove support gamma-related ScaleAndOffsetSupported
...
Some games, including Heroes of the Storm (#287 ), do not set
the values correctly so it's better to ignore them altogether.
2018-04-15 20:12:41 +02:00
Philip Rebohle
256645724b
[dxvk] Destroy old swap chain before creating a new one
...
We no longer use the 'oldSwapchain' member in the swap chain description
to replace an existing swap chain, but rather destroy it altogether and
create a new swap chain. While this is less than optimal, it might help
solve some swap chain-related issues such as #277 .
2018-04-15 15:36:10 +02:00
Philip Rebohle
24f0528b6f
[dxvk] Print memory heap size in megabytes
2018-04-15 10:53:46 +02:00
ShadowsFriend
d1206a8d9d
[dxvk] Added memory information to adapter info ( #279 )
2018-04-15 10:22:32 +02:00
Philip Rebohle
31ed6e5cd3
[dxvk] Move render target set comparison to DxvkRenderTargets
2018-04-15 03:01:52 +02:00
Philip Rebohle
d523405a5a
[dxvk] Implement bindRenderTargets method
...
An alternative to manually creating a framebuffer object and binding
it via bindFramebuffer. Future optmizations can use this to bring
down the number of redundant render pass changes.
2018-04-15 01:09:53 +02:00