Giovanni Mascellani
3797c922a5
tests/hlsl: Test SV_GSInstanceID.
2025-07-29 12:50:23 +02:00
Giovanni Mascellani
52b9ef0426
vkd3d-shader/spirv: Support precise flags on SAMPLE_INFO instructions.
2025-07-29 12:31:36 +02:00
Giovanni Mascellani
53754f0583
vkd3d-shader/spirv: Support precise flags on RESINFO instructions.
2025-07-29 12:31:23 +02:00
Giovanni Mascellani
bdccdd9996
vkd3d-shader/d3d-asm: Emit precise flags for a number of opcodes.
...
I've seen them specifically on RESINFO, but it general it makes
sense to print them for any opcode that expects a bit field in
the flags.
2025-07-29 12:28:09 +02:00
Giovanni Mascellani
f7866df201
vkd3d-shader/dxil: Emit gather offsets as signed.
...
This is important for the MSL generator, otherwise invalid MSL
is emitted.
2025-07-28 16:32:40 +02:00
Giovanni Mascellani
3cf35ce22e
vkd3d-shader/msl: Convert the results of load and sample operations to the destination data type.
...
This should eventually go away when we properly enforce vsir typing,
but since for the moment we're resolving to hack, let's at least
make it compatible with DXIL.
2025-07-28 16:31:57 +02:00
Giovanni Mascellani
7df92b6e50
vkd3d-shader/msl: Reject shaders with duplicate I/O target locations.
...
We'll have to handle them eventually, but let's avoid generating
invalid code in the meantime.
2025-07-28 16:27:58 +02:00
Giovanni Mascellani
9476a235b2
vkd3d-shader/msl: Use the union type for SAMPLEMASK registers.
...
Function msl_print_assignment() doesn't currently handle bitcasts
when the left operand has a specific (rather than a union) type.
We could also fix the function, and maybe it wouldn't be a bad
idea anyway, but using the union type seems more in the spirit
of the MSL backend anyway.
2025-07-28 16:27:58 +02:00
Giovanni Mascellani
16b06c295b
vkd3d-shader/msl: Emit indexable temps with the appropriate component count.
2025-07-28 16:27:58 +02:00
Giovanni Mascellani
6ed0bd0bab
vkd3d-shader/msl: Ignore the interpolation mode for output variables.
...
They are meaningless, but some frontends (e.g., DXIL) set them
nevertheless.
2025-07-28 16:27:58 +02:00
Francisco Casas
19bc3ec104
vkd3d-shader/ir: Validate flags in RESINFO operations.
2025-07-28 16:26:16 +02:00
Francisco Casas
3a0a96b851
vkd3d-shader/ir: Validate flags in SAMPLE_INFO operations.
2025-07-28 16:26:16 +02:00
Nikolay Sivov
a4f5225229
vkd3d: Return success from d3d12_device_EnumerateMetaCommands().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-07-28 16:24:04 +02:00
Nikolay Sivov
2c49f04411
vkd3d-shader/fx: Do not attempt to parse expressions without code section.
2025-07-28 16:22:13 +02:00
Nikolay Sivov
dcd1747f12
vkd3d-shader/fx: Handle regular shader blobs when parsing the state data.
...
For the pass shader states this blob will contain compiled shaders, for other
state types it will contain expression code. Complex state data is stored separately,
tracing it back to actual state type will require keeping track of already parsed states.
2025-07-28 16:21:32 +02:00
Henri Verbeet
0652cb4adb
demos/teapot: Add specular lighting.
2025-07-28 16:12:19 +02:00
Henri Verbeet
9b0087a111
vkd3d-shader/spirv: Emit OpLine instructions.
2025-07-28 16:11:29 +02:00
Henri Verbeet
b3cac7b86d
vkd3d-shader: Call vsir_program_scan() for d3d-asm targets in vsir_program_compile().
...
Like we do for every other target.
2025-07-28 16:11:06 +02:00
Henri Verbeet
eaebef4265
vkd3d-shader/hlsl: Emit vsir from hlsl_emit_bytecode().
2025-07-28 16:10:15 +02:00
Henri Verbeet
4300e6c8b5
vkd3d-shader/ir: Allow source operands of shift operations to have different data types.
2025-07-28 16:10:15 +02:00
Henri Verbeet
b3e367b099
vkd3d-shader/tpf: Update the comment describing the data type mapping in init_sm4_lookup_tables().
...
"R", "S", and "U" were removed, and "*" was added.
2025-07-24 19:12:49 +02:00
Henri Verbeet
a4c25b81c5
vkd3d-shader/hlsl: Get rid of the "hlsl" argument to hlsl_compile_shader().
2025-07-23 17:25:19 +02:00
Henri Verbeet
f02405350e
vkd3d-shader/ir: Consistently use VSIR_DATA_U32 for resinfo_uint destination operands.
...
Much like we do for sample_info_uint.
2025-07-23 17:23:40 +02:00
Henri Verbeet
b88be5b92b
vkd3d-shader/ir: Consistently use VSIR_DATA_U32 for sample_info_uint destination operands.
...
The HLSL compiler already did this; the TPF and DXIL parsers did not.
Previously spirv_compiler_emit_sample_info() was unable to correctly
handle VSIR_DATA_U32 destinations; the new version is arguably simpler
as well.
2025-07-23 17:23:40 +02:00
Henri Verbeet
b8c73e4a2c
vkd3d-shader/spirv: Use spirv_compiler_error() to report unhandled resinfo flags.
2025-07-23 17:23:40 +02:00