Commit Graph

978 Commits

Author SHA1 Message Date
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
Philip Rebohle 56ce794438
Merge commit '87d14fb' 2018-04-14 23:23:27 +02:00
Philip Rebohle 87d14fb57f
[d3d11] Report TYPED_UAV only if both TBs and SIs are supported 2018-04-14 23:20:35 +02:00
Philip Rebohle a6406e3b60
[dxvk] Recreate swap chain on presentation failure 2018-04-14 22:45:30 +02:00
Philip Rebohle 5fa8174816
[tests] Add D3D11 format tests
Small test program that lists all supported features for D3D11 formats.
2018-04-14 16:09:53 +02:00
Philip Rebohle f07f610b6a
[d3d11] Improve format support queries
- Do not report MIP_AUTOGEN if the image format cannot
  be used as a color attachment
- Do not report SAMPLE_COMPARISON and GATHER_COMPARISON
  if the DXGI format has no corresponding depth format
- Only report image-related features if the image format
  can actually be used as a sampled image
2018-04-14 16:07:01 +02:00
Philip Rebohle 320cebb8f9
[dxvk] Improved memory allocation debug output 2018-04-14 13:03:14 +02:00
Philip Rebohle 8d3e60c2f1
[dxgi] Cosmetic changes 2018-04-14 12:02:55 +02:00
Philip Rebohle a6767ebd52
[d3d11] Improved debug output of D3D11DeviceContext methods 2018-04-14 11:45:31 +02:00
Philip Rebohle 8dfe7088fd
[dxvk] Fixed silly typo 2018-04-13 17:06:58 +02:00
Philip Rebohle 15fca0b0b1
[dxvk] Improved debug output when resource creation fails 2018-04-13 17:03:35 +02:00
Philip Rebohle ded6dec7eb
[dxgi] DxgiVkPresenter: use Microsoft-style API 2018-04-13 13:57:29 +02:00
Philip Rebohle 5d7c83855e
[dxgi] Use 1D texture to implement the gamma lookup table
This allows us to abuse hardware texture filters for linear
interpolation. Should fix an issue with the latest Nvidia
beta drivers.
2018-04-13 13:47:15 +02:00
Philip Rebohle 4a0c9dbaba
[d3d11] Validate texture sample count
Fixes incorrect return values in case a game tries to create
a texture with an unsupported number of samples.
2018-04-13 13:46:45 +02:00
Philip Rebohle ebf474ae9e
[dxvk] Enable VK_KHR_sampler_mirror_clamp_to_edge
Fixes validation errors in The Witcher 3.
2018-04-13 13:46:20 +02:00
Philip Rebohle 8508994a63
[d3d11] Cap mip level count for textures and views
Some games do not compute the number of mip levels of
a texture or texture view correctly, so we should work
around this by capping it to the highest possible value.
2018-04-12 23:42:11 +02:00
Philip Rebohle 56a1433d3f
[d3d11] ClearUnorderedAccessViewUInt: Create temp view if necessary
If this method is used to clear a view with a floating point format,
we need to create a compatible view with an integer format in order
to clear the resource with the correct value. Fixes some calls to
this function in Rise of the Tomb Raider and other games.
2018-04-12 23:31:15 +02:00
pchome f806c8eafc [dxgi] Use GetMonitorInfoW function explicitly (#271)
No `std::mbstowcs` string conversion needed than.
W/o this change I have different output when running `dxgi-factory.exe` compiled with MinGW:
* `Output 0:`
  ```
  \\.\DISPLAY1 (default)
  \\.\DISPLAY1 (DXVK MinGW)
  \            (DXVK winebuild)
  ```

With this patch all three variants are identical (`\\.\DISPLAY1`)

p.s. same problem in dxgi_adapter.cpp, but `deviceProp.deviceName` is vulkan structure parameter (char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]).
2018-04-12 20:12:48 +02:00
Philip Rebohle db541d188f
[dxgi] Added static format mapping table 2018-04-12 17:49:14 +02:00
Philip Rebohle 3405b89494
[dxgi] Rename and move DXGI format lookup related structures
This is part of a major refactoring process regarding DXGI->Vulkan
format conversions. Since we don't patch format lookup tables any
longer, we can create a global lookup table.
2018-04-12 15:36:01 +02:00
Philip Rebohle adb1789571
[dxbc] Fixed incorrect result vector dimension for OpImageQuerySize 2018-04-12 13:57:15 +02:00
Philip Rebohle f5679211cd
[dxgi] Re-implement gamma control functions 2018-04-12 13:38:22 +02:00
Philip Rebohle 654e9e6fd8
[dxgi] Re-enable strong reference to DxgiAdapter in DxgiOutput 2018-04-12 01:51:28 +02:00
Philip Rebohle c9c3bc12cc
Revert "[dxgi] Create persistent DxgiOutput object"
This reverts commit ad7f0971cf.
Causes crashes in Overwatch due to weird refcount behaviour.
2018-04-12 01:48:57 +02:00
Philip Rebohle 3c6eb91c63
[dxgi] Remove Output reference from DxgiSwapChain 2018-04-12 01:28:44 +02:00
Philip Rebohle c88170966f
[dxgi] Remove gamma control methods from DxgiOutput 2018-04-12 01:15:40 +02:00
Philip Rebohle 015e67fc7c
[dxgi] Replaced ugly pointer cast by more reasonable code 2018-04-12 00:45:23 +02:00
Philip Rebohle ef4a3c5bfc
[d3d11] Use meta clear for ClearUnorderedAccessView* methods 2018-04-11 23:39:12 +02:00
Philip Rebohle 9d84e1bfaa
[dxvk] Implement clearBufferView and clearImageView 2018-04-11 23:13:34 +02:00
Philip Rebohle cce578d67a
[dxvk] Increase workgroup size for buffer clear shaders 2018-04-11 23:12:55 +02:00
Philip Rebohle 2f7dcd2caf
[dxgi] Disable gamma curve in presenter
Causes regressions in many games for unknown reasons.
2018-04-11 20:55:03 +02:00
Philip Rebohle 021ea64103
[dxbc] Remove Nvidia driver version check
Apparently this causes a regression in Overwatch for some.
2018-04-11 19:44:45 +02:00
Philip Rebohle 140dc27ea3
[dxvk] Create compute pipelines for meta clear ops 2018-04-11 18:58:01 +02:00
Philip Rebohle 7c1919eaa1
[dxvk] Added missing shader files 2018-04-11 18:57:31 +02:00
Philip Rebohle ac8447b32e
[dxvk] Add separate clear shaders for array views
Creating one shader per image view type may help in case we
get an already compatible image view from the D3D11 application.
2018-04-11 17:16:18 +02:00
Philip Rebohle 676b0cb476
[dxvk] Added DxvkMetaClearObjects stub 2018-04-11 17:05:12 +02:00
Philip Rebohle 9970dfaeca
[dxvk] Add format info flag for integer formats 2018-04-11 16:21:59 +02:00
Philip Rebohle 6a0ab19049
[dxvk] Added meta shaders for image/buffer clear operations
The D3D11 ClearUnorderedAccessView* and ClearView functions
will have to be emulated using compute shaders rather than
clear operations, since Vulkan clear operations do not take
image views and their format into account.
2018-04-11 13:07:04 +02:00
Philip Rebohle 4797645bd2
[dxvk] Removed unused DxvkOptions 2018-04-11 13:06:43 +02:00
Philip Rebohle 8ea17e7a25
[dxbc] Implemented Nop instruction
Required for Metal Gear Solid V.
2018-04-11 01:49:39 +02:00
Philip Rebohle f3544cc8e1
[dxbc] Fix __GL_NextGenCompiler check... 2018-04-11 01:17:07 +02:00
Philip Rebohle 3ff437ddbe
[dxbc] Re-enable Nvidia workarounds if __GL_NextGenCompiler is '0'
Fixes potential regressions when using the old SPIR-V compiler.
2018-04-11 00:26:42 +02:00
Philip Rebohle 1b6442b859
[dxbc] Disable Nvidia-specific workarounds for 396.18 and above 2018-04-11 00:20:24 +02:00
Philip Rebohle a2f96f9728
[dxgi] Remove unnecessary debug output 2018-04-10 22:10:32 +02:00