Commit Graph

936 Commits

Author SHA1 Message Date
Philip Rebohle d3e89b20dd
[d3d11] Allocate host-readable images on host-visible memory
Not having to wait for an image->buffer copy to finish on the
GPU allows for more efficient synchronization. Significantly
improves performance in The Witcher 3.
2018-03-10 23:32:15 +01:00
Philip Rebohle a4a8e0d6c8
[dxvk] Add memory flag query to DxvkImage 2018-03-10 17:41:42 +01:00
Philip Rebohle fb36b56891
[dxvk] Removed stat counters 2018-03-10 17:37:10 +01:00
Philip Rebohle b9e1646453
Merge pull request #144 from Aishou/Readme
Update README.md
2018-03-10 17:13:23 +01:00
Kaito de872c17f0
Update README.md
Update Readme about custom PCI Vendor and Device ID Support
2018-03-10 16:41:22 +01:00
Guy1524 1bad90ae96 Add Custom PCI Vendor and Device ID Support (#137)
* Add Custom PCI Vendor and Device ID Support

Allow the user to configure DXVK to use a custom PCI Vendor and Device ID, so that the program behaves the same on different cards.

* Remove AMD/NVIDIA/INTEL Shortcuts

* Remove extra semicolon

* Return DxvkGpuVendor to being an enum class

* Fixed hexadecimal output
2018-03-10 15:05:32 +01:00
Mikhail Paulyshka 3dad074fc4 [dxbc] implemented retc instructions (#140) 2018-03-10 15:04:58 +01:00
Philip Rebohle 28880d0fa8
[dxbc] Implemented DclHsMaxTessFactor 2018-03-10 15:02:27 +01:00
Philip Rebohle afaa3b5a30
[d3d11] Fix minor code inconsistencies 2018-03-10 14:41:06 +01:00
Philip Rebohle 7069df6b1e
[d3d11] Reimplemented ClearState
Potentially increases the overhead of ClearState calls, but also correctly
resets the context state when deferred contexts are used.
2018-03-10 13:06:15 +01:00
Philip Rebohle 5cb6c968b5
[d3d11] Fix RestoreUnorderedAccessViews for pixel shaders 2018-03-10 12:47:45 +01:00
Philip Rebohle ca53fe7925
[d3d11] Minor fixes 2018-03-10 12:11:17 +01:00
Philip Rebohle 969b35c80c
[d3d11] RestoreState: Restore DS/OM/RS state objects 2018-03-10 11:56:58 +01:00
Philip Rebohle 5befa3b745
[d3d11] RestoreState: Restore IA state 2018-03-10 11:44:27 +01:00
Philip Rebohle c49a0b969b
[d3d11] RestoreState: Restore viewport state 2018-03-10 11:31:40 +01:00
Philip Rebohle f15feef47f
[d3d11] RestoreState: Restore shader resource bindings 2018-03-10 11:30:32 +01:00
Philip Rebohle 5ef0f31c66
[dxvk/d3d11] Refactored resource binding
Slightly reduces overhead of D3D11 *SetShaderResources methods.
2018-03-10 11:16:52 +01:00
Philip Rebohle b72f11a0bf
[d3d11] RestoreState: Restore vertex and index buffer bindings 2018-03-10 10:39:07 +01:00
Philip Rebohle d1a2cff9ac
[d3d11] RestoreState: Restore framebuffer and shader bindings 2018-03-10 10:19:07 +01:00
Philip Rebohle 3efd437310
[dxbc] Fixed TGSM size with dcl_tgsm_raw
https://msdn.microsoft.com/en-us/library/windows/desktop/hh446929(v=vs.85).aspx
2018-03-09 22:01:19 +01:00
Philip Rebohle b7a964e15e
[d3d11] Fix texture cube array view normalization 2018-03-09 17:24:36 +01:00
Philip Rebohle 3b42011c50
[d3d11] Implemented OMGetRenderTargetsAndUnorderedAccessViews and predication stub 2018-03-09 16:47:20 +01:00
Philip Rebohle 09fd7abde0
[d3d11] Fix potentially invalid value for anisotropic filtering 2018-03-09 15:24:28 +01:00
Philip Rebohle 220c3301cf
[dxvk] Tweaked command stream chunk sizes and submission
Improves overall frame rate and latency in situations where the
application's render thread cannot keep up with the CS thread.
Considerable frametime improvements in NieR:Automata and
slightly higher frame rates in The Witcher 3.
2018-03-09 12:31:35 +01:00
Philip Rebohle 8d443cb50d
[dxvk] Reduced overhead of depth image descriptor layout check 2018-03-09 12:30:39 +01:00
Philip Rebohle e8303af221
[general] Added release packer script 2018-03-08 18:34:33 +01:00
Philip Rebohle e2314cfe58
[dxgi] Fixed R10G10B10A2 format mapping
Fixes lighting issues in The Witcher 3.
2018-03-08 16:23:44 +01:00
Philip Rebohle c3cf65c015
[dxbc] Use signed int for component index in OpImageGather
Workaround for a bug in Nvidia's shader compiler, which currently
expects the component index to be signed rather than unsigned.
2018-03-08 07:50:37 +01:00
Philip Rebohle 85d28f7328
[d3d11] Implemented ClearUnorderedAccessViewUint for raw and structured buffers 2018-03-07 16:29:13 +01:00
Philip Rebohle 95e2c641e0
[d3d11] Partially implement SOSetTargets/SOGetTargets
This does not implement any stream output functionality yet,
but it allows games to set and query stream output buffers.
2018-03-07 15:32:19 +01:00
Philip Rebohle 360bf3ee4c
[dxvk] Recreate buffer views if necessary
Fixes broken animations and artifacts in The Witcher 3.
2018-03-07 13:54:28 +01:00
Philip Rebohle ad017c2556
[dxvk] Implemented physical buffer view 2018-03-07 13:32:17 +01:00
Philip Rebohle b494bb2ac1
[d3d11] Fixed potential sync issue in Map() 2018-03-07 10:37:27 +01:00
Philip Rebohle 7ac0d413ad
[dxbc] Use correct arrays for vicp/vocp in hull shaders
Fixes Heaven on RADV.
2018-03-07 09:52:24 +01:00
Philip Rebohle 6e981b91b6
[dxvk] Add adapter logging 2018-03-07 00:23:06 +01:00
Philip Rebohle 0fdde6a94e
[dxbc] Fix hull shader barrier issue 2018-03-07 00:22:40 +01:00
Philip Rebohle b7a9c2c751
[dxbc] Implemented vicp for hull shaders
Allows Unigine Heaven to start with tessellation enabled.
2018-03-06 19:19:10 +01:00
Mikhail Paulyshka 9deb73a2a7 Add support for MSVC, attempt 3 (#130)
* [dxvk] fixes for MSVC

* nullptr -> int is illegal conversion for MSVC. nullptr was replaced with VK_NULL_HANDLE
* MSVC does not support source code strings longer than 65535 chars. String was replaced with array of chars.

* [utils] fixes for MSVC

* __mingw_uuidof() does not exists in MSVC
* apply GCC pragma only for GCC
* added missing header

* [dxbc] fixes for MSVC

*added missing header

* [dxgi] fixes for MSVC

* user __declspec(uuid()) instead of _mingw_uuidof()
* do not use DLLEXPORT macro for MSVC

* [d3d11] fixes for MSVC

* replace WINBOOL with BOOL
* do not declare D3D11 structs for MSVC
* do not use DLLEXPORT macro for MSVC

* [meson] fix build scripts for MSVC

* change cpp version from c++1z to c++latest for MSVC
* set -DOMINMAX definition for MSVC
* disable test and wine_utils for MSVC
* use .def files instead of __declspec(dllexport) for MSVC (bypass 'C2375: redefinition; different linkage' error)
* fix .def files for MinGW
* add --enable-stdcall-fixup linker flag for MinGW
2018-03-06 18:34:34 +01:00
Philip Rebohle 88c4e363e5
[dxbc] Implemented workaround for hull shader output synchronization 2018-03-06 18:29:20 +01:00
Philip Rebohle 4fed7521f7
[d3d11] Enabled tessellation shaders
Note that applications that require tessellation support
will not work as of yet.
2018-03-06 17:02:47 +01:00
Philip Rebohle 2271814d95
[dxbc] Implemented domain shader input variables 2018-03-06 16:47:35 +01:00
Philip Rebohle ff0ff0c23b
[dxbc] Implemented hull shader passthrough 2018-03-06 15:52:29 +01:00
Philip Rebohle d2ca721387
[dxbc] Reworked Hull Shader phase invocations
Instead of running individual phases sequentially, we can
run them in parallel if execution barriers are in place.
2018-03-06 15:05:58 +01:00
Philip Rebohle 87afb33228
[dxbc] Implemented Hull Shader output setup 2018-03-06 14:49:11 +01:00
Philip Rebohle 988aaa0161
[dxbc] Implemented Hull Shader output variables 2018-03-06 14:00:03 +01:00
Philip Rebohle 13331a463f
[d3d11] Re-implement check for mapping device-local images 2018-03-06 11:35:12 +01:00
Philip Rebohle b2f5b262f7
[dxbc] Added support for the control point phase in Hull Shaders 2018-03-05 17:23:00 +01:00
Philip Rebohle 4688b2cc5a
[dxbc] Formatting fixes + Hull shader barriers 2018-03-05 16:14:46 +01:00
Philip Rebohle 96ca9fa6ea
[dxbc] Fixed tessellation factor enums 2018-03-05 15:02:17 +01:00
Philip Rebohle 1cbe6829eb
Revert "Add MSVC support (#123)"
This reverts commit c63d4361a0.
2018-03-05 14:32:28 +01:00