Philip Rebohle
35238ec4d1
[d3d11] Make D3D11 context methods more robust to null pointers
...
Assetto Corsa tries to do some questionable things when reflections
are disabled in the game options. Refs #648 .
2018-09-19 12:33:30 +02:00
Philip Rebohle
c1190e81b2
[d3d11] Handle pResource == nullptr case during view creation
2018-09-19 11:55:11 +02:00
Philip Rebohle
837a3f5787
[d3d11] Don't allow creation of 0x0-sized textures
2018-09-18 21:33:27 +02:00
Philip Rebohle
bf5476900a
[d3d11] Expose Feature Level 11_1
...
- We don't actually support the ExtendedResourceSharing feature, but
since we currently don't support resource sharing at all, this makes
no difference in practice
- Likewise, MultisampleRTVWithForcedSampleCountOne is not really
supported, as the Vulkan backend will still use the sample count
of the color attachments, but should have no effect in practice.
- This does not change the fact that Predication and Stream Output
are still missing.
2018-09-18 16:27:40 +02:00
Philip Rebohle
d9009efd22
[d3d11] Implement and advertize support for CopyWithOverlap feature
2018-09-18 16:22:47 +02:00
Philip Rebohle
e3c2815782
[dxvk] Add copyBufferRegion and copyImageRegion methods
...
These new methods can support overlapped subresource copies by
creating a temporary resource and effectively using two copy
operations. This is required for D3D11 overlapped copies.
2018-09-18 16:20:57 +02:00
Philip Rebohle
3f47fdab4d
[d3d11] Advertize support for the ForcedSampleCount rasterizer state
2018-09-18 13:23:28 +02:00
Philip Rebohle
482930f04a
[dxvk] Implement backend support for D3D11 forced sample count
...
We don't support rasterization with a sample count different from
the framebuffer sample count, but if there are no attachments, any
sample count is allowed.
2018-09-18 13:22:28 +02:00
Philip Rebohle
4469ef1ec1
[d3d11] Replace shader debug name with shader key
2018-09-18 10:35:27 +02:00
Philip Rebohle
a078bb947e
[d3d11] Replace D3D11ShaderKey with DxvkShaderKey
2018-09-18 10:35:08 +02:00
Philip Rebohle
0843e2211c
[dxvk] Add new DxvkShaderKey to represent unique shader key
2018-09-18 10:35:08 +02:00
Philip Rebohle
12efd88726
[dxvk] Avoid more unnecessary copies of ref-counted pointers
...
Improves performance measurably in Shadow Warrior 2 when CPU bound.
2018-09-17 23:42:34 +02:00
Philip Rebohle
3a1fbdaaf1
[dxvk] Avoid buffer slice copy when tracking buffer views
2018-09-17 23:30:36 +02:00
Philip Rebohle
6c889c0005
Revert "[d3d11] Avoid unnecessary buffer slice copy when mapping buffer"
...
This reverts commit 72106a02cb
.
Breaks things for some reason. Doesn't have much of an impact anyway.
2018-09-17 23:08:00 +02:00
Philip Rebohle
72106a02cb
[d3d11] Avoid unnecessary buffer slice copy when mapping buffer
2018-09-17 22:04:31 +02:00
Philip Rebohle
820904f22d
[dxvk] Optimize ref counting around resource tracking
...
Micro-optimization that reduces the number of atomic increments
and decrements when moving reference-counted objects around.
2018-09-17 20:42:08 +02:00
Philip Rebohle
f42f708f72
[dxvk] Rename DxvkBindingState -> DxvkBindingMask
...
Preparation for some more binding-related work.
2018-09-17 10:45:28 +02:00
Philip Rebohle
eac86fab15
[dxvk] Do not map allocations that don't need a HOST_VISIBLE memory type
...
Should reduce the amount of virtual memory used on systems without
dedicated VRAM. Refs #640 .
2018-09-17 09:08:00 +02:00
Philip Rebohle
19408f0ebe
[d3d11] Fix reported RowPitch/DepthPitch for mapped buffers
...
Some games rely on this being the exact buffer size.
2018-09-17 07:45:05 +02:00
Philip Rebohle
a78dc3b444
[dxvk] Do not store a strong reference from adapter to instance
...
The instance stores an array of adapters now. Fixes crash when
using the device filter, and fixes the instance not getting
destroyed.
2018-09-16 19:11:15 +02:00
Philip Rebohle
fde67b9773
[dxgi] IsCurrent is not actually a stub
2018-09-16 10:20:24 +02:00
Philip Rebohle
c8e0c253ba
[dxvk] Simplify graphics pipeline instance management
2018-09-16 10:07:45 +02:00
Philip Rebohle
b6bf72aeb6
[dxvk] Fix some legacy cruft around Vulkan instance creation
2018-09-15 14:16:56 +02:00
Philip Rebohle
dc29eb4d07
[meta] Release 0.72
2018-09-14 19:24:43 +02:00
Philip Rebohle
364e15d11a
[dxvk] Remove all remaining pipecompiler code
2018-09-14 17:22:56 +02:00
Philip Rebohle
18927dc958
[dxvk] Remove asynchronous pipeline compiler
2018-09-14 16:46:07 +02:00
Jens Peters
d4947261c6
[util] Improve logging of configuration options
2018-09-14 15:34:46 +02:00
Philip Rebohle
4439f94955
[meta] Actually remove all wine output from setup script
2018-09-14 14:55:45 +02:00
Philip Rebohle
fca11582b5
[meta] Remove colors from setup script
...
Should hopefully fix text encoding issues.
2018-09-14 14:38:06 +02:00
Philip Rebohle
be1bb59844
[d3d11] Test streamout queries + additional output components
2018-09-14 13:45:49 +02:00
Philip Rebohle
93ce1e62b8
[tests] Small tweaks
2018-09-14 08:44:35 +02:00
Philip Rebohle
922f0382f6
[dxvk] Remove option for asynchronous shader compilation
...
Unsafe.
2018-09-13 20:40:32 +02:00
Philip Rebohle
059073fcd0
[dxbc] Fix missing hull shader input declarations
...
Fixes tessellation in Tomb Raider 2013. Closes #368 .
2018-09-13 18:25:32 +02:00
Philip Rebohle
fdcb47cc45
[tests] Add tessellation shaders to triangle demo
2018-09-13 18:03:12 +02:00
Philip Rebohle
797c568c74
[dxbc] Use temporary array for per-patch hull shader outputs
...
Drivers don't seem to like it when output arrays are addressed dynamically.
2018-09-13 15:17:39 +02:00
Philip Rebohle
d86b5361f0
[dxvk] Only mark render targets as used on draw calls
2018-09-13 12:00:49 +02:00
Philip Rebohle
9e3914b368
[dxvk] Remove redundant parameter from DxvkCommandList constructor
2018-09-12 18:54:05 +02:00
Philip Rebohle
2d93452cba
[util] Spoof Nvidia card for Assassin's Creed Syndicate
...
This one actually doesn't work properly when the AMD AGS library
is not present, but is fine with nvapi not being there.
2018-09-12 14:10:49 +02:00
Philip Rebohle
1127a344dc
[dxvk] Fix query type enablement in query manager
...
We cannot use query types as flag indices, since query
types added in the future may have gretaer enum values
than 32.
2018-09-11 13:01:00 +02:00
Philip Rebohle
f9add97a07
[d3d11] Fix Begin/End for all queries other than Event and Timestamp
2018-09-11 13:00:52 +02:00
Philip Rebohle
ea6b6e2e53
[dxvk] Rename useAsyncPipeCompiler -> asyncPipeCompiler
2018-09-11 08:38:18 +02:00
Philip Rebohle
ea9e812798
[dxvk] Introduce new 'Created' state for queries
...
New initial state for queries. D3D11 returns an error when trying to
retrieve data from a query in this state, rather than S_FALSE or S_OK.
2018-09-10 23:07:51 +02:00
Philip Rebohle
d7441f274b
[dxvk] Enable device features for VK_EXT_vertex_attribute_divisor
2018-09-10 22:10:16 +02:00
Philip Rebohle
ba65a1e36b
[dxvk] Query new Vertex Attribute Divisor features
...
This was added in revision 3 of the extension.
2018-09-10 21:46:14 +02:00
Philip Rebohle
f5270c8522
[dxvk] Collect info about the supported revisions of an extension
2018-09-10 21:40:40 +02:00
Philip Rebohle
54b2001f42
[meta] Update Vulkan headers to 1.1.84
2018-09-10 21:03:18 +02:00
Philip Rebohle
5c89a68879
[dxvk] Implement render target state tracking for async compilation
...
This ensures that we always render to targets which are only used once.
2018-09-10 19:41:17 +02:00
Philip Rebohle
f94f5a74ba
[dxvk] Add methods to track render target view usage
2018-09-10 18:05:52 +02:00
Philip Rebohle
c7ddaea5a6
[dxvk] Add method to retrieve current frame number
2018-09-10 18:05:33 +02:00
Philip Rebohle
5cc2c219dd
[dxvk] Use all but two available threads for async pipeline compilation
2018-09-10 17:03:11 +02:00