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