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

2758 Commits

Author SHA1 Message Date
Philip Rebohle
9ef94e28ac
[dxbc] Support UNorm/SNorm typed resources 2018-03-21 15:08:53 +01:00
Philip Rebohle
08806070ca
[d3d11] Fix CheckFeatureSupport return value 2018-03-21 15:08:34 +01:00
Philip Rebohle
efcd5c6b4d
[d3d11] Implement support for D3D11_FEATURE_FORMAT_SUPPORT2 2018-03-21 13:31:22 +01:00
Philip Rebohle
09151f3616
[d3d11] Lift shaderStorageImageReadWithoutFormat requirement 2018-03-21 12:57:29 +01:00
Philip Rebohle
584ee6b6f0
[dxbc] Lift ShaderStorageImageReadWithoutFormat requirement 2018-03-21 12:47:53 +01:00
Philip Rebohle
fcff10aae7
[dxbc] Set image format for UAVs when atomic operations are used
Fixes a violation of the Vulkan specification where atomic operations
would be used on storage images with SpvImageFormatUnknown. Should fix
driver crashes on Nvidia.

TODO: Fix data types for atomic operation instructions.
2018-03-21 12:11:18 +01:00
Philip Rebohle
c1a1ff3915
[d3d11] Implement remaining D3D11.1 feature queries 2018-03-21 04:58:31 +01:00
Philip Rebohle
17e981f360
[dxvk] Increase UAV slot count to 64 for the graphics pipeline
D3D11 raised this limit from 8 UAVs in the fragment shader to
64 UAVs in all graphics stages combined.
2018-03-21 04:56:33 +01:00
Philip Rebohle
bd71f256e5
[d3d11] Fixed constant buffer binding update 2018-03-21 03:26:31 +01:00
Sebastian Wick
4518b1b76e Shader cache (#188)
* [util] Adds getTempDirectory() function

Will be used by on-disk pipeline caching

* [dxvk] Implement on-disk shader caching

Saving the pipeline cache to disk when the application exits
should be sufficient but the DxvkPipelineCache destructor isn't
reliably called on exit (ref-counting issue?).
As a workaround every frame we check and save the cache if the
size increased by some amount or after one minute elapsed.

* [dxvk] Periodically update shader cache file in separate thread
2018-03-21 02:45:11 +01:00
Philip Rebohle
6550e8d623
[d3d11] Expose implemented Feature Level 11.1 features 2018-03-20 23:25:23 +01:00
Philip Rebohle
894444d43d
[dxvk] Remove old debug code 2018-03-20 22:36:02 +01:00
Philip Rebohle
42d49d7603
[dxvk] Respect bufferImageGranularity for non-linear images
May fix aliasing issues on GPUs where the bufferImageGranularity limit
is greater than the alignment requirement of non-linear resources.
2018-03-20 20:24:11 +01:00
Philip Rebohle
fd4e55007f
[d3d11] Export support for driver command lists
This indicates that our implementation of UpdateSubresource on
deferred contexts is not affected by the same issue as on Windows.
2018-03-19 17:57:20 +01:00
Philip Rebohle
493ad66d91
[d3d11] Remove obsolete acquire/release pair
This is no longer needed with the universally
thread-safe slice allocator.
2018-03-19 17:56:26 +01:00
Philip Rebohle
f762811af0
[dxvk] Use multiple free lists for physical buffer slices
Reduces lock contention and slightly improves performance in games
that rely heavily on the buffer renaming mechanism if the lock
protecting the original free list was contested.
2018-03-19 14:53:59 +01:00
Philip Rebohle
c6251d28fc
[d3d11] Remove warnings from CopySubresourceRegion1 / UpdateSubresource1
The flags should have no impact on correctness, so not supporting them
makes no difference. Prevents log spam in Dishonored 2.
2018-03-19 14:52:42 +01:00
pchome
2f8ccfa30e
[build] Add header required for std::find_if() 2018-03-19 12:49:48 +02:00
Philip Rebohle
f1c3b59e87
[d3d11] Implemented buffer mapping on deferred contexts
Allows the MultiThreadedRendering demo from the Microsoft SDK to run.
2018-03-19 03:19:13 +01:00
Philip Rebohle
0eaa3fea3b
[dxvk] Implement thread-safe buffer renaming
This is required for resource mapping on deferred contexts.
May also fix a potential synchronization issue where a buffer
could be mapped multiple times before the CS thread would mark
the physical buffer as used, which would result in invalid data.
2018-03-19 02:18:44 +01:00
Philip Rebohle
d6d6ed4efd
[d3d11] Expose Feature Level 11_1 if explicitly requested
Not enabled by default since some 11_1 functionality is not yet implemented.
2018-03-18 23:39:40 +01:00
Philip Rebohle
127fad89be
[d3d11] Refactored D3D11SamplerState creation 2018-03-18 23:35:40 +01:00
Philip Rebohle
b04e9b5f18
[d3d11] Refactored D3D11DepthStencilState creation 2018-03-18 23:32:01 +01:00
Philip Rebohle
11d8eb3be4
[d3d11] Implemented D3D11BlendState1 2018-03-18 23:27:29 +01:00
Philip Rebohle
2591bbdabd
[d3d11] Implemented ID3D11RasterizerState1 stub 2018-03-18 22:53:20 +01:00
Philip Rebohle
0a473b4f86
[d3d11] Return error if an application creates an RTV for a buffer
Vulkan does not support buffer RTVs, and neither does DXVK, so we
should return an error in that case. Previously, DXVK would crash
upon querying image information.
2018-03-18 21:38:48 +01:00
Philip Rebohle
69dd05b269
[dxgi] Fix back buffer destruction
The back buffer needs to be deleted explicitly because on
the way it is created. Fixes reference counting issues in
applications which resize the back buffer at least once.
2018-03-18 20:39:14 +01:00
Philip Rebohle
e009e63aa7
[d3d11] Fix sampler state refcount issue
We cannot use strong references in state objects that
are stored inside a member of the device itself.
2018-03-18 14:57:14 +01:00
Philip Rebohle
2346a2ac03
[d3d11] Remove inconsistent uses of "this" 2018-03-18 12:57:39 +01:00
Philip Rebohle
c43702e445
[d3d11] Implement GetConstantBuffers1 methods 2018-03-18 12:45:27 +01:00
Philip Rebohle
e54246d000
[d3d11] Implement SetConstantBuffers1 methods 2018-03-18 12:39:11 +01:00
Philip Rebohle
3133e4ba35
[d3d11] Add constant buffer offsets and counts to context state 2018-03-18 12:36:45 +01:00
Philip Rebohle
a8eecfbfe5
[d3d11] Enable direct image mapping by default 2018-03-18 00:36:53 +01:00
Philip Rebohle
94aa650f3e
[dxvk] Enable the use of VK_KHR_descriptor_update_template
Reduces the CPU overhead of descriptor set updates, which usually
happen once per draw call. Gains seem to be minor in most games,
some outliers show significantly better performance (i.e. Tomb Raider).
2018-03-17 23:50:03 +01:00
Philip Rebohle
0f800c6c51
[dxvk] Added Vulkan function pointers for VK_KHR_descriptor_update_template 2018-03-17 22:35:50 +01:00
Philip Rebohle
ebd46e4109
[d3d11] Re-define D3D11_FEATURE_DATA_ARCHITECTURE_INFO
Fixes previous commit on MinGW.
2018-03-17 21:38:35 +01:00
Mikhail Paulyshka
043982d3be [d3d11] stub implementation of ID3D11Device1 (#175) 2018-03-17 20:11:00 +01:00
Mikhail Paulyshka
a3e7139c1e [d3d11] stub implementation of ID3DDeviceContext1 (#174) 2018-03-17 18:54:09 +01:00
Philip Rebohle
52a9a4f406
[dxvk] Reimplemented clearRenderTarget
Closer to the D3D11 API. We cannot use the normal clearColorImage and
clearDepthStencilImage methods in case the game uses a 2D array view
for a 3D image. Fixes some validation issues in Hellblade.
2018-03-17 17:59:43 +01:00
Philip Rebohle
1af52abb67
[d3d11] Move OMSetRenderTargets optimization to D3D11ImmediateContext
We cannot call Flush() on deferred contexts anyway, so the command
submission optimization should only be applied to immediate contexts.
2018-03-17 14:09:16 +01:00
Philip Rebohle
ccfe1a346b
[d3d11] Moved GetViewFromDesc and NormalizeDesc out of D3D11Devuce 2018-03-17 13:42:37 +01:00
Philip Rebohle
0ddbb58ce4
[d3d11] Enable IDXGIDevice2 interface query 2018-03-17 13:05:55 +01:00
Philip Rebohle
3b43c1c183
[dxgi] Support more formats in the presenter
Should surpress "Unsupported format" warnings in games
based on Unreal Engine 4 and Frostbite Engine.
2018-03-17 09:20:06 +01:00
Mikhail Paulyshka
608cd33a25 [dxgi] added stub implementation of IDXGIDevice2 (#172) 2018-03-17 01:48:55 +01:00
Philip Rebohle
b9b74eb961
Merge pull request #169 from Mixaill/fix-msvc-64
[dxbc] fix MSVC 64-bit build
2018-03-17 01:05:04 +01:00
Guy1524
b3cd7547ca Move Custom PCI ID to DXGI 2018-03-16 19:40:26 -04:00
Mikhail Paulyshka
fd633ea784 [dxbc] fix MSVC 64-bit build 2018-03-17 01:59:13 +03:00
Philip Rebohle
c931b4ba87
[dxvk] Implement proper compute pipeline lookup
Fixes correctness issues and potential GPU lockups in case
a compute shader resource is not bound at dispatch time.
2018-03-16 01:25:18 +01:00
Philip Rebohle
9b3908823a
[dxvk] Fixed depth image layout regression 2018-03-16 01:05:30 +01:00
Philip Rebohle
eb8ae5cc82
[d3d11] Allow 2D array view creation for 3D textures
Fixes a regression that was introduced with the texture
class refactor. Fixes validation issues in Hellblade.
2018-03-14 20:40:11 +01:00
Philip Rebohle
0e0ee61d9b
[d3d11] Always use VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
We need to investigate why not doing this breaks shadows in Heaven.
2018-03-14 17:40:26 +01:00
Philip Rebohle
3b20c71894
[d3d11] Re-implement direct image mapping (disabled by default)
We cannot enable this by default yet because it may break some games.
2018-03-14 16:40:28 +01:00
Philip Rebohle
155bd32e22
[d3d11] Check if a textue can be created before making the attempt
This may prevent driver crashes and give more useful debugging info
in case a given combination of image parameters is not supported by
a device. May also improve compatibility with direct image mapping.
2018-03-14 16:03:48 +01:00
Philip Rebohle
7a6d61d943
[d3d11] Create mapped image buffer only when needed
Also adds some documentation to D3D11CommonTexture.
2018-03-14 14:49:45 +01:00
Philip Rebohle
0ba3337289
[d3d11] Refactored Map/Unmap methods 2018-03-14 14:40:09 +01:00
Philip Rebohle
91b82c05b2
[d3d11] Refactoring texture classes: Move static methods into D3D11CommonTexture 2018-03-14 01:16:31 +01:00
Philip Rebohle
56df0bcccb
[d3d11] Refactoring texture classes: Remove D3D11TextureInfo 2018-03-14 00:45:07 +01:00
Philip Rebohle
16d66c8a1d
[d3d11] Refactoring texture classes: Introduce D3D11CommonTexture 2018-03-13 23:51:30 +01:00
Philip Rebohle
e6814332e7
Revert "[d3d11] Re-enable image mapping"
Still breaks games for unknown reasons.
2018-03-13 17:40:12 +01:00
Philip Rebohle
ba2c4782b0
[spirv] Removed SPIR-V Tools headers 2018-03-13 14:58:17 +01:00
Philip Rebohle
25cae39cdb
[spirv] Remove SPIR-V tools integration
SPIR-V tools did not turn out to be useful, but increased the
binary size by a significant amount and caused build problems.

- spirv-opt: Far too slow for the intended purpose, and Nvidia
             specific shader issues have been reported and fixed.
- spirv-val: Not much value in practice since shaders can be
             written to a directory and validated manually.
2018-03-13 14:32:03 +01:00
Philip Rebohle
8e9d0878e6
[dxvk] Remove RenderDoc workaround
RenderDoc 1.0 cannot be used with DXVK anymore,
which makes the workaround obsolete.
2018-03-13 11:43:23 +01:00
Philip Rebohle
72f954088b
[d3d11] Use only one mip level for multisampled textures 2018-03-13 11:29:25 +01:00
Philip Rebohle
06cff50453
[d3d11] Flush CS chunks when executing/finalizing command lists
Fixes rendering issues and validation errors in Kingdom Come: Deliverance.
2018-03-12 23:36:55 +01:00
Mikhail Paulyshka
fa78259459 [dxgi] fix DxgiOutput::FindClosestMatchingMode() implementation (#157)
* remove useless checks
* fix refresh rate matching and unspecified detection
2018-03-12 22:28:34 +01:00
Mikhail Paulyshka
d3a4230acf [d3d11] D3D11Device::QueryInterface() suppress warning for d56e2a4c-5127-8437-658a-98c5bb789498
there is no public information about this interface
2018-03-12 23:29:44 +03:00
Philip Rebohle
887e514442
[dxvk] Use dummy viewport if requested viewport size is 0
Fixes a bunch of validation errors in various games,
including The Witcher 3.
2018-03-12 13:14:27 +01:00
Philip Rebohle
56c826be85
[d3d11] Do not enable D3D11_BIND_UNORDERED_ACCESS for back buffers
Not all formats can be used for unordered access views. An application
must explicitly request this feature during swap chain creation.
2018-03-12 13:03:33 +01:00
Philip Rebohle
3e60c8f316
[d3d11] Re-enable image mapping
After more extensive testing, it looks like commit 4eacff21
actually fixed the issue in most (all?) cases.
2018-03-12 12:54:05 +01:00
Philip Rebohle
3d0aad705d
[dxbc] Implemented samplepos instruction
Required by Fallout 4, among other games.
2018-03-12 12:25:10 +01:00
Mikhail Paulyshka
b17568deba [dxgi,d3d11] log unknown interfaces GUID (#154)
* [d3d11] log unknown interfaces GUID in QueryInterface()

* [dxgi] log unknown interfaces GUID in QueryInterface()
2018-03-12 12:05:43 +01:00
Mikhail Paulyshka
3cb3c05888 [dxgi] implement DxgiOutput::FindClosestMatchingMode() (#153)
rev2:
* use std::vector instead of C array
* add clarification about TODO
2018-03-12 08:52:32 +01:00
Mikhail Paulyshka
f94ff7db4f [d3d11] add check for pResource against nullptr in D3D11ImmediateContext::Map() 2018-03-12 03:18:44 +03:00
Philip Rebohle
4eacff21e9
[dxvk] Flush initialization context unconditionally
An application might need to wait for a resource to become available
just after it has been created, in which case  its initialization
commands might not have been dispatched yet. If no rendering commands
were issued on the immediate context prior to the wait operation,
WaitForResource would stall indefinitely.
2018-03-11 20:25:09 +01:00
Philip Rebohle
bbbc552868
[d3d11] Disabled image mapping
Effectively reverts d3e89b20dd as it
breaks games for some reason.
2018-03-11 19:02:02 +01:00
Philip Rebohle
5b9e4c1faa
[d3d11] Fix image tiling
Fixes bug introduced in d3e89b20dd, which
applies linear tiling to the wrong kind of images.
2018-03-11 00:06:44 +01:00
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
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
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
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
3501186d38
[dxbc] Added tess level interface variables 2018-03-05 14:07:15 +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
Mikhail Paulyshka
3f8c2b0f9c [dxgi] implement CreateDXGIFactory2 (#120) 2018-03-03 20:10:51 +01:00
Philip Rebohle
9f01ad1f7f
[dxvk] Fix typo 2018-03-02 17:28:17 +01:00
Philip Rebohle
49d2cee930
[dxvk] Fix Nvidia driver version number 2018-03-02 16:35:28 +01:00
Philip Rebohle
349817c52e
[dxvk] Do not enable HUD if DXVK_HUD is 0
Fixes #107.
2018-03-02 10:36:46 +01:00
ZeroFault
fae9916708 Debug logging for compute shaders (#115)
* Add debug logging for compute shaders

* remove redundant nullptr check
2018-03-02 10:33:06 +01:00
Philip Rebohle
e0fbfdf0e2
[dxvk] Use linked list for CS chunks
Improves memory efficiency and CPU overhead of the CSMT implementation
when the average number of bytes per command entry is less than 64 bytes.
2018-03-02 10:31:08 +01:00
Philip Rebohle
3dea58dabc
[dxbc] Implemented more tessellation-related declarations 2018-03-01 14:36:17 +01:00
Philip Rebohle
feba1f0e88
[dxbc] Implemented Hull Shader control point count declarations 2018-03-01 12:47:24 +01:00
Philip Rebohle
0916115086
[dxbc] Implemented Hull Shader fork/join phase invocations 2018-03-01 12:08:06 +01:00
Philip Rebohle
868e55ede7
[dxgi] Added support for 422 formats
Untested, but should fix error messages in some engines.
2018-03-01 10:45:46 +01:00
Philip Rebohle
0e9b7d7ccd
[dxbc] Implemented new workaround for depth-compare ops on Nvidia 2018-03-01 10:11:15 +01:00
Philip Rebohle
c21ebd72ef
Merge branch 'tessellation'
Dropping the branch because it won't actually break anything.
This is obviously not a complete implementation yet.
2018-03-01 09:34:00 +01:00
Philip Rebohle
d185977918
[dxbc] Implemented Hull shader function declarations 2018-03-01 09:26:17 +01:00
Philip Rebohle
83eb34d71c
[dxvk] Replaced exception by error message 2018-03-01 08:23:55 +01:00
Philip Rebohle
dbe3662bfc
[dxvk] Fixed potential memory allocation issue 2018-03-01 07:29:05 +01:00
Philip Rebohle
d74db72add
[d3d11] Implemented CSGetUnorderedAccessViews 2018-03-01 07:02:39 +01:00
Philip Rebohle
d0db88ee62
[dxbc] Implemnted some HS/DS stubs 2018-03-01 07:00:54 +01:00
Philip Rebohle
bdfbd3e81c
[dxvk] Implemented new workaround for query-related lockups
vkGetQueryPoolResults may never return if VK_QUERY_RESULT_WAIT_BIT is
set, and may return queries as not available when they should in fact
be available. This would cause indefinite hangs, so instead we return
fake data to query objects if retrieving query data fails.
2018-02-28 12:39:16 +01:00
Philip Rebohle
a5706254d5
[dxbc] Do not emit depth image types for integer images 2018-02-28 06:51:13 +01:00
Philip Rebohle
8bfd12067a
[dxbc] Remove packDrefValueIntoCoordinates hack
Causes more issues than it solves when the coordinate vector
gets too big.
2018-02-28 06:44:55 +01:00
Philip Rebohle
fcb2b6d2d8
[dxbc] Use signed integers for bit insert/extract ops
Fixes a crash with the Nvidia driver.
2018-02-28 06:44:27 +01:00
Philip Rebohle
97409c3380
[dxvk] Added workaround for RADV query problem
In some cases, this should allow games which use occlusion queries
to run rather than enter an infinite loop in GetData().
2018-02-28 06:12:31 +01:00
Philip Rebohle
e5c0030f06
[dxvk] Fall back to host memory if no device memory is available 2018-02-27 12:36:44 +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
ec59389527
[dxbc] Implement EvalAttribute* instructions 2018-02-26 16:46:34 +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
Clément Guérin
858107278f [util] fix GUID printing 2018-02-24 22:48:40 -08:00
Clément Guérin
c80488428e [dxgi] add support for B4G4R4A4 color format 2018-02-24 22:48:40 -08:00
Philip Rebohle
ced02ba061
[dxvk] Fixed potential null pointer access when creating descriptor set 2018-02-25 00:30:07 +01:00
Philip Rebohle
ce020e5bc9
[dxvk] Fixed 32-bit compilation issue, derp 2018-02-25 00:18:30 +01:00
Philip Rebohle
e8c98eac95
[dxvk] Implement proper graphics and compute state validation
Fixes crashes in various games, including Fallout 4.
2018-02-24 23:56:12 +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
Gabriel Majeri
f582c4e1ce Throw error if requested layer is not installed (#100)
* Warn if requested layer is not enabled

* Replace warning with hard error
2018-02-24 22:07:31 +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
78e9b575c5
[dxbc] Implement AtomicIMin/Max instructions 2018-02-21 03:49:06 +01:00
Philip Rebohle
b419b3dfbd
[dxvk] Implemented typeless resolve
This should allow a large number of Unity-based games to
render at least a menu.
2018-02-21 01:04:28 +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
be4ccc1260
Merge branch 'queries' 2018-02-20 11:32:57 +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
45a03b11be [dxgi] Add stub implementation of DXGI_PRESENT_TEST 2018-02-18 23:49:00 +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
7ddd2500d1 [dxvk] Added query tracker 2018-02-18 20:11:05 +01:00
Philip Rebohle
43200010c1 [dxvk] Implemented query allocation 2018-02-18 17:14:02 +01:00
Philip Rebohle
7ae4904ae9 [dxvk] Relax feature requirements, minor fixes 2018-02-18 11:16:18 +01:00
Philip Rebohle
be1cad34bf
[dxbc] Use correct image query instructions for UAVs
May fix issues on Nvidia drivers.
2018-02-17 07:33:42 +01:00
Philip Rebohle
fd1fd40ad6
[dxvk] Only emit depth image types for 2D and Cube images
May fix driver crashes on Nvidia.
2018-02-16 09:59:41 +01:00
Philip Rebohle
8ebffc1018
[dxbc] Added support for SV_RenderTargetID in pixel shaders 2018-02-15 18:07:40 +01:00
Philip Rebohle
746c90e860
[dxvk] Add DxvkEvent class
Will be used to back D3D11 event queries.
2018-02-15 13:26:05 +01:00
Philip Rebohle
dd237d866d
[dxvk] Make query pools more usable as query allocators 2018-02-15 13:25:18 +01:00
Philip Rebohle
563d4582ab
[dxbc] Implemented BfRev instruction 2018-02-15 09:41:48 +01:00
Philip Rebohle
0c2058e8c4
[dxvk] Introduced DxvkComputePipelineStateInfo
Will be used to re-compile compute pipelines against the current
state, just like graphics pipelines. May fix GPU lockups etc.
2018-02-14 17:54:35 +01:00
Philip Rebohle
ba707f95b7
[dxvk] Do not commit compute barriers for unbound resources
Fixes a crash in Neptunia VII.
2018-02-14 16:18:18 +01:00
Philip Rebohle
17cdccd1ce
[dxgi] Use recursive locking and report fullscreen state changes early
Fixes lockups in fullscreen mode in a certain weeb game.
2018-02-14 13:11:59 +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
7bbb6ea93b
[dxvk] More query stuff 2018-02-14 03:16:39 +01:00
Philip Rebohle
4965f8c318
[d3d11] Implemented SRV and RTV normalization 2018-02-14 01:29:50 +01:00
Philip Rebohle
54cfdbdc51
[dxvk] Implemented more query and query pool methods 2018-02-13 13:43:27 +01:00
Philip Rebohle
5beae25bdf
[dxvk] Implemented virtual query class and query pool stub 2018-02-12 16:36:42 +01:00
Philip Rebohle
8a4fa0b1b8
[dxvk] Added Query stub 2018-02-08 19:32:53 +01:00
Philip Rebohle
807dd72656
[hud] Use buffer invalidation instead of synchronization
The previously used synchronization may have had a negative impact on
performance, whereas the new approach is similar to what D3D11 apps do.
2018-02-08 12:48:54 +01:00
Philip Rebohle
59be5b72e8
[dxbc] Added support for oDepthGe/oDepthLe 2018-02-08 10:28:27 +01:00
Philip Rebohle
b3ba401503
[dxbc] Added support for early fragment tests 2018-02-08 10:26:46 +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
7f409f446a
[dxvk] Improve internal framebuffer APIs
Removes an unnecessary dynamic memory allocation in favour
of a stack-allocated array.
2018-02-07 16:46:39 +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
0f13914ff0
[dxvk] Fixed MSAA issue in render pass info 2018-02-07 13:14:52 +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
0437e5652b
[dxvk] Add index buffer and vertex buffer usage flags to dummy buffer 2018-02-05 19:09:04 +01:00
Philip Rebohle
6f6ecb441d
[dxvk] Add hack to allow RenderDoc to function on AMD GPUs 2018-02-05 12:12:50 +01:00
Philip Rebohle
ad81d0bfa5
[general] Remove _vk prefix from DLL names
Fixes #56.
2018-02-05 09:10:42 +01:00
Philip Rebohle
f69d2481a0
[dxvk] Unbind incompatible resources 2018-02-05 08:58:15 +01:00
Philip Rebohle
6f1ed72b78
[dxvk] Reduced resource binding overhead a bit 2018-02-04 23:59:34 +01:00
Philip Rebohle
e25f4b2299
[d3d11] Implemented ClearUnorderedAccessViewUint for images 2018-02-04 23:57:43 +01:00
Philip Rebohle
fc947f5985
[dxbc] Implemented Geometry SV RenderTargetId 2018-02-04 23:36:00 +01:00
Philip Rebohle
b741b3b4d5
[dxbc] Fixed output value store for geometry shaders 2018-02-04 23:09:07 +01:00
Philip Rebohle
8c64a81e27
[dxbc] Implemented stream instructions for single-stream GS 2018-02-04 22:59:15 +01:00
Philip Rebohle
b8a540d4ef
[dxbc] Implemented Lod instruction 2018-02-04 22:41:23 +01:00
Philip Rebohle
54108726d5
[dxbc] Implemented SampleInfo instruction 2018-02-04 19:30:39 +01:00
Philip Rebohle
76d48fcdf5
[dxbc] Fixed image size query for multisampled images 2018-02-04 18:08:18 +01:00
Philip Rebohle
d0201a1bab
[dxbc] Implemented GatherPo and GatherPoC instructions 2018-02-04 17:40:02 +01:00
Philip Rebohle
49f13cfdc4
[dxbc] Implement CountBits/FirstBit instructions 2018-02-04 13:14:23 +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
201cb88d27
[dxbc] Remove push constant block for now
This needs some more work.
2018-02-03 10:36:17 +01:00
Philip Rebohle
a567f6a5a5
[dxbc] Do not emit depth type for non-sampled resources
Fixes a crash in the Nvidia driver. These type
declarations were never used in the first place.
2018-02-02 21:42:04 +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
Philip Rebohle
0154d0856d
[dxbc] Added push constant definition block
This will be used to fake a draw's instance ID when
per-instance data fetch rates other than 1 are used.
2018-02-01 18:07:24 +01:00
Philip Rebohle
b860915aed
[dxvk] Set dummy vertex buffer size to the maximum binding stride 2018-02-01 14:31:10 +01:00
Philip Rebohle
c66492a90f
[dxvk] Initialize dummy resources to zero
Read access to unbound images and buffers usually yields
a result vector that contains zeroes in all components.
2018-02-01 14:26:38 +01:00
Philip Rebohle
d4a0581f8f
[dxvk] Bind dummy resource for unbound vertex and index buffers
Allows GTA V to run, although heavy rendering artifacts remain.
2018-02-01 13:29:57 +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
fb4663fcc8
[dxbc] Remove duplicate image type declaration 2018-01-31 11:25:49 +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
e47c244ac3
[dxvk] Use logger instead of exception when compiling pipelines
The exception is never caught because it is called from DXVK code,
not D3D code.
2018-01-31 00:48:39 +01:00
Philip Rebohle
4e1f9364e1
[dxvk] Fixed incorrect barriers for depth-stencil images
Certain clear and copy operations would emit invalid barriers
when operating on only one aspect of a depth-stencil image.
2018-01-30 15:44:18 +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
727aa4d97e
[dxgi] Use VK_PRESENT_MODE_FIFO instead of MAILBOX 2018-01-30 08:53:00 +01:00
Philip Rebohle
c0cd51764d
[dxgi] Remove SyncInterval implementation
Poorly tested, may cause trouble
2018-01-30 08:45:50 +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
fb641a3dc8
[dxvk] Create dummy sampler 2018-01-29 20:54:09 +01:00
Philip Rebohle
9fbddf57df
[dxvk] Emit dynamic state after binding a graphics pipeline
Fixes issues with stencil references becoming undefined under
certain circumstances. This issue was encountered in Heroes
of the Storm.
2018-01-29 20:01:49 +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
173e46e2bd
[dxbc] Added Hull/Domain shader specific structures 2018-01-29 14:37:06 +01:00
Philip Rebohle
08a916487d
[d3d11] Implemented CreateHullShader and CreateDomainShader 2018-01-29 11:53:57 +01:00
Philip Rebohle
cea86472bf
[dxvk] Fixed incorrect buffer create info 2018-01-29 11:44:02 +01:00
Philip Rebohle
52e8918b57
[d3d11] Added support for tessellation patch primitives 2018-01-29 11:31:00 +01:00
Philip Rebohle
8c4d94b570
[dxbc] Implemented OutputCoverageMask 2018-01-29 10:54:36 +01:00
Philip Rebohle
4ac38af8a7
[dxbc] Declare SV variables on first use 2018-01-29 10:41:41 +01:00
Philip Rebohle
8f554a210b
[d3d11] Silence unnecessary SOSetTargets errors 2018-01-29 01:15:51 +01:00
Philip Rebohle
d74be35e8c
[dxvk] Refactored physical buffer
Class is now much more generic, which should make things
easier for the upcomping deferred context implementation
2018-01-29 00:01:00 +01:00
Philip Rebohle
7e5a511fa0
[dxvk] Minor CS improvement 2018-01-29 00:00:19 +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
3144a57ade
[dxgi] Added typeless format flag 2018-01-28 18:06:08 +01:00
Philip Rebohle
8a3dcf7c99
[dxbc] Added support for SV_SampleIndex 2018-01-28 15:32:35 +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
6f51c136d2
[dxbc] Remove obsolete error message when resinfo is used with UAVs 2018-01-27 22:15:53 +01:00
Philip Rebohle
2e1e8d56a5
[dxbc] Removed branches around texture sample/gather ops
Not needed anymore thanks to dummy resources serving the same purpose.
2018-01-27 19:31:08 +01:00
Philip Rebohle
d1f76b96af
[dxvk] Added dummy resources for descriptors
This should finally shut up validation layers and also allows
the branches in texture sample operations to be removed.
2018-01-27 19:25:41 +01:00
Philip Rebohle
4e780f4f60
[dxvk] Fixed incorrect framebuffer attachment formats 2018-01-27 12:26:31 +01:00
Philip Rebohle
d3fe3622cc
[dxvk] Do not dispatch compute shaders if no pipeline is bound
Fixes crashes in Tomb Raider 2013.
2018-01-25 12:57:43 +01:00
Philip Rebohle
e4d49aeb66
[dxvk] Fixed reported size of staging buffers
Fixes staging slice allocation in Tomb Raider (2013),
and potentially other games which allocate large staging
buffers.
2018-01-24 15:44:40 +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
f53ada57f9
[dxvk] Fixed potentially problematic image barriers 2018-01-23 19:00:48 +01:00
Philip Rebohle
a1a7bb9092
[dxvk] DxvkBindingLayout -> DxvkPipelineLayout 2018-01-23 17:40:36 +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
226afa96c9
Revert "[dxvk] Use VK_IMAGE_LAYOUT_GENERAL for all render targets"
Actually this did not fix Homefront entirely and causes severe
performance degradation if textures are SHADER_READ_ONLY_OPTIMAL.
2018-01-23 14:19:52 +01:00
Raffarti
feae2988d6 Improvements for log files (#22)
* Improvements for log files
 - Added exec name to log files
 - Added DXVK_LOG_PATH environment variable to specify the log folder
* Remove .exe from log name
* log: add log level none
* log: corrected type for string position
2018-01-23 13:36:31 +01:00
Philip Rebohle
21e9173415
[dxvk] Use VK_IMAGE_LAYOUT_GENERAL for all render targets
This is a workaround for rendering issues in some games where render
targets get seemingly randomly cleared for unknown reasons. Fixes
Homefront.
2018-01-23 13:27:41 +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
0900dfd0e3
[dxvk] Removed explicit image barriers for render passes
Instead, the color format and layout will now be set in
the render pass description. This slows down render pass
lookups but may improve efficiency and work around driver
bugs.
2018-01-22 19:21:46 +01:00
Philip Rebohle
05f0008891
[hud] Changed vertex buffer format
Should fix the HUD on Nvidia cards, which do not
support SRGB conversion for vertex input data.
2018-01-22 01:20:07 +01: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
Raffarti
16eef61a7a Added script to setup dlls in wine (#19)
* Added script to setup dlls in wine

* Fix no WINEPREFIX confirmation

* move wine_utils outside src
2018-01-21 11:17:15 +01:00
Clément Guérin
f88a1d5dce [dxvk] fix missing renderPassEnd calls
vkCmdBlitImage and vkCmdResolveImage need to be called outside a render
pass. flatten logic.

this fixes mipmap generation with Trackmania.
2018-01-20 19:50:49 -08: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
Philip Rebohle
70b639784b
Revert "[d3d11] Temporary fix for Presenter <-> CS thread sync issue"
This reverts commit 3118012ada.
2018-01-21 02:57:36 +01:00
Philip Rebohle
3118012ada
[d3d11] Temporary fix for Presenter <-> CS thread sync issue 2018-01-21 02:48:36 +01:00
Philip Rebohle
51e89f00be
[d3d11] Fixed flush order 2018-01-21 02:21:38 +01:00
Philip Rebohle
b923a2004f
[d3d11] Fixed image copy operation 2018-01-21 01:57:12 +01:00
Philip Rebohle
b7a00e32ec
[dxvk] Limit size of the CS command queue
Prevents memory leaks and fixes stuttering in Heaven.
2018-01-21 00:49:07 +01:00
Philip Rebohle
aaffc8e26f
[dxvk] Fixed incorrect image packing behaviour 2018-01-21 00:04:17 +01:00
Philip Rebohle
6ab7897127
[d3d11] Enabled command stream thread 2018-01-20 23:12:03 +01:00
Philip Rebohle
7d7cc1ceda
[d3d11] Record commands into a CS chunk 2018-01-20 22:52:18 +01:00
Philip Rebohle
aaf7b05625
[d3d11] Use EmitCs for buffer mapping 2018-01-20 22:28:15 +01:00
Philip Rebohle
f25b3c8b32
[d3d11] Use EmitCs for resource updates 2018-01-20 21:42:11 +01:00
Philip Rebohle
a84e45bdd2
[dxvk] Added convenience functions to work with compressed image sizes 2018-01-20 20:31:47 +01:00
Philip Rebohle
496acd71b1
[d3d11] Use EmitCs for some Copy/Clear operations 2018-01-20 19:30:31 +01:00
Philip Rebohle
9441974497
[d3d11] Use EmitCs for state object updates 2018-01-20 19:11:42 +01:00
Philip Rebohle
cbbfefbbb7
[d3d11] Use EmitCs for shader and resource binding methods 2018-01-20 18:54:37 +01:00
Philip Rebohle
7fad731096
[d3d11] Use EmitCs for Input Assembly methods 2018-01-20 18:34:25 +01:00
Philip Rebohle
e951a5ea0c
[d3d11] Use EmitCs for draw and dispatch calls 2018-01-20 18:26:17 +01:00
Philip Rebohle
4d17b1752f
[d3d11] Use EmitCs for general setup and synchronization methods 2018-01-20 18:01:43 +01:00
Philip Rebohle
2dd24a14d2
[dxvk] Refactored blend constants
This will make things a little less painful when capturing
blend constants in a lambda function, as required for CSMT.
2018-01-20 15:41:06 +01:00
Philip Rebohle
62a43cbdbe
[d3d11] Add EmitCs method to D3D11DeviceContext
Subsequently, all calls into the DXVK context will be
replaced by calls to the EmitCs method with a lambda.
2018-01-20 15:29:10 +01:00
Philip Rebohle
0789c5f10d
[dxvk] Remove command dispatch methods from CS thread
This was bad design. The user of this API should record commands
into a chunk manually and decude what to do with it once it's full.
2018-01-20 14:59:50 +01:00
Philip Rebohle
0b426a0942
[d3d11] Added new D3D11ImmediateContext class
Initial prep work for both CSMT and Deferred Contexts.
2018-01-20 13:22:44 +01:00
Philip Rebohle
d522e19bab
[dxbc] Implemented SampleB instruction 2018-01-20 10:21:27 +01:00
Philip Rebohle
f88adc4e82
[d3d11] Implemented mipmap generation 2018-01-20 09:46:54 +01:00
Philip Rebohle
a644eebfd7
[d3d11] Fixed initialization of compressed images 2018-01-19 18:11:20 +01:00
Philip Rebohle
2a364c557b
[d3d11] Implemented image mapping for reads 2018-01-19 18:09:49 +01:00
Philip Rebohle
aa02612b9e
[dxbc] Do not set ImageOperandsLodMask for multisample loads
This should fix invalid SPIR-V being generated in The Witness.
2018-01-19 09:09:38 +01:00
Philip Rebohle
3bb7b45c33
[dxvk] Use strict rasterization order when depth test is disabled 2018-01-19 09:01:28 +01:00
Philip Rebohle
7d721797fe
[dxvk] To not attempt to clear compressed image
The current code violates the rules for vkCmdClearImage if
the destination image is compressed.
2018-01-19 01:36:22 +01:00
Philip Rebohle
1f070ec26c
[d3d11] Downgraded input layout message to debug
Specifying a vertex attribute that is not actually consumed by
the shader is perfectly legal and may improve performance if
the number of state changes can be reduced.
2018-01-19 01:25:19 +01:00
Philip Rebohle
0b867566f1
Merge pull request #9 from notaz/gcc6_build
Fix build on gcc6
2018-01-19 00:28:07 +01:00
Philip Rebohle
a0acbeec72
[dxvk] Optimized buffer renaming
Helps applications which frequently update buffers
through either Map()/Unmap() or UpdateSubresource.
2018-01-19 00:20:05 +01:00
Grazvydas Ignotas
d1ae152f60 Fix build on gcc6
Fixes build with mingw from ubuntu 17.10.
Missing C++17 features I guess.
2018-01-19 00:59:40 +02:00
Philip Rebohle
ec0ff35b96
[dxvk] Fixed offset in buffer to image copy 2018-01-18 19:09:21 +01:00
Philip Rebohle
82ffa88efd
[dxvk] Fixed DxvkPhysicalBufferSlice initialization 2018-01-18 18:53:33 +01:00
Philip Rebohle
9334873188
[dxvk] Cleaned up DxvkBufferSlice and added documentation 2018-01-18 18:50:44 +01:00
Philip Rebohle
6e6c290e01
[d3d11] Use DxvkPhysicalBufferSlice for resource copies and buffer views 2018-01-18 18:33:13 +01:00
Philip Rebohle
3212fc7444
[dxvk] Use DxvkPhysicalBufferSlice for indirect draws and buffer binding 2018-01-18 18:01:47 +01:00
Philip Rebohle
f41a7c7c87
[dxvk] Use DxvkPhysicalBufferSlice for buffer memory barriers 2018-01-18 17:32:34 +01:00
Philip Rebohle
a87ae8aba4
[dxvk] Added DxvkPhysicalBuffer to back virtual buffers
This is the first step to optimizing buffer updates for applications
that frequently invalidate buffers. The goal is to reduce the number
of buffer allocations per frame and reduce the cost of invalidation.
2018-01-18 15:52:57 +01:00
Philip Rebohle
9acc4a1a82
[d3d11] Map default constant buffers to host memory
Improves performance in applications that use UpdateSubresources
to frequently update constant buffers, such as Unigine Heaven,
Unigine Valley and Homefront.
2018-01-18 11:55:27 +01:00
Philip Rebohle
601aa54139
[dxvk] End render pass before a staged image upload
Fixes Heaven. Also removes an unnecessary error check
2018-01-18 08:50:14 +01:00
Philip Rebohle
af6bc1e7e2
[d3d11] Enable dual-source blending feature
Required for Unigine Heaven.
2018-01-18 08:42:57 +01:00
Philip Rebohle
3ac25d5e2a
[d3d11] Updated D3D11CreateDevice
Since D3D11Device and D3D11DeviceContext share the same reference
counter, we can actually create a device if the device pointer is
missing. Fixes Homefront.
2018-01-18 01:18:22 +01:00
Philip Rebohle
ade9cd0587
[d3d11] Removed some uninteresting log messages
Reduces log spamming in Homefront.
2018-01-17 23:49:26 +01:00
Philip Rebohle
8b27dee0e5
[dxbc] Implemented swapc 2018-01-17 21:47:18 +01:00
Philip Rebohle
6e3cb5dfdc
[d3d11] Enable depth clamp
This is technically incorrect, but Tomb Raider requires this to
render parts of the UI.
2018-01-17 19:39:06 +01:00
Philip Rebohle
7fb89f22c6
[d3d11] Implemented normalization for shader resource view parameters
Fixes image view creation in Tomb Raider 2013 and potentially other games.
2018-01-17 15:19:55 +01:00
Philip Rebohle
0f049edde6
[dxbc] Fixed shift operations 2018-01-17 05:35:41 +01:00
Philip Rebohle
178a8c7c4b
[dxgi] Removed leftover debug message 2018-01-17 05:34:51 +01:00
Philip Rebohle
596541ed02
[dxbc] Implemented gather instructions and pixel shader SVs 2018-01-17 02:12:29 +01:00
Philip Rebohle
ce129d4172
[dxgi] Fixed DXGI_FORMAT_A8_UNORM component mapping 2018-01-17 01:13:46 +01:00
Philip Rebohle
b3cd126d0f
[dxbc] Implemented ld2dms 2018-01-16 22:39:30 +01:00
Philip Rebohle
4c8c23eea1
[d3d11] Reduced log spamming, improved parameter naming consistency 2018-01-16 20:10:49 +01:00
Philip Rebohle
052f231295
Merge remote-tracking branch 'libcg/stadium2' 2018-01-16 19:27:23 +01:00
Philip Rebohle
d3f84688cc
[dxvk] Make use of VK_AMD_rasterization_order
May slightly improve GPU performance in some scenarios.
2018-01-16 15:00:19 +01:00
Philip Rebohle
27573e9b25
[dxvk] Added app and device specific options 2018-01-16 13:58:57 +01:00
Philip Rebohle
bc5dfc1cad
[dxvk] Refactored device extension handling
Support for extensions can now be queried from the device
object in an efficient way. This will allow the backend to
use optional extensions for the purpose of optimization.
2018-01-16 13:24:36 +01:00
Philip Rebohle
8805958736
[util] Fixed message logging to file 2018-01-16 12:32:09 +01:00
Philip Rebohle
18835c324e
[util] Added getExeName() function
This will allow DXVK to apply game-specific
features or workarounds in the future.
2018-01-16 11:33:34 +01:00
Philip Rebohle
0bb991a1fa
[d3d11] Using proper layout for depth textures read by shaders
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL works took, but
this may or may not improve performance.
2018-01-15 13:08:34 +01:00
Philip Rebohle
1a40a272bd
[util] Fixed compiler issue with older GCC versions 2018-01-15 13:08:23 +01:00
Clément Guérin
340438954d [d3d11] copy all layers and mipmaps in CopyResource
avoid using potentially undefined mappedSubresource
2018-01-14 12:17:54 -08:00
Clément Guérin
482147d929 [d3d11] support textures in CopyResource
fixes green textures and log spam with TrackMania
2018-01-14 11:09:14 -08:00
Clément Guérin
fc43b83623 [d3d11] move supported query check to d3d11_query
it's better to have everything in one place.
2018-01-14 11:09:14 -08:00
Clément Guérin
2844d4bad7 [d3d11] don't fail when creating unsupported queries
just keep going, and fail when trying to use them. this lets ManiaPlanet boot.
2018-01-14 11:09:14 -08:00
Philip Rebohle
86db5aab67
[dxvk] Increased queued command submission limit
Potentially reduces the number of sync points when a game
is primarily GPU limited. Improves performance in Nier by
a few frames per second.
2018-01-14 11:23:14 +01:00
Philip Rebohle
e05c961b9e [dxvk] Limit vkCmdUpdateBuffer size to 4kB
This should help prevent issues with command buffers becoming
too big. Larger uploads will use a staging buffer instead.
2018-01-13 23:41:36 +01:00
Philip Rebohle
198c9389af [d3d11] Flush resource init commands
Like regular command buffers, the command buffers used for resource
initialization should not be able to grow indefinitely.
2018-01-13 23:40:17 +01:00
Philip Rebohle
c7a9763f6d [d3d11] Re-implemented draw call-based context flush
After doing more testing, it became apparent that this
optimization is beneficial most of the time and may also
improve stability by limiting the number of commands
recorded into a single command buffer.
2018-01-13 23:09:03 +01:00
Philip Rebohle
c1f16d36bd [dxvk] Implemented local pipeline cache 2018-01-13 22:18:32 +01:00
Philip Rebohle
10269876e3 [dxgi] Initial fullscreen support
The implementation is highly experimental and may cause issues.
Tested with DXUT-based Microsoft SDK samples and Nier:Automata.
2018-01-13 18:56:15 +01:00
Philip Rebohle
745ded47e0 [dxgi] Removed remaining SDL code 2018-01-13 16:36:04 +01:00
Philip Rebohle
2b5bb16334 [dxgi] Removed SDL dependency from DxgiOutput 2018-01-13 16:32:46 +01:00
Philip Rebohle
65d84dabfe [d3d11] Removed draw-call based context flush
Combined with the recent command submission optimization,
this actually had a negative impact on performance.
2018-01-13 05:27:26 +01:00
Philip Rebohle
ac1fe7c2b0 [d3d11] Optimized command submission 2018-01-13 05:00:27 +01:00
Philip Rebohle
96a97aa0c4 [dxvk] Added HUD
Experimental version of a HUD which displays information
about the hardware, driver version, and frames per second.
2018-01-13 03:53:33 +01:00
Philip Rebohle
672675ba78 [d3d11] Implemented OMSetRenderTargetsAndUnorderedAccessViews
Note that this does *not* properly implement UAV rendering in
the backend yet. For that, we need to add memory barriers.
2018-01-12 15:38:07 +01:00
Philip Rebohle
38fa9ce9c9 [dxvk] Removed unused resource warning 2018-01-12 14:49:08 +01:00
Philip Rebohle
5dd9fea011 [dxvk] Implemented input layout validation
Checks whether all input slots consumed by the vertex shader
are provided by the input layout, and disables rendering in
case the state validation fails. This should hopefully fix
GPU lockups in Nier:Automata.
2018-01-12 14:25:26 +01:00
Philip Rebohle
1164ed30c3 [dxvk] Minor fixes 2018-01-12 12:51:39 +01:00
Philip Rebohle
2dd2d16a09 [d3d11] Return S_OK from GetDeviceRemovedReason 2018-01-12 11:39:59 +01:00
Philip Rebohle
19d81f1aef [d3d11] Made shader name public for debugging 2018-01-12 00:43:19 +01:00
Philip Rebohle
3fc064f434 [d3d11] Added shader module creation log 2018-01-12 00:06:54 +01:00
Philip Rebohle
a0fafe3043 [util] Log level can now be controlled manually 2018-01-12 00:05:09 +01:00
Philip Rebohle
d1d5f10520 [dxvk] Added debug messages for unbound resources 2018-01-11 21:40:04 +01:00
Philip Rebohle
5f5bb69fa7 [dxbc] Image queries now support UAV images 2018-01-11 21:39:17 +01:00
Philip Rebohle
a875e045c5 [dxvk] Moved descriptor set updates into DxvkContext 2018-01-11 20:31:18 +01:00
Philip Rebohle
30eb43a284 [dxvk] Minor memory management tweaks 2018-01-11 19:06:58 +01:00
Philip Rebohle
32078033c6 [d3d11] Fixed UAV counter buffer binding 2018-01-11 17:12:39 +01:00
Philip Rebohle
69c5af4455 [dxbc] Implemented append/consume functionality
Nier will now render the bullets properly.
2018-01-11 17:11:51 +01:00
Philip Rebohle
f5bfaac4b3 [d3d11] Use cube array views for non-array cube maps
This is actually necessary in order to properly render the map mode in
Nier:Automata, which binds non-array cube maps to a cube array slot.
2018-01-11 12:33:38 +01:00
Philip Rebohle
c1d6c20066 [d3d11] Implemented D3D11 parts of append/consume buffers 2018-01-11 12:23:55 +01:00
Philip Rebohle
8bccbbccc8 [dxvk] Using derivative graphics pipelines 2018-01-10 22:54:00 +01:00
Philip Rebohle
3ab75c8538 [dxvk] Fixed potential bugs in vertex buffer binding code 2018-01-10 21:53:13 +01:00
Philip Rebohle
ed642a57a7 [dxvk] Simplified state-based pipeline lookup 2018-01-10 21:28:20 +01:00
Philip Rebohle
9c90c1ac00 [dxvk] Optimized pipeline state updates 2018-01-10 20:40:10 +01:00
Philip Rebohle
1b67ffaed2 [d3d11] Added default sampler state 2018-01-10 19:07:55 +01:00
Philip Rebohle
74722fa693 [dxvk] Implementing unbound resource handling (4/4)
The shader compiler now queries whether a constant buffer or texture is
bound before trying to access it for reading. This is not yet implemented
for image fetch operations, atomic operations, or buffer load/store ops.
2018-01-10 18:58:17 +01:00
Philip Rebohle
fe02c5d6b9 [dxvk] Implementing unbound resource handling (3/4)
The shader compiler will now generate specialization constants
for shader resources, uniform access views, and constant buffers.
2018-01-10 13:44:04 +01:00
Philip Rebohle
39b5d84d6a [dxgi] Added missing view type definition 2018-01-10 13:43:23 +01:00
Philip Rebohle
b22d56ac06 [dxvk] Implementing unbound resource handling (2/4)
Refactored pipeline binding and descriptor set updates so that
no descriptor info gets written for unbound resources.
2018-01-10 12:13:46 +01:00
Philip Rebohle
c64103c73f [dxvk] Implementing unbound resource handling (1/4)
In order to emulate D3D11 behaviour when a resource is not bound,
we use specialization constants. This requires further changes in
the shader compiler.
2018-01-10 11:44:40 +01:00
Philip Rebohle
38ee8f4f95 [dxvk] Unbound resource prep work 2018-01-10 10:23:51 +01:00
Philip Rebohle
ee796b966d [dxvk] Reduced staging buffer size
Allocating as much memory as we did was wasteful. The new limit may
still be too generous for most applications, but this will require
more testing.
2018-01-10 10:22:33 +01:00
Philip Rebohle
ab2c7de523 [d3d11] Use CUBE instead of CUBE_ARRAY for non-array cubes
Since the change has been reverted in the DXBC compiler, it also needs
to be changed back during view creation.
2018-01-10 10:18:26 +01:00
Philip Rebohle
bde8ba9400 [dxbc] Simplified f16tof32 implementation 2018-01-10 09:16:42 +01:00
Philip Rebohle
da867d4bca [dxvk] Replaced DxvkResourceType by VkImageViewType 2018-01-09 20:35:29 +01:00
Philip Rebohle
3419d55dee [dxvk] Tweaked descriptor allocation 2018-01-09 20:04:50 +01:00
Philip Rebohle
e2d9693ac3 [dxvk] Fixed compressed texture upload
Fixes issues with particles being overly bright in Nier:Automata.
2018-01-09 19:08:23 +01:00
Philip Rebohle
c7d0729e06 [dxbc] Fixed bit field instructions 2018-01-09 15:39:41 +01:00
Philip Rebohle
180cc35c84 [d3d11] Use VK_IMAGE_VIEW_TYPE_CUBE_ARRAY for non-array cube maps
Games may bind simple cube map views to a resource slot that requires
a cube map array view. Fixes GPU lockups in Nier: Automata.
2018-01-09 00:51:10 +01:00
Philip Rebohle
7fd1f57902 [dxbc] Fixed invalid types and IDs in generated SPIR-V 2018-01-08 22:26:45 +01:00
Philip Rebohle
c7e33e636e [dxvk] Fixed vertex buffer binding issue
If an application binds vertex buffers before changing the input layout,
it might happen that the vertex buffers are not bound correctly to the
Vulkan command buffer. This issue is now resolved.
2018-01-08 20:23:21 +01:00
Philip Rebohle
cb748c786a [dxvk] Added missing image barrier after compute shader execution 2018-01-08 19:07:57 +01:00
Philip Rebohle
3925675b89 [d3d11] Optimized command submission
The context will now be flushed after a render pass that consisted of
several hundreds of draw calls. This way the GPU should be kept busy.
2018-01-08 17:45:21 +01:00
Philip Rebohle
9024f8bb2c [dxvk] Inlined all frequently called DxvkCmdList methods 2018-01-08 14:21:50 +01:00
Philip Rebohle
7912f6c604 [dxbc] Track dimension of resource slots
This shall help binding dummy resources in case an application
binds none or an incompatible resource to a slot.
2018-01-08 13:39:37 +01:00
Philip Rebohle
ad10ab07f8 Revert "[d3d11] Added dummy resoruce binding for buffers"
This approach will not work if the d3d11 context binds an
incompatible resouce in case the pipeline itself changes.
2018-01-08 13:01:31 +01:00
Philip Rebohle
24ad9e730c [d3d11] Added dummy resoruce binding for buffers
Fixes crashes when a D3D11 application uses unbound resources
in shaders. Allows Nier:Automata to play back cutscenes.
2018-01-08 10:17:52 +01:00
Philip Rebohle
5cfbb74455 [dxvk] Added new convenient buffer slice constructor 2018-01-07 21:46:26 +01:00
Philip Rebohle
7cc65be16b [dxbc] Fixed redundant bitcasts 2018-01-07 21:04:23 +01:00
Philip Rebohle
f4cd90d6fa [dxbc] Implemented vendor-specific workarounds in an attemt to fix Nvidia 2018-01-07 20:05:27 +01:00
Philip Rebohle
4e06f498dd [d3d11] Fixed several mip level-related bugs
- When a D3D11 texture was created with a mip level count of zero,
  DXVK would compute the correct number of mip levels, but not write
  them back to the description field.
- Framebuffers would always use the size of the top level, not the
  mip levels that were actually attached to the framebuffer.
- Several image copy operations did not handle mip levels other
  than the top mip level correctly.
2018-01-06 02:09:07 +01:00
Philip Rebohle
f7e1efbaaf [dxbc] Fixed AtomicUmax emitting the wrong instruction 2018-01-05 19:48:45 +01:00
Philip Rebohle
356591cc99 [d3d11] Fixed viewport offset 2018-01-05 16:53:12 +01:00
Philip Rebohle
1dfd62a118 [dxbc] Added debug name to x# registers 2018-01-05 16:46:17 +01:00
Philip Rebohle
e7bf76f5ef [d3d11] Re-implemented image mapping
Image mapping now returns the map pointer of a separate
buffer, rather than the the image itself. This fixes
issues with applications that ignore the RowPitch
and/or DepthPitch fields of the MappedSubresource struct.
2018-01-05 03:01:19 +01:00
Philip Rebohle
93a5cf093c [d3d11] Refactored texture interfaces
All texture classes now use the common info structure
internally as well so that it can be queried efficiently.
2018-01-05 01:15:56 +01:00
Philip Rebohle
c816078f13 [dxbc] Disabled clip and cull planes for now
We would have to write these values, but the feature
is currently not supported in the D3D11 implementation.
2018-01-03 12:46:04 +01:00
Philip Rebohle
6dfe09da7b [dxbc,d3d11] Minor fixes 2018-01-03 12:26:27 +01:00
Philip Rebohle
75152ae16f [dxvk] Made VK_KHR_maintenance2 optional
Unlike VK_KHR_maintenance1, not all D3D11 applications rely on
features provided by this extension. Keeping this optional helps
with RenderDoc, which does not expose the extension.
2018-01-03 02:38:55 +01:00
Philip Rebohle
da751a46f7 [dxbc] Removed in-shader bounds checking
It looks like this is not needed at the moment, and it needs more work.
2018-01-03 02:37:44 +01:00
Philip Rebohle
755e6d36e3 [d3d11] Pre-clear images that would have undefined contents
Fixes significant visual bugs in Nier: Automata that were caused
by partially initialized images.
2018-01-02 21:32:39 +01:00
Philip Rebohle
98bcfec0f3 [dxbc] More debug info for constant buffers 2018-01-02 20:20:52 +01:00
Philip Rebohle
bfac9eb737 [dxbc] Added bound checking for some texel fetch operations 2018-01-02 16:57:37 +01:00
Philip Rebohle
043330132f [dxbc] Added experimental support for atomic operations 2018-01-02 12:07:49 +01:00
Philip Rebohle
55bc01d523 [d3d11] Minor bug fixes 2018-01-02 12:07:30 +01:00
Philip Rebohle
d4db877cdc [dxvk] Fixed staging buffer alignment
Four-byte alignment is required in order to avoid illegal
vkCmdCopyBufferToImage calls. We align staging buffer slices to
a full cache line in order to improve performance.
2018-01-01 23:32:08 +01:00
Philip Rebohle
8c0e797f37 [dxbc] Vertex inputs now respect attribute type
Fixes issues with integer attributes which were encountered in Nier: Automata.
2018-01-01 23:31:01 +01:00
Philip Rebohle
21582b955a [dxvk] Require VK_KHR_maintenance2
This extension helps with some compatibility issues that are
somewhat inevitable during the D3D11->Vulkan translation.
2018-01-01 23:27:51 +01:00
Philip Rebohle
d8574666cb [dxgi] Presenter now sets depth/stencil state properly 2018-01-01 23:00:07 +01:00
Philip Rebohle
4dc2c9e92c [d3d11] Implemented GetData stub for queries 2018-01-01 20:59:54 +01:00
Philip Rebohle
0866e1b4f2 [d3d11] Implemented Image UAV creation 2018-01-01 19:46:19 +01:00
Philip Rebohle
5ceb041a49 [d3d11] Optimized texture image layouts 2018-01-01 19:03:05 +01:00
Philip Rebohle
4fc2ea25b8 [dxbc] Implemented typed UAV load/store 2018-01-01 17:14:06 +01:00
Philip Rebohle
fd2bb610eb [d3d11] Implemented indirect draws and dispatch 2017-12-31 01:31:08 +01:00
Philip Rebohle
91a5eb963b [d3d11] Minor formatting + doc improvements 2017-12-31 00:25:19 +01:00
Philip Rebohle
4412f2f5ff [dxgi] Reimplemented parts of DxgiSwapchain with win32 APIs
This solves issues in applications that create more than one
swap chain for a given window, and helps applications that
don't like SDL interference in general. Fullscreen support
is currently missing entirely.
2017-12-31 00:23:34 +01:00
Philip Rebohle
588ceba1d1 [d3d11] Ignoring unknown semantics in input layouts 2017-12-30 19:11:20 +01:00
Philip Rebohle
b7ce9660c3 [d3d11] Implemented CopySubresourceRegion for images 2017-12-30 19:10:45 +01:00
Philip Rebohle
5332891748 [dxbc] Implemented switch-case instructions 2017-12-30 17:22:36 +01:00
Philip Rebohle
006e1b25e6 [d3d11] Fixed shader semantic name comparison 2017-12-30 15:30:31 +01:00
Philip Rebohle
e740adfcb7 [dxbc] Implemented f16 pack/unpack instructions 2017-12-30 13:18:31 +01:00
Philip Rebohle
f93745adcf [dxbc] Implemented bfi and bfe instructions 2017-12-30 03:44:19 +01:00
Philip Rebohle
1373fe5fcc [dxbc] Implemented bufinfo instruction 2017-12-30 01:26:37 +01:00
Philip Rebohle
b968aa0472 [dxbc] Implemented continue instructions 2017-12-29 22:54:25 +01:00
Philip Rebohle
660ac25b18 [dxgi] ... 2017-12-29 22:54:10 +01:00
Philip Rebohle
c38f3c69ad [d3d11] Query prep work 2017-12-29 22:20:31 +01:00
Philip Rebohle
298eeedcc4 [dxbc] Implemented round instructions
Also fixed potential numerical stability issues in with min/max
instructions and saturation when an operand is NaN.
2017-12-29 19:26:59 +01:00
Philip Rebohle
2e215e24e5 [d3d11] Hiding message that initial UAV counts are not supported
They are not supported, but some applications pass invalid pointers
to the fuction even if the feature itself is not used.
2017-12-29 19:26:18 +01:00
Philip Rebohle
793ea6d914 [dxvk] Descriptor set updates now use descriptor type info
This fixes an issue where the wrong resource would be used for a
descriptor set update if multiple resources have been bound to a
single resource slot.
2017-12-29 15:06:33 +01:00
Philip Rebohle
78cb021f77 [d3d11] Added support for D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS 2017-12-29 12:51:54 +01:00
Philip Rebohle
6283497bfa [d3d11] Fixed shader resource view creation for structured buffers 2017-12-29 12:11:45 +01:00
Philip Rebohle
5df89fb657 [dxbc] Fixed OpImageRead and OpImageWrite operand types 2017-12-29 12:11:19 +01:00
Philip Rebohle
8691d29185 [dxvk] Initial support for post-compute barriers 2017-12-29 01:09:54 +01:00
Philip Rebohle
a51439fb29 [dxbc] Implemented thread group shared memory and barriers 2017-12-29 00:51:31 +01:00
Philip Rebohle
a3fe40051f [d3d11] Initial support for unordered access views
Currently restricted to buffers on the API side. Typed UAVs
are not yet supported by the shader compiler. This is enough
to run very simple compute shaders.
2017-12-28 19:05:53 +01:00
Philip Rebohle
847bfdd8ae [dxbc] Implemented raw and structured UAV stores 2017-12-28 18:37:02 +01:00
Philip Rebohle
8592bb4b47 [d3d11] Fixed buffer usage flags
Shader resources and UAVs are always created as texel buffer
views rather than storage buffers or uniform buffers.
2017-12-28 16:35:07 +01:00
Philip Rebohle
410d3a86d9 [d3d11] Added support for raw and structured shader resource views 2017-12-28 16:33:42 +01:00
Philip Rebohle
a72727a173 [dxbc] Added support for structured and raw buffers 2017-12-28 16:03:17 +01:00
Philip Rebohle
c3ccc1a5c7 [dxgi] Fixed resource lifetime issue in presenter 2017-12-27 15:55:46 +01:00
Philip Rebohle
e668c65017 [d3d11] Experimental support for typed shader buffer views 2017-12-27 14:32:07 +01:00
Philip Rebohle
7f5fa18d0b [dxbc] Enabled SPV_KHR_shader_draw_parameters for vertex shaders 2017-12-27 14:31:38 +01:00
Philip Rebohle
5ce975eed9 [dxbc] Fixed SV_VERTEXID and SV_INSTANCEID
Apparently, these two system values ignore the base vertex
and base instance from the draw call. This is not documented,
but in line with what the AMD driver does on Windows.
2017-12-27 12:49:25 +01:00
Philip Rebohle
24b9d9d99a [dxbc] Experimental support for ld,resinfo 2017-12-27 01:37:15 +01:00
Philip Rebohle
788f275315 [d3d11] UAV prep work + cleanups 2017-12-27 01:36:45 +01:00
Philip Rebohle
8d5a2b92f9 [d3d11] Cleaned up primitive topology code 2017-12-26 16:25:51 +01:00
Philip Rebohle
0d3a1b25a1 [d3d11] Initial support for image updates + mapping 2017-12-25 20:40:48 +01:00
Philip Rebohle
a368d04fa0 [dxvk] Removed leftover line of code 2017-12-25 16:09:00 +01:00
Philip Rebohle
89138e5b40 [dxvk] Fixed lockup issue in thread destructors 2017-12-25 16:05:11 +01:00
Philip Rebohle
24bceb86c2 [dxvk] Fixed 3D image upload 2017-12-24 15:29:10 +01:00
Philip Rebohle
3762df6cb6 [d3d11] Added proper support for 1D and 3D shader resources 2017-12-24 13:33:22 +01:00
Philip Rebohle
a3f9fa7547 [d3d11] Implemented 1D and 3D texture creation 2017-12-23 17:05:07 +01:00
Philip Rebohle
82b2c40405 [dxvk] Simplified resource binding
The backend no longer differentiates between compute pipeline
resources and graphics pipeline resources.
2017-12-23 15:11:23 +01:00
Philip Rebohle
89290e9eab [dxbc] Minor fixes 2017-12-22 20:15:44 +01:00
Philip Rebohle
f301633516 [dxbc] Compute shader prep work 2017-12-21 17:27:40 +01:00
Philip Rebohle
46717529fa [dxbc] Implemented unsigned comparators and sample_l 2017-12-21 17:14:11 +01:00
Philip Rebohle
289da8065d [d3d11] Implemented border color support 2017-12-21 16:54:20 +01:00
Philip Rebohle
3e4e5191a8 [dxbc] Increased number of clip/cull distances
Clip and cull distances can be defined as multi-component
vectors in D3D11. We still need to figure out how to map
them to the actuall cull distance array.
2017-12-21 16:28:42 +01:00
Philip Rebohle
f947fb5d44 [dxbc] Refactored system value mapping
Restores geometry shader support.
2017-12-21 16:00:36 +01:00
Philip Rebohle
2e4275649e [dxbc] Implemented input mapping + sample controls
Input variables are now copied into a temporary array, which allows
dynamic indexing and which also allows us to use system values that
are mapped to input registers in DXBC. This breaks geometry shaders
for now, however.
2017-12-21 12:37:20 +01:00
Philip Rebohle
109ce0a695 [dxbc] Implemented sample_d and vector shift instructions 2017-12-20 23:50:39 +01:00
Philip Rebohle
6ff709513c [dxbc] Added indexable temps 2017-12-20 22:50:05 +01:00
Philip Rebohle
518b469742 [dxvk] Added command stream classes
While these are not being used as of yet, these classes can be
used to implement command stream multithreading in the future.
They are also useful to implement command lists for deferred
contexts, which are a core feature of D3D11.
2017-12-20 22:17:14 +01:00
Philip Rebohle
41d660f220 [spirv] Added image operand structure for more flexible sample ops 2017-12-20 20:21:44 +01:00
Philip Rebohle
84190369ab [d3d11] Optimized resource binding methods 2017-12-20 17:37:46 +01:00
Philip Rebohle
659ec7b59d [d3d11] Added DXGI format properties 2017-12-20 14:54:24 +01:00
Philip Rebohle
b4e10b7f06 [dxbc] Fixed sampler types for depth-compare operations 2017-12-20 13:41:04 +01:00
Philip Rebohle
2ed2d892d6 [dxvk] Optimized resource binding
Fixes a few bottlenecks that were encountered in the Cascading Shadow
Maps demo from the Microsoft SDK. Performance is now slightly better
than wined3d with CSMT, MESA_NO_ERROR and mesa_glthread enabled.
2017-12-20 12:13:08 +01:00
Philip Rebohle
f68655feff [dxvk] Separated buffer renaming from allocation 2017-12-20 02:58:36 +01:00
Philip Rebohle
70e5314cc6 [dxvk] Optimized resource tracking
Putting all resources that are used by a command list
into a vector instead of a hash set is more efficient.
2017-12-20 02:45:57 +01:00
Philip Rebohle
d2b676b551 [dxvk] Fixed descriptor pool leak 2017-12-20 00:16:59 +01:00
Philip Rebohle
9865474bb4 [dxbc] Initial shadow sampler support 2017-12-20 00:16:49 +01:00
Philip Rebohle
d1720c0c52 [dxbc] Implemented derivatives 2017-12-19 20:26:05 +01:00
Philip Rebohle
342e99a11c [dxvk] Optimized descriptor updates 2017-12-19 19:36:44 +01:00
Philip Rebohle
5415b685de [dxbc] Implemented type conversion instructions 2017-12-19 18:12:18 +01:00
Philip Rebohle
95bc4b5826 [dxbc] Added immediate constant buffer support 2017-12-19 17:41:23 +01:00
Philip Rebohle
2c5b1c151f [d3d11] Refactored texture creation 2017-12-19 16:01:50 +01:00
Philip Rebohle
f2587ab1b6 [dxgi] Implemented separate color/depth format tables
This is required because in D3D11, typeless formats can be used
to create both depth and stencil images, and color formats can
be used to view depth images. In Vulkan, images and views that
are used as depth-stencil attachments will have to be created
with a depth-stencil format, so we have to take the image's
bind flags into account when picking a format.
2017-12-19 14:47:35 +01:00
Philip Rebohle
64a74735f8 [dxbc] oDepth no longer treated as standard output register
Fixes a crash in the shader compiler when starting up Tomb Raider.
2017-12-19 12:58:40 +01:00
Philip Rebohle
f97ea7fcea [d3d11] Implemented CheckFormatSupport and CheckFeatureSupport 2017-12-19 11:05:41 +01:00
Philip Rebohle
da2cc5a6a0 [dxvk] Fixed resource binding with invalidated buffers
When invalidating a constant buffer, the descriptor was not
updated, which usually led to the wrong resource being used
and could also cause crashes.

This fix also includes resource tracking for shader resources
on the graphics pipeline. The code needs to be made compatible
with the compute pipeline as well.
2017-12-19 01:08:48 +01:00
Philip Rebohle
6df9fc75d2 [dxbc] Implemented some new bit-wise logical instructions 2017-12-19 00:45:31 +01:00
Philip Rebohle
2b6cb25675 [d3d11] Implemented D3D11_APPEND_ALIGNED_ELEMENT 2017-12-18 23:24:10 +01:00
Philip Rebohle
13d4a3d87d [dxbc] Fixed bug with constant vector operands 2017-12-18 18:02:15 +01:00
Philip Rebohle
6cc3ff4ad8 [dxbc] Basic geometry shader (sm4) support 2017-12-18 16:41:05 +01:00
Philip Rebohle
c44b50ae4d [dxvk] Fixed bug where resource bindings would not be updated after rebinding the pipeline 2017-12-18 16:16:21 +01:00
Philip Rebohle
4d01517dd8 [d3d11] Geometry shader prep work 2017-12-18 12:53:53 +01:00
Philip Rebohle
38b989ec91 [dxvk] vkCmdUpdateBuffer can only be used if both offset and size are aligned to four bytes 2017-12-18 12:44:18 +01:00
Philip Rebohle
1e08c0744f [dxbc] Implemented basic control flow instuctions 2017-12-18 11:53:28 +01:00
Philip Rebohle
858913ec0c [dxbc] Shader decoder and compiler overhaul (2/2)
Removed the old decoder and the old shader compiler
and added documentation to the new structures.
2017-12-18 00:46:44 +01:00
Philip Rebohle
47347e38da [dxbc] Shader decoder and compiler overhaul (1/2)
Major rewrite of the entire shader decoder to generate easy
to parse data structures for the compiler, which ultimately
allows new instructions to be implemented more easily.
2017-12-18 00:28:54 +01:00
Philip Rebohle
2f99be9546 [dxbc] Implemented conditional move and comparison instructions 2017-12-17 01:36:41 +01:00
Philip Rebohle
ebabc0e578 [dxvk] Implemented proper swap chain synchronization 2017-12-16 21:30:48 +01:00
Philip Rebohle
1fe5b74762 Optimized command submission
Command submission now does not synchronize with the device every single
time. Instead, the command list and the fence that was created for it are
added to a queue. A separate thread will then wait for the execution to
complete and return the command list to the device.
2017-12-16 18:10:55 +01:00
Philip Rebohle
d5a49698b4 [dxvk] Implemented new memory allocator with sub-allocation 2017-12-16 16:48:42 +01:00
Philip Rebohle
85120d2d01 [d3d11] Reverted some design decisions related to buffer renaming 2017-12-16 13:35:11 +01:00
Philip Rebohle
d3b2174180 [dxvk] Implemented buffer renaming 2017-12-16 13:21:11 +01:00
Philip Rebohle
d9f38a7f42 [d3d11] Minor restructuring 2017-12-15 19:11:10 +01:00
Philip Rebohle
c0a963ae5b [dxvk] Renamed DxvkBufferSlice methods for convenience 2017-12-14 19:11:13 +01:00
Philip Rebohle
4502816bb6 [dxvk] Renamed DxvkBufferSlice methods for convenience 2017-12-14 19:09:53 +01:00
Philip Rebohle
9827ace3b0 [d3d11] Fixed buffer bindings with non-zero offsets 2017-12-14 19:07:08 +01:00
Philip Rebohle
6de6421dfd [d3d11] Refactoring resource creation (1/2) - buffers 2017-12-14 15:59:55 +01:00
Philip Rebohle
40241e0b22 [dxvk] DxvkBufferBinding -> DxvkBufferSlice 2017-12-14 15:24:43 +01:00
Philip Rebohle
2ad5f49f3e [dxbc] Shader compiler rewrite (2/2) 2017-12-14 12:53:53 +01:00
Philip Rebohle
bdce9a69fb [d3d11] Map() optimization removed, needs buffer renaming
The naive optimization to use staging buffers rather than actual mapping
turned out to be no more efficient than the previous approach. In order
to achieve good performance, buffer renaming must be implemented instead.
2017-12-14 12:29:41 +01:00
Philip Rebohle
4172b99952 [d3d11] Implemented naive Map() optimization when used with D3D11_MAP_WRITE_DISCARD 2017-12-13 17:49:08 +01:00
Philip Rebohle
a4eb807215 [dxbc] Implemented SinCos, Min and Max instructions 2017-12-13 16:35:01 +01:00
Philip Rebohle
464a3e7d4e [dxbc] Shader compiler rewrite (1/2)
Rewrote most parts of the shader compiler and removed the old one. The next
step is to improve documentation and remove the remaining traces of the old
shader compiler.
2017-12-13 15:32:54 +01:00
Philip Rebohle
a0db9198e3 [d3d11] Removed unnecessary Flush() 2017-12-12 15:39:31 +01:00
Philip Rebohle
3d4304096b [dxvk] Data buffer can now be created uninitialized 2017-12-12 15:39:20 +01:00
Philip Rebohle
0f26d1c627 [dxbc] Removed <optional> dependency 2017-12-12 13:00:37 +01:00
Philip Rebohle
2a266eaad4 [general] Added 32-bit support 2017-12-12 12:50:52 +01:00
Philip Rebohle
23abc82aa0 [dxvk] Added performance counter class 2017-12-12 10:29:17 +01:00
Philip Rebohle
180667ba65 [d3d11] Fixed depth function 2017-12-12 01:07:27 +01:00
Philip Rebohle
24feb7822d [d3d11] Added class linkage stub, required for FX11 samples 2017-12-12 01:07:07 +01:00
Philip Rebohle
3de427439b [dxvk] Added proper documentation for staging buffers 2017-12-12 00:41:56 +01:00
Philip Rebohle
5f0e94138e [dxvk] Implemented support for multisampled images and render targets 2017-12-12 00:27:49 +01:00
Philip Rebohle
de47fa29e1 [dxvk] Refactored Vulkan device and instance destruction, now more RAII friendly 2017-12-11 19:48:00 +01:00
Philip Rebohle
5f8976fbd4 [d3d11] Fixed triangle strips 2017-12-11 19:38:13 +01:00
Philip Rebohle
68ca71d8a4 [dxvk] Implemented recycling of command buffers and staging buffers 2017-12-11 19:17:08 +01:00
Philip Rebohle
037e9a643d [d3d11] Fixed yet another ref counting bug 2017-12-11 17:01:38 +01:00
Philip Rebohle
c3a29e9de0 [d3d11] Return success value when mapping succeeds instead of an error 2017-12-11 16:29:40 +01:00
Philip Rebohle
22c3cd80a1 [dxbc] Implemented mad instruction 2017-12-11 14:36:35 +01:00
Philip Rebohle
c246e03594 [d3d11] Imlpemented some state queries 2017-12-11 14:21:24 +01:00
Philip Rebohle
50b7293b8f [d3d11] Implemented blend state and depth-stencil state binding 2017-12-11 14:11:18 +01:00
Philip Rebohle
352b46fe80 [d3d11] Refactored state object binding 2017-12-11 13:07:27 +01:00
Philip Rebohle
4144e3229a [d3d11] Implemented blend state creation 2017-12-11 13:03:07 +01:00
Philip Rebohle
9b9840754d [d3d11] Added depth-stencil state objects 2017-12-11 01:43:15 +01:00
Philip Rebohle
2d918df0f0 [d3d11] d3d11_state_rs -> d3d11_rasterizer 2017-12-10 23:27:20 +01:00
Philip Rebohle
93f79742e9 [dxbc] Scalar values can be expanded to multiple vector components during a store operation 2017-12-10 22:35:55 +01:00
Philip Rebohle
d941446ca0 [dxbc] Fixed bug in decoder that would return wrong component masks 2017-12-10 21:13:22 +01:00
Philip Rebohle
5739e2f60f [dxvk] Added component mapping to image view info 2017-12-10 20:06:07 +01:00
Philip Rebohle
9acc9bf3e0 [dxbc] Implemented Rsq instruction 2017-12-10 20:01:38 +01:00
Philip Rebohle
4a3b04f605 [dxgi] Mapping DXGI's RGBX formats fo Vulkan RGBA formats, needs testing 2017-12-10 19:47:38 +01:00
Philip Rebohle
b4f85a2c2f [d3d11] Fixed mip-mapped texture creation 2017-12-10 19:10:17 +01:00
Philip Rebohle
c0f5b46f81 [dxvk] Added proper support for block-compressed image formats 2017-12-10 18:14:28 +01:00
Philip Rebohle
cd4f21a0c3 [d3d11] Implemented buffer mapping 2017-12-10 17:36:32 +01:00
Philip Rebohle
52f1c4fa00 [dxvk] Implemented staging buffers for large data transfers 2017-12-10 15:57:51 +01:00
Philip Rebohle
89ec199c34 [d3d11] Re-implemented shader read 2017-12-10 12:21:33 +01:00
Philip Rebohle
b4493d90d8 [dxbc] Initial support for sample instruction 2017-12-10 12:08:20 +01:00
Philip Rebohle
7c03495d74 [dxbc] Implemented shader resource declaration for images 2017-12-10 10:34:18 +01:00
Philip Rebohle
939faeaf27 [dxbc] Implemented sampler declaration 2017-12-10 03:39:35 +01:00
Philip Rebohle
9c997120e1 [d3d11] Implemented shader resource binding 2017-12-10 01:56:07 +01:00
Philip Rebohle
9a86178604 [d3d11] Fixed severe reference-counting issue in state objects 2017-12-10 00:55:30 +01:00
Philip Rebohle
3d6e88428a [com] ... yeah, almost. 2017-12-09 23:20:31 +01:00
Philip Rebohle
fa1ef8248e [com] Fixed crashes caused by reentrant Release() 2017-12-09 22:20:40 +01:00
Philip Rebohle
2b86a2f1f3 [d3d11] Changed the way default pipeline state is restored 2017-12-09 21:39:56 +01:00
Philip Rebohle
1160810687 [d3d11] Implemented sampler binding 2017-12-09 21:17:26 +01:00
Philip Rebohle
e335c817bc [d3d11] Implemented sampler creation 2017-12-09 20:49:56 +01:00
Philip Rebohle
50e8b35291 [d3d11] Minor fixes to D3D11Device::CheckMultisampleQualityLevels 2017-12-09 19:44:06 +01:00
Philip Rebohle
8e3c14d8ab [d3d11] Cleaned up view creation a bit 2017-12-09 19:36:38 +01:00
Philip Rebohle
1e6c11e3f2 [d3d11] Implemented shader resource view creation for 2D textures 2017-12-09 19:06:51 +01:00
Philip Rebohle
f484454854 [d3d11] Device children actually do hold a reference to the device 2017-12-09 15:57:05 +01:00
Philip Rebohle
12d4e68b24 [d3d11] Implemented multisample format support check 2017-12-09 14:46:23 +01:00
Philip Rebohle
c92d68417e [dxgi] Bumped DxgiDevice to IDXGIDevice1 2017-12-09 14:45:52 +01:00
Philip Rebohle
4a0ff5343a [dxgi] Added more format mappings 2017-12-09 14:41:37 +01:00
Philip Rebohle
d539c3e384 [d3d11] Allow the creation of fake D3D11 WARP and REF devices 2017-12-09 13:43:14 +01:00
Philip Rebohle
b3c391d071 [d3d11] Implemented depth-stencil binding and clear methods 2017-12-09 03:53:42 +01:00
Philip Rebohle
a43bb134e0 [dxvk] Initial support for format info 2017-12-09 02:44:59 +01:00
Philip Rebohle
36e6ba4ebc [d3d11] Replaced resource view classes by a generic template 2017-12-09 02:09:13 +01:00
Philip Rebohle
bfb05f24b8 [dxbc] Implemented support for MUL instruction 2017-12-09 01:49:30 +01:00
Philip Rebohle
e0495c6ecb [d3d11] Fixed pixel shader constant buffer bindings 2017-12-09 01:40:15 +01:00
Philip Rebohle
a35b128860 [dxvk] Attachment clears do not need barriers 2017-12-09 01:25:52 +01:00
Philip Rebohle
685023750d [d3d11] Fixed uniform buffer barrier 2017-12-09 01:25:32 +01:00
Philip Rebohle
3ad4ed8264 [d3d11] Implemented depth-stencil view creation 2017-12-08 23:25:38 +01:00
Philip Rebohle
88c58320ee [d3d11] Implemented texture creation 2017-12-08 23:13:15 +01:00
Philip Rebohle
c90bc3e946 [dxbc] Implemented proper resource slot mapping 2017-12-08 22:30:41 +01:00
Philip Rebohle
feab720ddb [spirv] Added methods to force type declaration for arrays and structs 2017-12-08 19:50:36 +01:00
Philip Rebohle
0610296248 [d3d11] Implemented constant buffer binding 2017-12-08 19:39:33 +01:00
Philip Rebohle
e872448ca3 [dxbc] Refactored shader compiler to return a DxvkShader 2017-12-08 18:14:05 +01:00
Philip Rebohle
a2f66025f8 [dxbc] Implemented constant buffers 2017-12-08 17:08:26 +01:00
Philip Rebohle
9f4cc6b77d [dxbc] Minor cleanups 2017-12-08 15:30:12 +01:00
Philip Rebohle
8887e8b2fa [dxbc] Implemented interpolation modes for pixel shader inputs 2017-12-08 14:56:34 +01:00
Philip Rebohle
bd8dc20fa2 [dxbc] User-defined shader interface cannot be an array due to interpolation modes 2017-12-08 14:18:30 +01:00
Philip Rebohle
0843349d72 [dxbc] Added interpolation mode decoder 2017-12-08 13:24:08 +01:00
Philip Rebohle
e3533fb634 [dxbc] Implemented user-defined shader interface 2017-12-08 12:59:08 +01:00
Philip Rebohle
26dc8e2dd8 [tests] Updated D3D11 triangle sample 2017-12-08 11:19:12 +01:00
Philip Rebohle
4a4f5bea29 [util] Added missing files 2017-12-08 11:18:23 +01:00
Philip Rebohle
56826cbf82 [d3d11] Implemented index buffer binding 2017-12-08 01:51:49 +01:00
Philip Rebohle
9e1cf8396b [dxvk] Added environment variable to toggle debug layers 2017-12-08 01:32:02 +01:00
Philip Rebohle
b7723ad6f6 [dxvk] Wrong framebuffer was used in renderPassEnd() 2017-12-08 01:18:37 +01:00
Philip Rebohle
b49815657e [dxvk] Refactored blend state 2017-12-08 01:06:48 +01:00
Philip Rebohle
6a9743ead7 [dxvk] Refactored blend state 2017-12-08 00:51:20 +01:00
Philip Rebohle
84605a1310 [dxvk] Refactored input layout state 2017-12-08 00:44:58 +01:00
Philip Rebohle
385c92db5a [dxvk] Refactoring of most constant state objects 2017-12-08 00:02:43 +01:00
Philip Rebohle
796c200e32 [dxvk] Major refactoring of graphics pipeline state lookup in order to support more dynamic state 2017-12-07 21:47:38 +01:00
Philip Rebohle
ade00add8d [dxvk] Removed buffer stride stuff for now, we need a better solution 2017-12-07 19:28:54 +01:00
Philip Rebohle
27e63cbdc6 [d3d11] Implemented small buffer uploads 2017-12-07 18:51:41 +01:00
Philip Rebohle
2a2e179b91 [d3d11] Fixed initial context state setup and viewport orientation 2017-12-07 18:38:54 +01:00
Philip Rebohle
b7e263fc73 [dxbc] Added highly experimental shader input/output interface code 2017-12-07 16:29:34 +01:00
Philip Rebohle
3cf9582187 [d3d11] Added default constant state objects 2017-12-07 14:22:23 +01:00
Philip Rebohle
05ef218326 [d3d11] Implemented vertex buffer binding 2017-12-07 14:03:15 +01:00
Philip Rebohle
a901a85401 [dxvk] Added support for vertex index types 2017-12-07 14:01:17 +01:00
Philip Rebohle
be7a70a307 [d3d11] Implemented buffer creation 2017-12-07 13:31:32 +01:00
Philip Rebohle
5bf4ae7048 [d3d11] Initial work on buffer creation 2017-12-07 13:18:12 +01:00
Philip Rebohle
1f89452014 [d3d11] Implemented input layout creation 2017-12-07 12:45:02 +01:00
Philip Rebohle
f33acf7334 [dxvk] Modified interface to accept dynamic vertex buffer strides 2017-12-07 11:39:59 +01:00
Philip Rebohle
bf17c61579 [d3d11] Implemented shader binding 2017-12-07 10:12:48 +01:00
Philip Rebohle
93c719cadf [dxvk] Reintroduced dirty pipeline state flag 2017-12-07 09:44:45 +01:00
Philip Rebohle
19851c8432 [dxvk] Re-implemented pipeline creation within the backend 2017-12-07 09:38:31 +01:00
Philip Rebohle
e95dc64c77 [dxgi] Removed unused members from DxgiSwapChain 2017-12-07 00:56:13 +01:00
Philip Rebohle
ddb1627985 [d3d11] D3D11DeviceChild subclasses must not store strong references to their parent device 2017-12-07 00:55:21 +01:00
Philip Rebohle
69b938118d [general] Fixed write conflicts in logger 2017-12-06 23:36:11 +01:00
Philip Rebohle
f794d6c398 [dxgi] Fixed SRGB format feature requirements 2017-12-06 23:28:07 +01:00
Philip Rebohle
bcb193a7fc [d3d11] Removed unnecessary feature requirement 2017-12-06 19:14:59 +01:00
Philip Rebohle
5944410d2c [tests] Removed dxvk dependency for d3d11 and dxgi tests 2017-12-06 19:06:23 +01:00
Philip Rebohle
dece62c70a [d3d11] Implemented basic shader creation methods 2017-12-06 18:54:01 +01:00
Philip Rebohle
9017af51ec [utils] Added SHA-1 implementation for shader code hashing 2017-12-06 18:13:51 +01:00
Philip Rebohle
8934ab0fc7 [d3d11] Added stubs for shader classes 2017-12-06 14:16:14 +01:00
Philip Rebohle
c7e1131864 [d3d11] Implemented rasterizer state creation 2017-12-06 13:16:54 +01:00
Philip Rebohle
f990fcaa01 [d3d11] Implemented rasterization state and viewports 2017-12-06 12:11:59 +01:00
Philip Rebohle
fadcac5a8e [dxgi] Fixed swap chain issue in ResizeTargets 2017-12-05 15:24:58 +01:00
Philip Rebohle
77ca0a84b7 Revert "[dxgi] Removed SDL dependencies from DxgiSwapChain"
This reverts commit 245ba75123.
2017-12-05 15:20:03 +01:00
Philip Rebohle
245ba75123 [dxgi] Removed SDL dependencies from DxgiSwapChain 2017-12-05 14:43:03 +01:00
Philip Rebohle
34ed79dacc [dxvk] Added explicit image flags 2017-12-05 14:41:58 +01:00
Philip Rebohle
af30fb3c25 [dxgi] CreateDXGIFactory now accepts IDXGIFactory1 as a target interface 2017-12-05 14:05:18 +01:00
Philip Rebohle
e0df25a7c5 [dxvk] Implemented proper image memory barriers 2017-12-05 13:00:06 +01:00
Philip Rebohle
7c1064e3eb [d3d11] Moved render target state to OM state struct 2017-12-05 12:59:35 +01:00
Philip Rebohle
f1ee761290 [dxgi] DxgiPresenter now picks format depending on swap chain format 2017-12-04 22:21:02 +01:00
Philip Rebohle
365f992a97 [d3d11] CreateRenderTargetView now uses proper format 2017-12-04 13:47:18 +01:00
Philip Rebohle
cf33315c0c [d3d11] Some cleanup work 2017-12-04 13:39:37 +01:00
Philip Rebohle
60992143b1 [dxvk] Added render target queries for framebuffers 2017-12-04 13:39:14 +01:00
Philip Rebohle
9fa6592b7d [dxgi] Added initial support for format conversion 2017-12-04 11:33:04 +01:00
Philip Rebohle
1b77d58a2a [dxgi] Fixed hardcoded swap chain format 2017-12-03 21:36:44 +01:00
Philip Rebohle
b5d068366d [dxvk] Implemented shader resource binding 2017-12-03 20:23:26 +01:00
Philip Rebohle
a6bf7659b0 [dxvk] Refactored shader binding, client APIs must now create pipelines and pipeline layouts 2017-12-03 00:40:58 +01:00
Philip Rebohle
7ec8e727d2 [d3d11] Device creation now logs requested feature levels 2017-12-02 19:07:48 +01:00
Philip Rebohle
ac2d16599c [d3d11] Implemented proper feature tests 2017-12-02 16:47:06 +01:00
Philip Rebohle
e051498621 [d3d11] Added enum to stringfunctions 2017-12-02 16:46:53 +01:00
Philip Rebohle
7de5a727ad [dxgi] Added proper initialization of the swap chain back buffer 2017-12-02 11:46:25 +01:00
Philip Rebohle
57821db900 [dxvk] Added image init functions to context 2017-12-01 17:52:05 +01:00
Philip Rebohle
802fbe3cfd [dxvk] Some minor refactoring 2017-12-01 14:27:53 +01:00
Philip Rebohle
cc408e3329 [dxvk] Barrier interface cleanup 2017-12-01 10:51:58 +01:00
Philip Rebohle
c936709aec [dxvk] Moved context flags out of context state object 2017-12-01 10:27:33 +01:00
Philip Rebohle
4e39ef859b [dxvk] More convenient command list assignment API 2017-12-01 10:08:49 +01:00
Philip Rebohle
27905d0711 [dxvk] Removed Recorder interface and deferred context 2017-12-01 09:50:47 +01:00
Philip Rebohle
004bc88e0c [d3d11] ClearRenderTargetView now handles unbound images as well 2017-12-01 00:52:39 +01:00
Philip Rebohle
4b6d8264e7 [dxvk] Added method to clear images that are not bound for rendering 2017-12-01 00:52:13 +01:00
Philip Rebohle
5acc65504f [dxgi] Added DxgiPresenter to render back buffers to the swap chain 2017-11-29 21:46:09 +01:00
Philip Rebohle
b389c9ea1f [d3d11] Experimental implementation of OMSetRenderTargets and ClearRenderTargetView 2017-11-29 20:19:40 +01:00
Philip Rebohle
b35f0c64b4 [dxgi] Refactored swap chain <-> device communication 2017-11-29 16:23:33 +01:00
Philip Rebohle
33dc4583fb [dxgi] Fixed resource interface queries 2017-11-29 15:33:25 +01:00
Philip Rebohle
a956c1b8ac [dxgi] Added DxgiResource for image and buffer creation 2017-11-29 15:16:07 +01:00
Philip Rebohle
9fedd0187b [dxgi] Implemented back buffer creation 2017-11-29 08:29:12 +01:00
Philip Rebohle
5bd3fdc11a [dxvk] Added documentation to image view and image create info structs 2017-11-29 08:28:45 +01:00
Philip Rebohle
ad9f71fa02 [dxgi] Implemented DxgiSwapChain::GetBuffer and more of Present 2017-11-29 07:55:44 +01:00
Philip Rebohle
0c3a68c519 [d3d11] D3D11Texture2D stub 2017-11-27 15:52:24 +01:00
Philip Rebohle
0cdc13d785 [dxgi] Renamed private DXGI interfaces 2017-11-27 15:51:53 +01:00
Philip Rebohle
c572a9c393 [dxvk] Implemented image creation 2017-11-27 12:01:35 +01:00
Philip Rebohle
0e5cae826f [dxgi] DXVK swap chain creation plus some experimental Present code 2017-11-26 18:38:50 +01:00
Philip Rebohle
187c5aa092 [dxgi] DxgiAdapter::GetDesc now returns correct adapter name 2017-11-26 16:18:32 +01:00
Philip Rebohle
f5dd030074 [dxgi] Implemented IDXGIFactory1 and IDXGIAdapter1 extensions 2017-11-26 16:12:11 +01:00
Philip Rebohle
26e662e12c [dxgi] Implemented SDL-backed DxgiSwapChain methods 2017-11-26 15:29:57 +01:00
Philip Rebohle
f3a37068bb [dxgi] Implemented DxgiSwapChain interface queries 2017-11-26 14:02:08 +01:00
Philip Rebohle
f924931d2d [general] Removed TRACE calls for now 2017-11-26 14:01:41 +01:00
Philip Rebohle
c82bddb932 [dxvk] Added buffer copy and initial buffer barriers 2017-11-26 13:24:01 +01:00
Philip Rebohle
d225744c98 [d3d11] Wired up draw calls and dispatch calls to the underlying DXVK context 2017-11-23 14:24:23 +01:00
Philip Rebohle
64d9ad0027 [dxvk] Added dispatch call 2017-11-23 14:24:00 +01:00
Philip Rebohle
47bdf9408b [dxvk] Added buffer view class 2017-11-21 19:50:57 +01:00
Philip Rebohle
a47ebd6ed5 [dxvk] Proper blend state and viewport state setup 2017-11-20 15:35:29 +01:00
Philip Rebohle
8bb0325928 [dxvk] Implemented graphics pipeline creation 2017-11-20 14:11:09 +01:00
Philip Rebohle
a9a03fec69 [dxvk] DxvkShader creates a VkShaderModule again 2017-11-20 14:03:00 +01:00
Philip Rebohle
a895b0159b [dxvk] Added constant state object binding functions 2017-11-20 13:38:24 +01:00
Philip Rebohle
ae0c186f26 [dxvk] Implemented constant state objects 2017-11-20 13:21:27 +01:00
Philip Rebohle
745466652c [dxvk] Removed shader resource slots for now, needs work 2017-11-18 10:42:27 +01:00
Philip Rebohle
a84e2eabc2 [dxvk] Restructured state tracker again 2017-11-17 19:49:44 +01:00
Philip Rebohle
abc0e98761 [dxbc] Added result modifiers, simple add instruction 2017-11-17 11:41:56 +01:00
Philip Rebohle
4c0404d3c6 [dxbc] Removes shader input/output interfaces for now, needs more work 2017-11-17 11:41:46 +01:00
Philip Rebohle
cded7726a7 [dxbc] Added pixel shader code generator stub 2017-11-16 02:07:10 +01:00
Philip Rebohle
5d26f0fb0c [dxbc] Implemented operand modifiers and load/store stuff 2017-11-16 01:30:17 +01:00
Philip Rebohle
901abe4356 [dxbc] Implemented some very basic load/store operations 2017-11-13 02:07:13 +01:00
Philip Rebohle
43dfba2287 [dxbc] Separate code generator classed for each shader type 2017-11-13 00:22:52 +01:00
Philip Rebohle
403ab75aeb [dxbc] More sophisticated component mask/swizzle classes 2017-11-07 15:11:09 +01:00
Philip Rebohle
4052951542 [dxbc] Removed most of the DXBC compiler again 2017-11-07 15:10:38 +01:00
Philip Rebohle
9cdc341946 [dxbc] Some shader signature stuff 2017-11-01 16:43:04 +01:00
Philip Rebohle
72f353074f [dxbc] Initial xSGN chunk implementation 2017-11-01 00:01:40 +01:00
Philip Rebohle
bc8cc76888 [dxbc] Added operand index decoder, entry point declaration 2017-10-29 02:35:16 +02:00
Philip Rebohle
f5ad024f5d [dxbc] Implemented temporary register declarations 2017-10-26 16:32:10 +02:00
Philip Rebohle
200da4cf60 [spirv] Added SpirvModule class to generate SPIR-V code 2017-10-26 15:40:39 +02:00
Philip Rebohle
294586eeb3 [dxbc] Instruction decoder work 2017-10-25 13:49:13 +02:00
Philip Rebohle
79e2236958 [dxbc] Some more decoding stuff 2017-10-22 23:13:29 +02:00
Philip Rebohle
6954cfd84c [dxbc] Added helper classes for DXBC decoding 2017-10-21 17:58:58 +02:00
Philip Rebohle
1bf05d3687 [spirv] Moved SPIR-V-specific stuff to separate directory 2017-10-18 10:36:47 +02:00
Philip Rebohle
72a87093c5 [dxvk] Moved some SPIR-V bits to separate directory 2017-10-18 09:50:30 +02:00
Philip Rebohle
c1e9d3236f [dxbc] Added type info struct 2017-10-17 13:02:57 +02:00
Philip Rebohle
77f38c33c4 [dxvk] Removed DxvkDevice::createShader method 2017-10-16 20:42:32 +02:00
Philip Rebohle
0a57a4ddf5 [dxbc] Figuring out how to best generate SPIR-V module code 2017-10-16 19:53:17 +02:00
Philip Rebohle
aebe359509 [dxvk] Added ID counter for SPIR-V code generation 2017-10-16 19:52:54 +02:00
Philip Rebohle
8728e6e101 [d3d11] Build with DXBC compiler 2017-10-16 17:50:39 +02:00
Philip Rebohle
bb5b588d23 [dxbc] Added DXBC to SPIR-V compiler stub 2017-10-16 17:50:09 +02:00
Philip Rebohle
6e27b7c0cc [d3d11] Added buffer creation (incomplete) 2017-10-16 10:37:01 +02:00
Philip Rebohle
c095fab1c9 [dxvk] Fixed interface queries 2017-10-15 21:50:45 +02:00
Philip Rebohle
b0517b16f0 [d3d11] Fixed interface queries 2017-10-15 21:50:34 +02:00
Philip Rebohle
ea15f22492 [d3d11] Added buffer stub 2017-10-15 21:38:09 +02:00
Philip Rebohle
2c3674190a [dxvk] Implemented proper resource binding 2017-10-15 19:23:10 +02:00
Philip Rebohle
e433c01ad4 [dxvk] Some more work on shader resources and resource bindings 2017-10-15 17:56:06 +02:00
Philip Rebohle
44d9bd9000 [dxvk] Added buffer creation 2017-10-15 14:36:41 +02:00
Philip Rebohle
e9eefbb3e7 [dxvk] Added graphics pipeline stub 2017-10-15 13:02:59 +02:00
Philip Rebohle
bccf3d254c [dxvk] Implemented pipeline manager 2017-10-15 02:03:07 +02:00
Philip Rebohle
883ae9f39d [dxvk] Added pipeline manager stub 2017-10-14 23:52:47 +02:00
Philip Rebohle
6e057b2b53 [dxvk] Command list now implements DxvkRecorder 2017-10-14 14:28:31 +02:00
Philip Rebohle
d97ccb82d6 [dxvk] Added deferred command list stub 2017-10-14 14:28:06 +02:00
Philip Rebohle
77383fa220 [dxvk] Added recorder interface 2017-10-14 13:45:43 +02:00
Philip Rebohle
b67d952e63 [dxvk] Added compute pipeline stub 2017-10-14 13:45:00 +02:00
Philip Rebohle
5c932f14d6 [dxvk] Added shader interface 2017-10-14 13:44:38 +02:00
Philip Rebohle
921abce1b3 [dxvk] Added limit constants 2017-10-14 13:37:40 +02:00
Philip Rebohle
764220db98 [dxvk] Added shader stub, improved state tracking code 2017-10-13 03:19:23 +02:00
Philip Rebohle
94af8140d2 [dxvk] DxvkContext now supports clears and actual state tracking 2017-10-11 23:29:05 +02:00
Philip Rebohle
20048db69d [dxvk] Added shader module 2017-10-11 23:28:06 +02:00
Philip Rebohle
56ed80621d [util] Flag class 2017-10-11 21:44:02 +02:00
Philip Rebohle
89a70b132d [dxgi] Added DxgiSwapChain stub 2017-10-11 16:22:13 +02:00
Philip Rebohle
024d69784d [d3d11] Implemented basic device creation 2017-10-11 15:32:24 +02:00
Philip Rebohle
9b09184c9a [dxvk] Adapter can now be retrieved from the device 2017-10-11 15:32:05 +02:00
Philip Rebohle
5d99a37d69 [dxgi] Implemented DxgiDevice 2017-10-11 15:31:36 +02:00
Philip Rebohle
c7680dea2a [d3d11] Added D3D11 stubs 2017-10-11 09:51:48 +02:00
Philip Rebohle
fce424ccfe Minor 2017-10-11 09:51:22 +02:00
Philip Rebohle
7e4e7dd395 [dxgi] Moved private storage out of DXGI library 2017-10-11 09:41:19 +02:00
Philip Rebohle
bed6d23e7f [dxgi] Implemented some DXGI classes 2017-10-11 03:09:04 +02:00
Philip Rebohle
9b8fda512a [dxvk] Added COM helpers 2017-10-11 00:41:56 +02:00
Philip Rebohle
2ee51ea4b2 [dxvk] Added debug tracing 2017-10-11 00:27:33 +02:00
Philip Rebohle
46845e60be [dxvk] Re-implemented logger 2017-10-10 23:44:06 +02:00
Philip Rebohle
00e63d71a9 Initial commit 2017-10-10 23:32:13 +02:00