1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-14 18:23:52 +01:00
Commit Graph

345 Commits

Author SHA1 Message Date
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
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
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
b494bb2ac1
[d3d11] Fixed potential sync issue in Map() 2018-03-07 10:37:27 +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
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
13331a463f
[d3d11] Re-implement check for mapping device-local images 2018-03-06 11:35:12 +01:00
Philip Rebohle
1cbe6829eb
Revert "Add MSVC support (#123)"
This reverts commit c63d4361a0.
2018-03-05 14:32:28 +01:00
Mikhail Paulyshka
c63d4361a0 Add MSVC support (#123)
* [utils] fixes for MSVC

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

* [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.

* [dxbc] fixes for MSVC

*added missing header

* [dxgi] fixes for MSVC

* user __declspec(uuid()) instead of _mingw_uuidof()

* [d3d11] fixes for MSVC

* replace WINBOOL with BOOL
* do not declare D3D11 structs

* [meson] fix build scripts for MSVC

* change cpp version from 1z to 17 for MSVC
* set -DOMINMAX definition for MSVC
* disable test and wine_utils for MSVC
* use .def files instead of __declspec(dllexport) (bypass 'C2375: redefinition; different linkage' error)
2018-03-05 14:28:51 +01:00
Philip Rebohle
484308347a
[d3d11] Treat D3D11SamplerState as state object 2018-03-05 02:21:34 +01:00
Philip Rebohle
7a6e20f3a8
[d3d11] Fixed CheckMultisampleQualityLevels return values 2018-03-05 01:08:26 +01:00
Philip Rebohle
9ede325c5b
Merge branch 'master' of https://github.com/doitsujin/dxvk 2018-03-05 01:07:58 +01:00
Mikhail Paulyshka
6c62d7608e [d3d11] add stub for ID3DUserDefinedAnnotation (#122)
* [d3d11] D3D11DeviceContext::QueryInterface: log missing GUID

* [d3d11] suppress warnings for ID3DUserDefinedAnnotation and ID3D11Debug
2018-03-05 01:07:09 +01:00
Philip Rebohle
e8e5739978
[d3d11] Fixed potential crashes in InitImage/InitBuffer 2018-03-03 23:33:55 +01:00
Philip Rebohle
52f6ba1756
[dxvk] Fixed D3D11CreateDeviceAndSwapChain bug
Some applications may want to create a swap chain
without specifying a device or context pointer.
2018-03-03 23:15:15 +01:00
Philip Rebohle
c5bbf2d989
[d3d11] Fixed FinishCommandList
- ppCommandList is optional.
- We need to call RestoreState in order to set up the current context
  state for the new command list.
2018-03-03 22:28:30 +01:00
Philip Rebohle
82ac381919
[d3d11] Move framebuffer creation out of OMSetRenderTargets
This might be useful when restoring context state.
2018-03-03 22:15:41 +01:00
Philip Rebohle
b469cfac0b
[d3d11] Implemented FinishCommandList/ExecuteCommandList 2018-03-03 20:59:17 +01:00
Philip Rebohle
d74db72add
[d3d11] Implemented CSGetUnorderedAccessViews 2018-03-01 07:02:39 +01:00
Philip Rebohle
757bb2bad7
[dxvk] Mark events and queries as available by default
Fixes a lockup in World of Warships, which waits for an event query
to be signaled without actually ever calling End() for that query.
2018-02-27 10:14:53 +01:00
Philip Rebohle
dc67cf730e
[d3d11] Add exception handling to CreateTexture* methods 2018-02-27 08:54:24 +01:00
Philip Rebohle
43b7e84bb5
[d3d11] Return fake tessellation shader obejects to the application
Prevents crashes in applications that use domain and hull shaders for
more than just rendering. Allows Fallout 4 tp run.
2018-02-26 17:29:10 +01:00
Philip Rebohle
e45d502fe4
[d3d11] Fix Create*Shader return values
When not writing back any shader object, we should be returning
S_FALSE instead of S_OK.
2018-02-26 17:04:45 +01:00
Philip Rebohle
c7acfb667f
[d3d11] Fix format for 1D RTVs and DSVs 2018-02-26 17:00:24 +01:00
Philip Rebohle
e4292adf29
[d3d11] Implemented 1D render target and depth-stencil views
An apitrace for Fallout 4 suggests that the game actually uses this.
2018-02-26 15:21:18 +01:00
Philip Rebohle
3ebafcc281
Revert "[d3d11] Remvoed query support"
This reverts commit 3d17eb68b9.
2018-02-26 14:33:27 +01:00
Philip Rebohle
14845628c4
Revert "[d3d11] Fixed fake event query"
This reverts commit dbf3fd768d.
2018-02-26 14:33:17 +01:00
Philip Rebohle
00f6262ff3
[dxbc] Properly implement Input/Output coverage masks 2018-02-26 14:23:41 +01:00
Philip Rebohle
eadf74264b
[d3d11] Return early for clear operations on NULL views
Fixes a crash in Fallout 4 when loading into the game.
2018-02-24 23:39:22 +01:00
Philip Rebohle
82fc851f32
[d3d11] Fixed CopySubresourceRegion for partial buffer updates
Fixes a subtle bug that caused the Fallout 4 menu to render random
geometry.
2018-02-23 15:16:44 +01:00
Philip Rebohle
dbf3fd768d
[d3d11] Fixed fake event query 2018-02-23 13:21:09 +01:00
Philip Rebohle
3d17eb68b9
[d3d11] Remvoed query support
Breaks too many games.
2018-02-23 13:17:24 +01:00
Philip Rebohle
e4dae74865
[dxvk] Validate tessellation state for graphics pipeline
This should help with freezes as long as Tessellation is
not properly implemented.
2018-02-23 12:55:23 +01:00
Philip Rebohle
8813ff979a
[d3d11] Allow UAVs to be created for the swap image
Fixes an issue with ComputeMark
2018-02-22 21:38:51 +01:00
Philip Rebohle
2b9ab6626a
[d3d11] Do not create views if the resource bind flags are invalid 2018-02-22 21:38:45 +01:00
Philip Rebohle
4c693fc262
[spirv] Added experimental spirv-tools integration
Added support for the validator in order to make debugging easier,
as well as the optimizer, which may help Nvidia users run DXVK.
2018-02-22 18:06:00 +01:00
Philip Rebohle
cb3daaf856
[dxvk] Change resolveImage interface to accept an explicit format 2018-02-20 22:26:23 +01:00
Philip Rebohle
43dbc9f1d6
[dxvk] Support depth-to-color image copies and vice versa
Fixes validation errors and depth of field effect in Neptunia VII
and potentially other games which do not use all depth images for
rendering.
2018-02-20 13:08:50 +01:00
Philip Rebohle
e89c7e9276 [d3d11] Added test case for occlusion queries and small improvements 2018-02-19 11:27:14 +01:00
Philip Rebohle
675a629ae5 [d3d11] Fixed crash with timestamp disjoint queries 2018-02-18 23:39:55 +01:00
Philip Rebohle
18c723fe8b [d3d11] Remove leftover log message 2018-02-18 23:18:41 +01:00
Philip Rebohle
5fea615ed7 [dxvk] Implement backend part for event queries 2018-02-18 22:57:45 +01:00
Philip Rebohle
5334ff57bf [d3d11] Wired up D3D11Query to backend 2018-02-18 22:34:23 +01:00
Philip Rebohle
7ae4904ae9 [dxvk] Relax feature requirements, minor fixes 2018-02-18 11:16:18 +01:00
pchome
fb3734ce49
[d3d11] Fix unhandled exception
With this patch The Witcher 3 can successfully load saved game.
2018-02-14 07:35:39 +02:00
Philip Rebohle
fba16e2a04
[d3d11] Added experimental support for RTVs into 3D images 2018-02-14 03:16:53 +01:00
Philip Rebohle
4965f8c318
[d3d11] Implemented SRV and RTV normalization 2018-02-14 01:29:50 +01:00
Philip Rebohle
5a42512028
[dxbc] Silence DclIndexRange warnings 2018-02-08 10:17:59 +01:00
Philip Rebohle
f4d679caa2
[d3d11] Enable sampleRateShading feature 2018-02-08 10:06:10 +01:00
Philip Rebohle
ad6c45d6b1
[dxvk] Improve debuggability of shader compiler issues
When using DXVK_LOG_LEVEL=debug, the graphics pipeline manager now
prints the names of the shaders used by the pipeline. This shall
help debug driver crashes in vkCreate*Pipelines.
2018-02-07 16:44:30 +01:00
Philip Rebohle
61ce7022e2
[d3d11] Fix optional write issue in GetData() 2018-02-07 12:35:40 +01:00
Philip Rebohle
b31ebbb690
[d3d11] Add support for DSV read-only flags
Games need this in order to use the depth buffer as both
a framebuffer attachment and a shader resource.
2018-02-06 17:31:23 +01:00
Philip Rebohle
83458c4467
[dxvk] Separated resource view classes
Since we are doing this for UAVs already, we should be
doing this for all view classes in order to account for
the minor differences between all of them.
2018-02-05 22:35:23 +01:00
Philip Rebohle
ad81d0bfa5
[general] Remove _vk prefix from DLL names
Fixes #56.
2018-02-05 09:10:42 +01:00
Philip Rebohle
e25f4b2299
[d3d11] Implemented ClearUnorderedAccessViewUint for images 2018-02-04 23:57:43 +01:00
Philip Rebohle
495f58370c
[d3d11] Implemented CopySubresourceRegion for buffers
Also fixed a typo where ResolveSubresource would do the
wrong thing.
2018-02-03 21:14:55 +01:00
Philip Rebohle
14d5054893
[dxvk] Initial work on instance data fetch rates
Adds a pipeline flag to indicate that instanced
draw calls need to be emulated.
2018-02-01 20:15:25 +01:00
Clément Guérin
4050e8297f [d3d11] mock D3D11_QUERY_EVENT
in addition to fix low framerate with vsync ON on Trackmania, this lets
GTA V show the loading screen.
2018-01-31 22:00:40 -08:00
Philip Rebohle
78c46f444a
[d3d11] Added missing CS thread sync for non-discard Map() 2018-01-31 16:39:47 +01:00
Philip Rebohle
f3ae248f39
[d3d11] Include <algorithm>
This apparently causes builds to fail on some platforms. Fixes #42.
2018-01-31 01:57:43 +01:00
Philip Rebohle
c22dc143d1
[d3d119 Implemented DXVK_FEATURE_LEVEL to restrict D3D feature levels 2018-01-30 12:19:53 +01:00
Philip Rebohle
08436ad1e1
[d3d11] Get rid of duplicate code in ResolveSubresource 2018-01-30 02:20:28 +01:00
Philip Rebohle
6c6b108cdd
[d3d11] Handle non-multisampled source images in ResolveSubresource 2018-01-30 01:18:43 +01:00
Philip Rebohle
4aaa351225
[d3d11] Fixed query-related logging
Log messages in GetData did not take into account that
writing back data is actually optional.
2018-01-29 17:04:07 +01:00
Philip Rebohle
ca53eaf878
[general] Minor COM pointer improvements 2018-01-29 16:31:25 +01:00
Philip Rebohle
08a916487d
[d3d11] Implemented CreateHullShader and CreateDomainShader 2018-01-29 11:53:57 +01:00
Philip Rebohle
52e8918b57
[d3d11] Added support for tessellation patch primitives 2018-01-29 11:31:00 +01:00
Philip Rebohle
8f554a210b
[d3d11] Silence unnecessary SOSetTargets errors 2018-01-29 01:15:51 +01:00
Philip Rebohle
6d75178870
[d3d11] Remove default sampler
This is handled in the backend now.
2018-01-28 22:05:08 +01:00
Philip Rebohle
b8e49f1eb8
[d3d11] Fixed incorrect aspect mask for depth-stencil clear ops
Application may specify a clear flag that the image format does
not support, in which case it should just be ignored. Fixes
validation errors in Microsoft's MultiThreadedRendering demo.
2018-01-28 21:13:37 +01:00
Philip Rebohle
c6f4cf7330
[general] Make use of C++ zero initialization 2018-01-28 19:37:22 +01:00
Philip Rebohle
b63346b052
[d3d11] Implmented ResolveSubresource for typed resources
Enables MSAA support in Nier:Automata and potentially other games.
2018-01-28 18:06:41 +01:00
Philip Rebohle
0c62ca027f
[d3d11] Implemented normalization for UAV descriptions 2018-01-28 11:30:15 +01:00
Philip Rebohle
1eb0fc8846
[d3d11] Implemented GetUnorderedAccessViewDescFromResource 2018-01-28 10:57:16 +01:00
Philip Rebohle
363a0f8a6b
[d3d11] Implemented IAGetIndexBuffer an IAGetVertexBuffers
TressFX needs this.
2018-01-23 19:10:48 +01:00
Philip Rebohle
14bb4ed9c2
[d3d11] Fixed depth-stencil clear outside renderpasses
Fixes rendering in Tomb Raider (2013).
2018-01-23 19:01:07 +01:00
Philip Rebohle
e198bd2d55
[d3d11] Sub-allocate from larger update buffers for UpdateSubresources
Reduces the allocation overhead when applications frequently
call UpdateSubresources to update small buffers and textures.
2018-01-23 16:43:55 +01:00
Philip Rebohle
2c20bf4dcb
[d3d11] Use Map() for host-visible buffers in UpdateSubresource 2018-01-23 12:16:28 +01:00
Philip Rebohle
3148155c35
[d3d11] Implemented CS chunk submission for deferred contexts
Changes were necessary due to the fact that chunks in deferred
contexts are not directly submitted to the CS thread.
2018-01-23 12:03:26 +01:00
Philip Rebohle
eff07dcf3f
Merge pull request #30 from libcg/stadium2
[d3d11] mock D3D11_QUERY_TIMESTAMP
2018-01-23 09:24:29 +01:00
Philip Rebohle
5b1311b71e
[d3d11] Added stubs for deferred contexts and command lists 2018-01-23 09:23:31 +01:00
Clément Guérin
781ebc4732 [d3d11] mock D3D11_QUERY_TIMESTAMP
Trackmania was freezing on this query when clicking on "Connect".
2018-01-22 21:39:58 -08:00
Philip Rebohle
847d50d812
Merge branch 'csmt' 2018-01-21 18:06:13 +01:00
Philip Rebohle
07f5a7f069
[d3d11] Synchronize with CS thread before present
Fixes flickering by synchronizing with the presenter. This has
to do for now, a more efficient solution can be added later.
2018-01-21 18:04:22 +01:00
Philip Rebohle
7c3a9beb22
[dxvk] Recycle CS chunks 2018-01-21 12:59:43 +01:00
Philip Rebohle
650170b167
[general] Rename libraries
This allows the setup script to work without creating
symbolic links or moving the files around.
2018-01-21 11:38:19 +01:00
Guy1524
5c4e290d72
Check if shader in READ_PATH exists before using it
Make sure that the replacement shader in the DXVK_SHADER_READ_PATH exists, if not use the generated shader.
2018-01-20 21:20:45 -05:00