Philip Rebohle
feba1f0e88
[dxbc] Implemented Hull Shader control point count declarations
2018-03-01 12:47:24 +01:00
Philip Rebohle
0916115086
[dxbc] Implemented Hull Shader fork/join phase invocations
2018-03-01 12:08:06 +01:00
Philip Rebohle
0e9b7d7ccd
[dxbc] Implemented new workaround for depth-compare ops on Nvidia
2018-03-01 10:11:15 +01:00
Philip Rebohle
d185977918
[dxbc] Implemented Hull shader function declarations
2018-03-01 09:26:17 +01:00
Philip Rebohle
d0db88ee62
[dxbc] Implemnted some HS/DS stubs
2018-03-01 07:00:54 +01:00
Philip Rebohle
ec59389527
[dxbc] Implement EvalAttribute* instructions
2018-02-26 16:46:34 +01:00
Philip Rebohle
8ebffc1018
[dxbc] Added support for SV_RenderTargetID in pixel shaders
2018-02-15 18:07:40 +01:00
Philip Rebohle
fc947f5985
[dxbc] Implemented Geometry SV RenderTargetId
2018-02-04 23:36:00 +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
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
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
596541ed02
[dxbc] Implemented gather instructions and pixel shader SVs
2018-01-17 02:12:29 +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
69c5af4455
[dxbc] Implemented append/consume functionality
...
Nier will now render the bullets properly.
2018-01-11 17:11:51 +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
da867d4bca
[dxvk] Replaced DxvkResourceType by VkImageViewType
2018-01-09 20:35:29 +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
f4cd90d6fa
[dxbc] Implemented vendor-specific workarounds in an attemt to fix Nvidia
2018-01-07 20:05:27 +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
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
4fc2ea25b8
[dxbc] Implemented typed UAV load/store
2018-01-01 17:14:06 +01:00
Philip Rebohle
5332891748
[dxbc] Implemented switch-case instructions
2017-12-30 17:22:36 +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
a51439fb29
[dxbc] Implemented thread group shared memory and barriers
2017-12-29 00:51:31 +01:00
Philip Rebohle
a72727a173
[dxbc] Added support for structured and raw buffers
2017-12-28 16:03:17 +01:00
Philip Rebohle
5ce975eed9
[dxbc] Fixed SV_VERTEXID and SV_INSTANCEID
...
Apparently, these two system values ignore the base vertex
and base instance from the draw call. This is not documented,
but in line with what the AMD driver does on Windows.
2017-12-27 12:49:25 +01:00
Philip Rebohle
24b9d9d99a
[dxbc] Experimental support for ld,resinfo
2017-12-27 01:37:15 +01:00
Philip Rebohle
f301633516
[dxbc] Compute shader prep work
2017-12-21 17:27:40 +01:00
Philip Rebohle
f947fb5d44
[dxbc] Refactored system value mapping
...
Restores geometry shader support.
2017-12-21 16:00:36 +01:00
Philip Rebohle
2e4275649e
[dxbc] Implemented input mapping + sample controls
...
Input variables are now copied into a temporary array, which allows
dynamic indexing and which also allows us to use system values that
are mapped to input registers in DXBC. This breaks geometry shaders
for now, however.
2017-12-21 12:37:20 +01:00
Philip Rebohle
109ce0a695
[dxbc] Implemented sample_d and vector shift instructions
2017-12-20 23:50:39 +01:00
Philip Rebohle
6ff709513c
[dxbc] Added indexable temps
2017-12-20 22:50:05 +01:00
Philip Rebohle
d1720c0c52
[dxbc] Implemented derivatives
2017-12-19 20:26:05 +01:00
Philip Rebohle
95bc4b5826
[dxbc] Added immediate constant buffer support
2017-12-19 17:41:23 +01:00
Philip Rebohle
6cc3ff4ad8
[dxbc] Basic geometry shader (sm4) support
2017-12-18 16:41:05 +01:00
Philip Rebohle
1e08c0744f
[dxbc] Implemented basic control flow instuctions
2017-12-18 11:53:28 +01:00
Philip Rebohle
858913ec0c
[dxbc] Shader decoder and compiler overhaul (2/2)
...
Removed the old decoder and the old shader compiler
and added documentation to the new structures.
2017-12-18 00:46:44 +01:00
Philip Rebohle
47347e38da
[dxbc] Shader decoder and compiler overhaul (1/2)
...
Major rewrite of the entire shader decoder to generate easy
to parse data structures for the compiler, which ultimately
allows new instructions to be implemented more easily.
2017-12-18 00:28:54 +01:00
Philip Rebohle
2f99be9546
[dxbc] Implemented conditional move and comparison instructions
2017-12-17 01:36:41 +01:00