Commit Graph

1679 Commits

Author SHA1 Message Date
Philip Rebohle b11343cf52
[meta] Clarify device filter usage and fix typo 2018-09-19 17:28:33 +02:00
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