Commit Graph

405 Commits

Author SHA1 Message Date
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
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 7aed861862 [tests] Fixed memory leak in compute demo 2017-12-29 01:12:50 +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 9848f9bdaa [tests] Updated compute sample 2017-12-28 19:07:52 +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