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
201cb88d27
[dxbc] Remove push constant block for now
...
This needs some more work.
2018-02-03 10:36:17 +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
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
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
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
52e8918b57
[d3d11] Added support for tessellation patch primitives
2018-01-29 11:31:00 +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
c6f4cf7330
[general] Make use of C++ zero initialization
2018-01-28 19:37:22 +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
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
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
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
847d50d812
Merge branch 'csmt'
2018-01-21 18:06:13 +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
Philip Rebohle
f25b3c8b32
[d3d11] Use EmitCs for resource updates
2018-01-20 21:42:11 +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
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
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
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
Philip Rebohle
ec0ff35b96
[dxvk] Fixed offset in buffer to image copy
2018-01-18 19:09:21 +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
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
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
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
d1d5f10520
[dxvk] Added debug messages for unbound resources
2018-01-11 21:40:04 +01:00
Philip Rebohle
a875e045c5
[dxvk] Moved descriptor set updates into DxvkContext
2018-01-11 20:31:18 +01:00
Philip Rebohle
3ab75c8538
[dxvk] Fixed potential bugs in vertex buffer binding code
2018-01-10 21:53:13 +01:00
Philip Rebohle
9c90c1ac00
[dxvk] Optimized pipeline state updates
2018-01-10 20:40:10 +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
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
da867d4bca
[dxvk] Replaced DxvkResourceType by VkImageViewType
2018-01-09 20:35:29 +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
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
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
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