Robin Kertels
e7d14e97de
[dxbc] Implement option to split up fma
2024-04-29 13:17:21 +02:00
Philip Rebohle
2970645f33
[dxvk] Fix push constant compatibility for pipeline libraries
...
When linking pipelines, all pipeline libraries are required to declare
the exact same set of push constants, even for stages not part of the
respective libraries.
This invalidates all fossilize databases.
2024-04-26 19:54:52 +02:00
Philip Rebohle
2b70ba8f77
[dxbc] Do not emit OpImageQueryLevels for multisampled images
2024-04-19 13:55:31 +02:00
Philip Rebohle
617ebf4e05
[dxbc] Take used components into account for PS inputs
2024-04-19 01:01:52 +02:00
Philip Rebohle
c2489d5a45
[dxbc] Fix array register anaylsis with multiple dst operands
2024-04-19 01:01:52 +02:00
Philip Rebohle
7441137a33
[dxbc] Ignore system value components when declaring inputs
2024-04-19 01:01:52 +02:00
Philip Rebohle
f06c646315
[dxbc] Remove broken atomic counter subgroup optimization
...
This is not a legal optimization inside non-uniform control flow due
to Vulkan's extremely permissive convergence rules, and apparently
breaks on Nvidia as a result.
Mesa drivers already do the same thing internally anyway.
2024-04-03 14:55:43 +02:00
Philip Rebohle
69a52b3da0
[dxbc] Do not emit depth compare for unsupported image types
...
Fixes invalid SPIR-V.
2024-03-07 16:11:23 +01:00
Philip Rebohle
3a6992ea97
[dxbc] Enable depth compare types for 1D images
...
Used by Renderdoc internal shaders.
2024-03-07 16:11:23 +01:00
Philip Rebohle
c9cea93b7b
[dxbc] Use raw access chains for buffer loads and stores
...
Maps more or less perfectly to D3D raw and structured buffers.
2024-03-05 14:41:18 +01:00
Philip Rebohle
69d74a46a0
[dxbc] Remove emitRawBuffer{Load,Store}
...
And factor these into the callers. We need to preserve the raw
index and offset parameters to use raw access chains.
2024-03-05 14:41:18 +01:00
Philip Rebohle
94098aa97d
[dxbc] Enable SPV_NV_raw_access_chains
2024-03-05 14:41:18 +01:00
Philip Rebohle
9004c132ed
[dxbc] Declare dynamically indexed UBOs with the maximum possible size
...
Fixes #3861 .
2024-02-23 13:39:29 +01:00
Tatsuyuki Ishi
e2a46a347d
[meta] Declare bool conversion operators as explicit
...
Non-explicit conversion operators in general can participate in very
surprising conversion chains. Explicit bool operator is a good place to
start with, because even with explicit they do get automatic contextual
conversion in a lot of places, e.g., if conditions.
2024-01-27 11:44:51 +01:00
Philip Rebohle
b4d87eaac0
[dxbc] Fix constant texture offsets with 1D textures
...
Fixes #3572 .
2023-07-22 17:37:37 +02:00
Philip Rebohle
a67c99943a
[dxbc] Set output topology for GS and TES correctly
2023-07-20 23:43:03 +02:00
Philip Rebohle
4a30933359
[dxvk] Add UBO set property to descriptor info
...
Used to explicitly propagate storage buffer bindings
to the respective UBO set.
2023-01-15 15:36:05 +01:00
Philip Rebohle
b916dc04e5
[dxbc] Fill in patch vertex count info
2023-01-11 11:48:16 +01:00
Philip Rebohle
8011a40843
Revert "[dxbc] Handle dead code in shader binaries"
...
Apparently this regressed something, but the reporter who asked
for this fix in the first place did not specify what, so let's
just revert this and break the whole thing again until we get
something to actually work with.
This reverts commit 5115d80d5179d0158fae270616ef764dacc464c9.
2023-01-10 20:37:22 +01:00
Philip Rebohle
e426ec09a1
[d3d11,dxbc] Add d3d11.forceSampleRateShading option
2023-01-09 18:35:02 +01:00
Philip Rebohle
5115d80d51
[dxbc] Handle dead code in shader binaries
...
We should not emit any code when not inside a function.
Fixes #3154 .
2023-01-06 20:49:13 +01:00
Philip Rebohle
4f90d7bf5f
[dxbc,d3d11] Don't access shex chunk if it is not defined
2022-11-25 12:45:32 +01:00
Philip Rebohle
c6611dffa7
Revert "[dxbc] Move shex check to constructor"
...
Breaks stuff for unknown reasons.
2022-11-21 19:35:21 +01:00
Robin Kertels
dd7ec24269
[dxbc] Move shex check to constructor
...
Otherwise we dereference a null pointer when
accessing the DxbcProgramInfo.
2022-11-21 01:49:35 +01:00
Philip Rebohle
a130146f15
[dxvk] Remove dead enableRtOutputNanFixup option
...
Dead code since 2.0, not sure why this was still in here.
2022-11-18 22:31:54 +01:00
Philip Rebohle
ab622760a0
[dxbc] Emit new block only after emitting switch instruction
...
Otherwise emitting the OpSwitch will reset the block ID, which
is not desireable. Fixes #2975 .
2022-10-04 21:00:50 +02:00
Philip Rebohle
35a84053b5
[dxbc] Implement rasterizer ordered views
2022-09-19 15:44:23 +02:00
Philip Rebohle
8ca5edeacd
[dxbc] Decode rasterizer ordered flag for UAVs
2022-09-19 15:44:23 +02:00
Philip Rebohle
2a7706ba53
[dxbc] Do not enable SPV_KHR_shader_float_controls
...
This is core in Vulkan 1.2 and SPIR-V 1.5.
2022-09-18 02:27:03 +02:00
Philip Rebohle
5b6b9923ab
[dxbc] Write point size in vertex shaders
...
Silences some validation errors when point rendering is enabled.
2022-09-17 01:52:19 +02:00
Philip Rebohle
d93568f1a9
[dxbc] Don't emit built-in position as a block variable
...
This is no longer needed for interface matching.
2022-09-17 01:52:19 +02:00
Rhys Perry
63ca34bb29
[dxbc] Fix forceVolatileTgsmAccess for stores
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
2022-09-13 21:41:59 +02:00
Philip Rebohle
af208ceb9e
[dxbc] Optimize write pattern for TGSM initialization
...
Reduces bank conflicts.
2022-09-12 22:33:40 +02:00
Philip Rebohle
05f36fd97b
[dxbc] Only use workgroup scope in compute shaders
...
Turns out that global barriers can be used in graphics shaders.
2022-09-12 22:05:39 +02:00
Philip Rebohle
0502a0464f
[dxbc] Fix broken barrier around TGSM init code
2022-09-12 22:05:39 +02:00
Philip Rebohle
eda366662c
[dxbc] Handle workgroup-coherent UAVs more efficiently
...
Some drivers don't handle the workgroup scope on stores and loads properly,
so let's just do the availability and visibility operation on barriers.
2022-09-12 18:19:02 +02:00
Joshua Ashton
64d88c684d
[dxbc] Explicitly cast down to VkAccessFlags when assinging binding.access
...
Otherwise both halves of the terniary are differing types causing a warning.
2022-09-10 21:27:04 +00:00
Philip Rebohle
ccfb986e72
[dxbc] Rework TGSM workaround
2022-09-10 14:27:13 +02:00
Philip Rebohle
8176101228
[dxbc] Enable Vulkan memory model
2022-09-10 14:27:13 +02:00
Philip Rebohle
3401964ee2
[dxbc] Implement support for SV_InnerCoverage
2022-09-05 07:21:47 +02:00
Philip Rebohle
e8c1a8e734
[dxbc] Clean up support check for R32 reads without format
2022-09-04 18:28:27 +02:00
Philip Rebohle
eaa5d16616
[dxbc] Use texel buffers for raw/structured buffers with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
336aafcdf7
[dxbc] Explicitly store whether a resource is a raw SSBO
2022-08-26 05:53:03 +02:00
Philip Rebohle
d6613f50c5
[dxbc] Implement ld for buffers with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
e58f9a5e99
[dxbc] Implement ld for images with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
db3b2e23fb
[dxbc] Implement ld_uav_typed with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
0faba649da
[dxbc] Implement sample operations with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
d5b68b3642
[dxbc] Implement gather operations with sparse feedback
2022-08-26 05:53:03 +02:00
Philip Rebohle
614024873d
[dxbc] Implement CheckAccessFullyMapped instruction
2022-08-26 05:53:03 +02:00
Philip Rebohle
eb8a238d6f
[dxbc] Add definitions for sparse feedback instructions
2022-08-26 05:53:03 +02:00