Commit Graph

954 Commits

Author SHA1 Message Date
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
Managor 6f4a204419 Added instructions for installing from the easy build script. (#264)
* Added instructions for installing from the easy build script.

* Skipped the packaging part by adding --no-package

* Update README.md

Rephrased some things a bit.
2018-04-10 17:08:04 +02:00
Philip Rebohle a28303c4bd
[dxvk] Optimize binding ID remapping
We don't need to iterate over the full shader code when creating
a new shader module. This optimization may slightly reduce the
initial pipeline creation time.
2018-04-10 12:48:46 +02:00
Philip Rebohle 5d1642af1f
[spirv] Track instruction offset in instruction iterator 2018-04-10 12:48:24 +02:00
Philip Rebohle 1fb22a6022
[dxbc] Refactored opcode controls 2018-04-10 08:01:54 +02:00
Philip Rebohle 5cb65a6c19
[dxbc] Fix sampleinfo_uint instruction 2018-04-09 22:52:59 +02:00
Philip Rebohle d68d62f837
[dxvk] Removed on-disk pipeline cache
Drivers from both major vendors implement their own shader cache
already, and storing a cache per game causes more issues than it
solves. Should fix #261.
2018-04-09 19:38:32 +02:00
Philip Rebohle 8a4e1d11b7
[dxbc] Add missing component count to gs_layer variable type
Fixes an incorrect geometry shader in Overwatch.
2018-04-09 00:20:27 +02:00
Philip Rebohle bd5254f8d3
[d3d11] Fixed compiler errors
Why the hell did my GCC not complain about this earlier?
2018-04-08 22:26:35 +02:00
Philip Rebohle 687ef77860
[dxvk] Enable sample rate shading if needed 2018-04-08 21:49:30 +02:00
Philip Rebohle 797d7ec81d
[dxbc] Enable CapabilitySampleRateShading capability when needed
Fixes SPIR-V validation errors in the Final Fantasy XV benchmark.
2018-04-08 21:06:58 +02:00
Philip Rebohle 4c3e77e9e3
[dxvk] Add missing format info for the *_422_UNORM formats 2018-04-08 20:40:12 +02:00
Philip Rebohle e38cc4a0e0
[dxbc] Implement support for SV_PrimitiveID
Fixes some geometry/tessellation shaders in The Witcher 3.
2018-04-08 18:25:44 +02:00
Philip Rebohle 83a0eda4f6
[dxgi] Fixed packed 16-bit format mappings 2018-04-08 15:19:26 +02:00
pchome acaf6c9e87 [d3d11] Fix compilation with WINE headers (#247)
All this structures are defined in WINE headers but `D3D11_FORMAT_SUPPORT2`.
2018-04-07 14:02:57 +02:00
pchome 62b99c9bd2 [util] Fix compilation with WINE headers (#246)
* [util] Define typeof keyword for WINE guiddef.h

GCC: `-std options disable certain keywords`
https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html

MinGW: `#define __uuidof(type) __mingw_uuidof<__typeof(type)>()`
WINE: `#define __uuidof(type) __wine_uuidof<typeof(type)>()`

* [util] Fix compilation with WINE headers

Overall definitions are the same but `__wine_` prefix used in .

MinGW: _mingw.h + guiddef.h
WINE: guiddef.h
2018-04-07 14:01:13 +02:00
Philip Rebohle 16c2ea5d82
[general] Updated README
Clarified information about environment variables.
2018-04-07 13:57:16 +02:00
Philip Rebohle 196dd1273b
[general] Update README 2018-04-07 13:52:50 +02:00
Philip Rebohle 00a452ed89
[d3d11] Implement DXBC shader module cache
If an application compiles the same shader multiple times, we should reuse
an already existing DxvkShaderModule instead of creating a new one. This
helps keep the number of DxvkGraphicsPipeline objects low in games such
as Rise of the Tomb Raider.
2018-04-06 17:54:02 +02:00
Philip Rebohle 38291356a7
[general] Fix another README typo 2018-04-06 09:42:49 +02:00