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
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
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
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
32078033c6
[d3d11] Fixed UAV counter buffer binding
2018-01-11 17:12:39 +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
1b67ffaed2
[d3d11] Added default sampler state
2018-01-10 19:07:55 +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
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
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
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
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
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
356591cc99
[d3d11] Fixed viewport offset
2018-01-05 16:53:12 +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
6dfe09da7b
[dxbc,d3d11] Minor fixes
2018-01-03 12:26:27 +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
55bc01d523
[d3d11] Minor bug fixes
2018-01-02 12:07:30 +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
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
c38f3c69ad
[d3d11] Query prep work
2017-12-29 22:20:31 +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
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
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
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
e668c65017
[d3d11] Experimental support for typed shader buffer views
2017-12-27 14:32:07 +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
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
f301633516
[dxbc] Compute shader prep work
2017-12-21 17:27:40 +01:00