1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-03 13:24:20 +01:00
Commit Graph

147 Commits

Author SHA1 Message Date
Philip Rebohle
00f6262ff3
[dxbc] Properly implement Input/Output coverage masks 2018-02-26 14:23:41 +01:00
Philip Rebohle
78e9b575c5
[dxbc] Implement AtomicIMin/Max instructions 2018-02-21 03:49:06 +01:00
Philip Rebohle
be1cad34bf
[dxbc] Use correct image query instructions for UAVs
May fix issues on Nvidia drivers.
2018-02-17 07:33:42 +01:00
Philip Rebohle
fd1fd40ad6
[dxvk] Only emit depth image types for 2D and Cube images
May fix driver crashes on Nvidia.
2018-02-16 09:59:41 +01:00
Philip Rebohle
8ebffc1018
[dxbc] Added support for SV_RenderTargetID in pixel shaders 2018-02-15 18:07:40 +01:00
Philip Rebohle
563d4582ab
[dxbc] Implemented BfRev instruction 2018-02-15 09:41:48 +01:00
Philip Rebohle
59be5b72e8
[dxbc] Added support for oDepthGe/oDepthLe 2018-02-08 10:28:27 +01:00
Philip Rebohle
b3ba401503
[dxbc] Added support for early fragment tests 2018-02-08 10:26:46 +01:00
Philip Rebohle
5a42512028
[dxbc] Silence DclIndexRange warnings 2018-02-08 10:17:59 +01:00
Philip Rebohle
fc947f5985
[dxbc] Implemented Geometry SV RenderTargetId 2018-02-04 23:36:00 +01:00
Philip Rebohle
b741b3b4d5
[dxbc] Fixed output value store for geometry shaders 2018-02-04 23:09:07 +01:00
Philip Rebohle
8c64a81e27
[dxbc] Implemented stream instructions for single-stream GS 2018-02-04 22:59:15 +01:00
Philip Rebohle
b8a540d4ef
[dxbc] Implemented Lod instruction 2018-02-04 22:41:23 +01:00
Philip Rebohle
54108726d5
[dxbc] Implemented SampleInfo instruction 2018-02-04 19:30:39 +01:00
Philip Rebohle
76d48fcdf5
[dxbc] Fixed image size query for multisampled images 2018-02-04 18:08:18 +01:00
Philip Rebohle
d0201a1bab
[dxbc] Implemented GatherPo and GatherPoC instructions 2018-02-04 17:40:02 +01:00
Philip Rebohle
49f13cfdc4
[dxbc] Implement CountBits/FirstBit instructions 2018-02-04 13:14:23 +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
a567f6a5a5
[dxbc] Do not emit depth type for non-sampled resources
Fixes a crash in the Nvidia driver. These type
declarations were never used in the first place.
2018-02-02 21:42:04 +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
0154d0856d
[dxbc] Added push constant definition block
This will be used to fake a draw's instance ID when
per-instance data fetch rates other than 1 are used.
2018-02-01 18:07:24 +01:00
Philip Rebohle
fb4663fcc8
[dxbc] Remove duplicate image type declaration 2018-01-31 11:25:49 +01:00
Philip Rebohle
173e46e2bd
[dxbc] Added Hull/Domain shader specific structures 2018-01-29 14:37:06 +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
8a3dcf7c99
[dxbc] Added support for SV_SampleIndex 2018-01-28 15:32:35 +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
d522e19bab
[dxbc] Implemented SampleB instruction 2018-01-20 10:21:27 +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
8b27dee0e5
[dxbc] Implemented swapc 2018-01-17 21:47:18 +01:00
Philip Rebohle
0f049edde6
[dxbc] Fixed shift operations 2018-01-17 05:35:41 +01:00
Philip Rebohle
596541ed02
[dxbc] Implemented gather instructions and pixel shader SVs 2018-01-17 02:12:29 +01:00
Philip Rebohle
b3cd126d0f
[dxbc] Implemented ld2dms 2018-01-16 22:39:30 +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
5f5bb69fa7 [dxbc] Image queries now support UAV images 2018-01-11 21:39:17 +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
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
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
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
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
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
f7e1efbaaf [dxbc] Fixed AtomicUmax emitting the wrong instruction 2018-01-05 19:48:45 +01:00