Conor McCarthy
169210558d
vkd3d-shader/spirv: Handle unsigned result in spirv_compiler_emit_ftoi().
2023-11-09 21:14:35 +01:00
Conor McCarthy
58ffb5d181
vkd3d-shader/spirv: Introduce integer width cast instructions.
...
ITOI and UTOU may cast from a bool to a 32-bit integer. Cast to a 64-bit
integer from a smaller type will be added later.
2023-11-09 21:14:32 +01:00
Conor McCarthy
7de4ac2e48
vkd3d-shader/spirv: Support bool cast in spirv_compiler_emit_alu_instruction().
2023-11-09 21:14:30 +01:00
Conor McCarthy
5b87d6419a
vkd3d-shader/spirv: Support bool logic ops in spirv_compiler_emit_alu_instruction().
2023-11-09 21:14:27 +01:00
Conor McCarthy
b43dab50c1
vkd3d-shader/spirv: Support bitcast in spirv_compiler_emit_load_ssa_reg().
2023-11-09 21:14:25 +01:00
Henri Verbeet
e7eec3e023
vkd3d-shader/spirv: Allow the origin of fragment coordinates to be specified.
...
We typically want to use lower-left in OpenGL environments when rendering to
FBOs.
2023-11-09 21:14:12 +01:00
Zebediah Figura
12240efa79
vkd3d-shader/spirv: Use register counts from the signature and shader desc.
2023-11-07 22:26:49 +01:00
Zebediah Figura
0058764f01
vkd3d-shader: Store the control point counts in struct vkd3d_shader_desc.
2023-11-07 22:26:49 +01:00
Zebediah Figura
3ff22ac5af
vkd3d-shader/spirv: Use the array sizes for shader phase builtins as well.
2023-11-07 22:26:47 +01:00
Conor McCarthy
3e0638148a
vkd3d-shader/spirv: Support VKD3D_DATA_UINT in spirv_compiler_emit_neg().
...
The DXIL parser uses unsigned types even if the source code uses signed,
so unsigned values may be negated.
2023-11-06 23:09:02 +01:00
Conor McCarthy
4905d047bd
vkd3d-shader/spirv: Handle the UMUL instruction.
2023-11-06 23:09:01 +01:00
Conor McCarthy
acbc80cba2
vkd3d-shader/spirv: Introduce an IDIV instruction.
2023-11-06 23:09:00 +01:00
Conor McCarthy
c8d3515d8b
vkd3d-shader/spirv: Introduce an FREM instruction.
2023-11-06 23:08:58 +01:00
Giovanni Mascellani
0d4aebd2e7
vkd3d-shader: Explicitly cast vkd3d_shader_global_flags to uint64_t.
...
On macOS vkd3d_shader_global_flags has underlying type unsigned long,
while uint64_t is defined as unsigned long long. This difference
causes a few warnings to be raised.
2023-11-06 23:08:37 +01:00
Zebediah Figura
f05be8ff12
vkd3d-shader/spirv: No longer handle builtin array size mismatch in spirv_compiler_emit_input().
...
This is taken care of by prior I/O lowering. We no longer need to deal with this here.
2023-11-06 23:07:59 +01:00
Zebediah Figura
fa23165cc0
vkd3d-shader/spirv: Remove handling of VKD3DSPR_OUTCONTROLPOINT.
...
I/O normalization removes this register type.
2023-11-06 23:07:58 +01:00
Zebediah Figura
b73d2c978d
vkd3d-shader/ir: Check for vocp usage during IR normalization.
...
The hull shader barrier used for this was broken by I/O normalization, since
vocp is no longer exposed to the spirv backend.
Restore this barrier by checking for vocp during normalization instead.
2023-11-06 23:07:56 +01:00
Conor McCarthy
e899b67bbf
vkd3d-shader/spirv: Support scalar swizzle of vector SSA registers.
2023-11-01 21:47:33 +01:00
Zebediah Figura
a66acea1b5
vkd3d-shader/spirv: Always use the sysval from the signature.
2023-10-31 21:59:40 +01:00
Zebediah Figura
eef62b95c1
vkd3d-shader/spirv: Use the interpolation mode from the signature.
2023-10-31 21:59:39 +01:00
Conor McCarthy
9b64d04ed3
vkd3d-shader/spirv: Align constant buffer sizes to 16 bytes.
...
DXIL constant buffer sizes are not aligned to 16 bytes.
2023-10-19 23:07:40 +02:00
Henri Verbeet
4e8ba62481
vkd3d-shader/spirv: Initialise "symbol.descriptor_array" in spirv_compiler_emit_combined_sampler_declarations().
...
Besides simply avoiding carrying around some uninitialised data, we
check "symbol->descriptor_array" in spirv_compiler_prepare_image(), both
for separate resources and for combined resource/sampler symbols.
2023-10-17 22:18:44 +02:00
Conor McCarthy
06f8a88466
vkd3d-shader: Define more global flags.
2023-10-17 22:18:23 +02:00
Francisco Casas
f0da419a8c
vkd3d-shader: Remove unnecessary fallthroughs (clangd).
2023-10-12 23:27:19 +02:00
Conor McCarthy
df4e1b7393
vkd3d-shader/dxil: Read immediate constant arrays.
2023-10-11 22:21:19 +02:00