Georg Lehmann
7552cfe62a
[dxso] Always lower projection
2022-09-26 21:39:51 +01:00
Michał Pyrzowski
82ebc29e18
[dxso] Fix for illegal OpCompositeConstruct while translating Crs opcode
...
During the translation of the Crs opcode to SPIR-V there is an assumption that the result type is a composite type. This is not always true. If the result is a scalar type the translation adds an OpCompositeConstruct with a scalar result type. This is a spec violation.
This change checks if the result type is a composite type and does not add the OpCompositeConstruct in case of scalar types.
2022-09-21 10:47:16 +00:00
Robin Kertels
5962be44c6
[dxso] Define color inputs as centroids on SM3 too
2022-09-19 15:10:43 +01:00
Georg Lehmann
18a801de84
[dxso] Use a * (y - x) + x for lerp.
...
Fixes Alice: Madness Returns.
2022-09-13 23:10:11 +01:00
Georg Lehmann
87b1f9fa2d
[dxso] Fix write mask for nrm
2022-08-23 00:38:04 +02:00
Philip Rebohle
76ee76d6da
[d3d9,dxso] Use DemoteToHelperInvocation for alpha test
...
May enable additional compiler optimizations.
2022-08-19 14:49:18 +00:00
Philip Rebohle
2d92679cd1
[dxso] Remove fallback path for discards
2022-08-19 13:36:54 +00:00
Georg Lehmann
155944c2b4
[dxso] normalize 0 to 0 with strict float emulation
2022-08-19 13:36:14 +00:00
Philip Rebohle
47fa3824dc
[d3d9] Re-implement alpha test to support configurable accuracy
...
The current implementation always uses 12 bits of accuracy.
2022-08-18 00:10:39 +02:00
Philip Rebohle
2c713a34c9
[d3d9,dxso] Factor out common alpha test code
2022-08-18 00:10:39 +02:00
Philip Rebohle
8f1024c094
[d3d9] Use new flat shading state for DXSO shaders
2022-08-08 13:34:59 +02:00
Georg Lehmann
135b8a0e53
[dxso] Setup spec ubo for pixel shaders
2022-08-06 12:35:23 +02:00
Joshua Ashton
65da0da954
[d3d9] Support for graphics pipeline libraries
2022-08-06 01:20:22 +00:00
Philip Rebohle
d498551a23
[dxso] Add bit selectors to D3D9ShaderSpecConstantManager
...
Avoids doing double bitfield extractions which isn't
optimized right now.
2022-08-05 19:31:02 +01:00
Joshua Ashton
9619377723
[dxso] Convert opIEqual 1 -> opINotEqual 0
...
Better chance of getting optimized
2022-08-05 19:31:02 +01:00
Joshua Ashton
b2cbf198e4
[d3d9, dxso] Refactor spec constants to use a bitfield layout
...
This allows us to use the same information to dump into a push constant for unoptimized pipelines.
2022-08-05 19:31:02 +01:00
Joshua Ashton
438ae5cdfc
[dxso] Fix getting sampler type of vertex textures
...
Fixes: c7afe0dd2386f0c4acdf610fb7d2c9eaa95c3516
2022-08-05 19:31:02 +01:00
Philip Rebohle
db786cda6c
[dxvk] Remove old code to process specialization constants
...
We barely use spec constants anymore, so a much simpler solution will do.
2022-07-31 02:53:20 +02:00
Philip Rebohle
0eaad2eb5b
[dxso] Don't create shader object for redundant PS permutations
2022-07-30 22:15:41 +01:00
Philip Rebohle
f15466a2c5
[dxvk] Remove remaining built-in specialization constants
2022-07-17 17:06:42 +02:00
Philip Rebohle
320534cb34
[spirv] Automatically track interface variables
2022-07-15 16:10:16 +02:00
Philip Rebohle
c7afe0dd23
[dxso] Use new bit mask spec constant to determine whether textures are bound
2022-07-03 13:41:06 +02:00
Philip Rebohle
76ba03398d
[d3d9,dxso] Fix push constant validation errors
...
Derp.
2022-07-01 18:06:47 +02:00
Philip Rebohle
db07861518
[dxvk] Remove old pipeline layout implementation
2022-06-28 14:35:58 +02:00
Philip Rebohle
e795f3f33a
[dxso] Pass new binding info struct to shaders
2022-06-28 14:32:31 +02:00
Philip Rebohle
10bab0c182
[dxso] Use new DxvkShader constructor
2022-04-18 13:20:16 +02:00
Georg Lehmann
f1efc9dc9f
[dxso] Emit spirv OpCross if we can.
2022-03-16 19:13:09 +00:00
Georg Lehmann
630fee59fc
[dxso] Implement zerowins for Lerp.
...
Fixes #2545 .
2022-03-16 19:13:09 +00:00
Philip Rebohle
5d4c8a6b51
[dxso] Fix ExpP instruction on Shader Model 2+
2022-03-11 22:44:18 +00:00
Joshua Ashton
f4ab14cafa
[dxso] Fix potential fallthrough in RasterizerOut
2022-03-10 00:47:38 +01:00
Joshua Ashton
a5b0f2898a
[dxso] Fix ExpP fallthrough
2022-03-10 00:47:38 +01:00
Robin Kertels
6c17b8801c
[d3d9] Add strict option to float emulation setting
2021-12-05 16:49:19 +00:00
Philip Rebohle
11f8b8ba44
[dxso] Handle multiplication by zero when emitting clip distances
2021-12-05 16:49:19 +00:00
Philip Rebohle
337360cdc6
[dxso] Handle multiplication by zero in TexM*Tex instructions
2021-12-05 16:49:19 +00:00
Philip Rebohle
a9515d3530
[dxso] Handle multiplication by zero in matrix ALU instructions
2021-12-05 16:49:19 +00:00
Philip Rebohle
8063e27c08
[dxso] Handle multiplication by zero in cross product
2021-12-05 16:49:19 +00:00
Philip Rebohle
7b2b8ceff3
[dxso] Handle multiplication by zero in dst instruction
2021-12-05 16:49:19 +00:00
Philip Rebohle
ebc5326ed5
[dxso] Correctly handle multiplication by zero
2021-12-05 16:49:19 +00:00
Robin Kertels
ce1c66d7dc
[dxso] Omit relative constant range check when possible
...
We can just rely on robustness2 when it's supported.
2021-11-30 01:57:22 +00:00
Robin Kertels
0061139652
[d3d9] Copy shader defined constants into SWVP UBO
...
Co-authored-by: Christopher Egert <cme3000@gmail.com>
Co-authored-by: Georg Lehmann <dadschoorse@gmail.com>
2021-11-30 01:57:22 +00:00
Georg Lehmann
12249fd330
[dxso] Fix constant buffer debug names
2021-11-11 23:54:05 +00:00
Georg Lehmann
b163503f7c
[dxso] Respect SM2+ sampler source swizzle.
2021-10-20 17:43:52 +00:00
Robin Kertels
869f75895c
[d3d9+dxso] Switch constant buffer order
2021-10-15 10:54:18 +01:00
Robin Kertels
791d533a1d
[d3d9+dxso] Rely on robustness for unset SWVP constants
2021-10-15 10:54:18 +01:00
Robin Kertels
d799b44d91
[dxso] Ensure pow base is >= 0 in LIT
2021-09-26 22:33:01 +01:00
Philip Rebohle
50c6974f3a
[dxso] Fix gradient instructions for cube maps
...
We need 3 components in that case. Based on MSDN documentation, texldd
does not support 3D textures so there's no need to worry about those.
Fixes validation errors in Payday.
2021-08-23 13:50:54 +01:00
Georg Lehmann
a2330b89d2
[dxso] Implement TexDepth
2021-08-12 02:17:16 +00:00
Joshua Ashton
c0c1565cba
[d3d9, dxso] Alias color and depth samplers and improve tracking
...
Takes me from 340 -> 460fps in A Hat in Time's main menu when CPU bound.
2021-08-10 23:46:03 +00:00
Joshua Ashton
242b7b6d9c
[d3d9, dxso] Remove AlphaTestEnable spec constant
...
Go based on the func we already have. Avoids wasting a spec const.
2021-08-09 09:52:07 +00:00
Georg Lehmann
fdc2e2e78f
[d3d9] Fix NEVER alpha testing
2021-08-07 21:54:30 +00:00