Joshua Ashton
fccbd3b5e2
vkd3d: Eliminate wchar_size, use UTF-16 string literals
...
Achieves this with C standard stuff alone, and no compiler hacks.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-02-09 11:26:28 +01:00
Hans-Kristian Arntzen
859066cd9b
vkd3d-shader: Add ray-tracing pipeline support to DXIL.
...
Also updates relevant submodules.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-02-05 10:05:07 +01:00
Hans-Kristian Arntzen
d8d1e82024
vkd3d-shader: Refactor DXIL resource remapping.
...
Prepare for local root signatures.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-02-05 10:05:07 +01:00
Hans-Kristian Arntzen
fdcf583cbc
vkd3d: Rename COUNTER buffer to AUX_BUFFER.
...
We will use the same pointer buffer to handle acceleration structures,
so unify this buffer under a new name. Simplifies some of the binding
code since SRV path and UAV path looks more similar now.
Only difference is that UAV path uses BDA -> uint32_t,
and SRV uses BDA -> RTAccelerationStructure.
RT requires BDA, so the fallback descriptor set (storage texel buffer) is never used for RT.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-02-05 10:05:07 +01:00
Hans-Kristian Arntzen
326d1cde60
vkd3d-shader: Remove DXIL being optional.
...
We always build with DXIL, not using autotools anymore.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-01-25 14:03:37 +01:00
Philip Rebohle
6bddcb4352
vkd3d: Store both byte range and element range in offset buffer.
...
The first range will store the byte offset, the second one will
be the typed buffer range. Typed descriptors should write both.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Co-authored-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-01-14 15:34:20 +01:00
Henri Verbeet
c42f4d11e2
vkd3d-shader: Decorate "precise" arithmetic instructions with SpvDecorationNoContraction.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
2021-01-12 15:22:11 +01:00
Hans-Kristian Arntzen
e6961afca6
vkd3d-shader: Emit typed format for UAVs which use atomics.
...
Mesa will assert if not, and the format must be known here.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-12-04 16:08:26 +01:00
Joshua Ashton
e27a153a22
vkd3d-shader: Fix saturates of fp64 types
...
Closes : #419
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-11-27 11:11:59 +01:00
Philip Rebohle
9d57489225
vkd3d-shader: Correctly handle infinity in f32tof16.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-23 15:46:55 +01:00
Hans-Kristian Arntzen
27f91b99b0
vkd3d-shader: Add debug log callback to DXIL.
...
Allows us to capture dxil compiler messages in log.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-11-18 14:37:58 +01:00
Philip Rebohle
bab9b0af92
vkd3d: Support offset buffers for raw/structured texel buffers.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Co-authored-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-11-18 12:27:19 +01:00
Philip Rebohle
8fe83f5e9c
vkd3d-shader: Correctly handle bit shifts greater than 31 bits.
...
This is undefined behaviour in SPIR-V, but well-defined in
DXBC, so we should explicitly 'and' the shift amount with 31.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-17 15:26:36 +01:00
Hans-Kristian Arntzen
a1d851e717
vkd3d-shader: Do not require Int64 to use root descriptors.
...
Can just use uvec2. Also improves performance on ACO since ACO cannot
promote uint64_t to SGPR yet, u32x2 however, works fine and can be
bitcast to pointer as well.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-11-13 17:10:48 +01:00
Hans-Kristian Arntzen
009b3a69e0
vkd3d-shader: Update dxil-spirv with BDA root descriptor support.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-11-13 17:10:48 +01:00
Philip Rebohle
c11b58418a
vkd3d-shader: Support physical storage buffer root SRVs/UAVs.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-12 15:21:56 +01:00
Philip Rebohle
4313eaa59c
vkd3d-shader: Support physical storage buffer root CBVs.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-12 15:21:56 +01:00
Philip Rebohle
5d2b0e6632
vkd3d-shader: Add loadv/storev helpers for aligned memory access.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-12 15:21:56 +01:00
Philip Rebohle
6c9d0cea69
vkd3d-shader: Rename descriptor_table_var_id -> root_parameter_var_id.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-12 15:21:56 +01:00
Philip Rebohle
4b3cec53fc
vkd3d-shader: Declare push constants for root descriptor VAs.
...
We'll always place them at the beginning of the push constant
buffer in order to avoid potential alignment issues.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-12 15:21:56 +01:00
Philip Rebohle
2689c9e0a3
vkd3d-shader: Enable Int64 capability as necessary.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-12 15:21:56 +01:00
Philip Rebohle
f69564c6c1
vkd3d-shader: Implement buffer reference type declarations.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-11-12 15:21:56 +01:00
Joshua Ashton
8dea487861
meta: Add missing newlines to end of files
...
Remove trailing whitespace also
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-11-05 17:16:57 +01:00
Hans-Kristian Arntzen
490d803581
vkd3d-shader: Add OpSource support to DXIL.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-11-05 15:57:16 +01:00
Hans-Kristian Arntzen
7e14f80e2a
vkd3d-shader: Emit OpSource with DXBC hash.
...
Makes it possible to backtrace which shader we're working with
when we get raw SPIR-V from unrelated sources (Fossilize or RADV crash
dumps for example).
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-11-05 15:57:16 +01:00
Hans-Kristian Arntzen
320b643c77
vkd3d-shader: Add typed offset to DXIL.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-11-04 19:05:28 +01:00
Hans-Kristian Arntzen
bcd03de770
vkd3d-shader: Implement typed buffer offset.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-11-04 19:05:28 +01:00
Joshua Ashton
f50c897868
build: Merge vkd3d_headers into vkd3d_common
...
Fixes MSVC build.
Closes : #343
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-11-03 09:37:24 +01:00
Philip Rebohle
1abae6eb06
vkd3d-shader: Remove unused sampler comparison mask.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-10-29 15:39:40 +01:00
Philip Rebohle
a2d85f6040
vkd3d-shader: Use new register map to store UAV flags.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-10-29 15:39:40 +01:00
Philip Rebohle
0d82bf67aa
vkd3d-shader: Add hash map for register flags to scan info.
...
This way we won't have arbitrary register count limitations.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-10-29 15:39:40 +01:00
Philip Rebohle
9832d1639d
vkd3d-shader: Remove pNext chain from vkd3d_shader_scan_info.
...
Unused.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-10-29 15:39:40 +01:00
Joshua Ashton
c72fb12353
build: Only generate headers once
...
This makes headers a dependency rather than a generator target.
This also means we get proper dependency tracking of them between projects.
Supercedes: #225
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-29 10:02:48 +01:00
Hans-Kristian Arntzen
4d961f96ea
vkd3d: Fix some nits with declaration-after-statement.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-10-28 11:04:06 +01:00
Hans-Kristian Arntzen
a4f68931bb
vkd3d-shader: Add offset buffer path to DXIL.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-10-28 10:30:12 +01:00
Philip Rebohle
d59317e11b
vkd3d-shader: Use offset buffer for bufinfo instruction.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-10-28 10:30:12 +01:00
Philip Rebohle
fc9efddbd4
vkd3d-shader: Use offset buffer when indexing into raw SSBO.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-10-28 10:30:12 +01:00
Philip Rebohle
bea196e449
vkd3d-shader: Declare offset buffer.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-10-28 10:30:12 +01:00
Joshua Ashton
7609c5e59e
vkd3d-shader: Implement 64-bit immediate constants
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Joshua Ashton
73a2ad19ea
vkd3d-shader: Implement DRCP
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Joshua Ashton
e3a61ebad1
vkd3d-shader: Implement DTOF, FTOD, DTOI, DTOU, ITOD and UTOD
...
Implement double -> other type conversions
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Joshua Ashton
aff1391026
vkd3d-shader: Implement DEQ, DGE, DLT and DNE
...
Implement double comparisons
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Joshua Ashton
cdedfd596e
vkd3d-shader: Implement DMOVC
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Joshua Ashton
f8646bff5a
vkd3d-shader: Implement DADD, DMUL, DDIV, DMAX, DMIN, DFMA and DMOV
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Joshua Ashton
a581f296ea
vkd3d-shader: Handle double-related global flags
...
Decode and handle DOUBLE_PRECISION_FLOAT_OPS and 11_1_DOUBLE_EXTENSIONS
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Joshua Ashton
ac2456b01f
vkd3d-shader: Implement double data type
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Joshua Ashton
8e896cd25a
vkd3d-shader: Support 64-bit constants
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-10-23 12:40:38 +02:00
Hans-Kristian Arntzen
16f09a0ba0
vkd3d: Do not perform any alignment analysis for SSBOs.
...
We cannot rely on alignment analysis since games are buggy and screw up
RAW vs structured on occasion.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-10-22 13:07:05 +02:00
Hans-Kristian Arntzen
0801b0d55f
vkd3d-shader: Hook up typed uav read without format on DXIL.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-10-21 14:34:37 +02:00
Hans-Kristian Arntzen
216f04d8f1
vkd3d-shader: Hook up new SSBO path for DXIL.
...
Update dxil-spirv submodule.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-10-21 14:34:37 +02:00