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
ecbdc7f7c7
[general] Downgraded SPIR-V header to 1.0
...
Solves issues with RenderDoc, which does not support SPIR-V versions
above 1.0.
2018-01-05 14:50:39 +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
003ce2130e
[general] Updated Vulkan headers
2018-01-01 23:27:13 +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