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
Philip Rebohle
dd3f4c89ac
[dxgi] Implement gamma control methods for DxgiOutput
2018-04-10 22:07:25 +02:00
Philip Rebohle
ad7f0971cf
[dxgi] Create persistent DxgiOutput object
2018-04-10 22:07:00 +02:00
Philip Rebohle
f13011f487
[dxgi] Implement gamma ramp in presenter
...
Will be used to fake IDXGIOutput::SetGammaControl.
2018-04-10 20:44:55 +02:00
Philip Rebohle
41132b8c13
[dxgi] Re-implement presentation shaders in GLSL
2018-04-10 18:46:39 +02:00
Philip Rebohle
f6c6f5eb1f
[general] Updated README
...
Fixed a typo + minor fixes.
2018-04-10 17:10:47 +02:00