1 The vkd3d team is proud to announce that release 1.14 of vkd3d, the Direct3D
2 to Vulkan translation library, is now available.
4 This release contains improvements that are listed in the release notes below.
5 The main highlights are:
7 - Disassembler support for binary effects.
8 - Initial support for Metal Shading Language output.
9 - Miscellaneous bug fixes.
11 The source is available from the following location:
13 <https://dl.winehq.org/vkd3d/source/vkd3d-1.14.tar.xz>
15 The current source can also be pulled directly from the git repository:
17 <https://gitlab.winehq.org/wine/vkd3d.git>
19 Vkd3d is available thanks to the work of multiple people. See the file AUTHORS
20 for the complete list.
22 # What's new in vkd3d 1.14
26 - Depth bounds can be changed dynamically using the OMSetDepthBounds() method
27 of the ID3D12GraphicsCommandList1 interface.
29 - The new VKD3D_CAPS_OVERRIDE environment variable can be used to override the
30 value of capabilities like the maximum feature level and resource binding
31 tier reported to applications.
35 - New features for the HLSL source type:
36 - Interstage I/O variable packing matches d3dcompiler/fxc more closely.
37 - The following intrinsic functions are supported:
43 - ‘discard’ support for shader model 1-3 target profiles.
44 - The ‘SV_SampleIndex’ input semantic for fragment shaders.
45 - The ‘SV_GroupIndex’ input semantic for compute shaders.
46 - The ‘earlydepthstencil’ function attribute.
47 - Constant folding of expressions like ‘x && c’ and ‘x || c’, where ‘c’ is a
49 - Preprocessor support for namespaces in macro identifiers. I.e., syntax
50 like ‘#define NAME1::NAME2::NAME3 1’ works as intended now.
51 - Structure inheritance. Multiple inheritance is not supported.
52 - Register assignments for unused constant buffers are allowed to overlap
53 register assignments for used constant buffers.
54 - Instruction count reflection data for shader model 4+ target profiles.
55 This data is contained in the ‘STAT’ DXBC section, and can be queried with
56 the GetDesc() method of the ID3D11ShaderReflection and
57 ID3D12ShaderReflection interfaces. Note that the ID3D12ShaderReflection
58 implementation provided by vkd3d-utils does not currently correctly report
60 - ‘unorm’ and ‘snorm’ resource format modifiers. For example,
61 ‘Texture2D<unorm float4> t;’
62 - Parser support for ‘ByteAddressBuffer’ resources, as well as their
63 Load()/Load2()/Load3()/Load4() methods.
64 - Parser support for ‘RWByteAddressBuffer’ resources, as well as their
65 Store()/Store2()/Store3()/Store4() methods.
66 - Parser support for the ‘compile’ keyword, as well as the CompileShader()
67 and ConstructGSWithSO() intrinsic functions. Actual compilation of
68 embedded shaders is not implemented yet, but parser support is sufficient
69 for allowing compilation of HLSL sources containing this syntax to succeed
70 when targetting shader target profiles like ‘vs_5_0’ or ‘ps_5_0’.
71 - Initial support for tessellation shaders. Only the most trivial shaders
72 are supported in this release. Perhaps most notably, both ‘InputPatch’ and
73 ‘OutputPatch’ are not implemented yet.
75 - The new ‘fx’ source type can be used in combination with the ‘d3d-asm’
76 target type to disassemble binary effects.
78 - More complete support for fx_2_0 binary effect output, including support for
79 annotations, default values, as well as object initialiser data used for e.g.
80 string, texture, and shader objects.
82 - A significant number of instructions have been implemented for the
83 experimental GLSL target. The GLSL output currently targets version 4.40
84 without extensions, but the intention is to make this configurable in a
85 future release of vkd3d.
87 - Experimental support for Metal Shading Language (MSL) output, enabled by
88 building vkd3d with the ‘-DVKD3D_SHADER_UNSUPPORTED_MSL’ preprocessor
89 option. The current release is only able to compile the most basic shaders
90 when targetting MSL. Being an experimental feature, both the ABI and API may
91 change in future releases; the feature may even go away completely.
92 Nevertheless, we hope our users find this feature useful, and welcome
93 feedback and contributions.
95 - Shader code generation for various legacy fixed-function features, including
96 clip planes, point sizes, and point sprites. This is mainly relevant for
97 executing shader model 1-3 sources in modern target environments like
98 Vulkan, because those target environments do not implement equivalent
99 fixed-function features.
101 - The amount of shader validation done by the internal validator has been
102 greatly extended. The validator is enabled by the ‘force_validation’ option,
103 specified through the VKD3D_SHADER_CONFIG environment variable.
106 - The VKD3D_SHADER_COMPILE_OPTION_DOUBLE_AS_FLOAT_ALIAS flag specifies that
107 the ‘double’ type behaves as an alias for the ‘float’ type in HLSL sources
108 with shader model 1-3 target profiles.
109 - The VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32_VEC4 enumeration value
110 specifies that a shader parameter contains a 4-dimensional vector of
111 32-bit floating-point data.
112 - The VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_MASK shader parameter specifies
113 which clip planes are enabled.
114 - The VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_[0-7] shader parameters specify
115 the corresponding clip planes.
116 - The VKD3D_SHADER_PARAMETER_NAME_POINT_SIZE shader parameter specifies the
117 point size to output when the source shader does not explicitly output a
119 - The VKD3D_SHADER_PARAMETER_NAME_POINT_SIZE_MIN shader parameter specifies
120 the minimum point size to clamp point size outputs to.
121 - The VKD3D_SHADER_PARAMETER_NAME_POINT_SIZE_MAX shader parameter specifies
122 the maximum point size to clamp point size outputs to.
123 - The VKD3D_SHADER_PARAMETER_NAME_POINT_SPRITE shader parameter specifies
124 whether texture coordinate inputs in fragment shaders should be replaced
125 with point coordinates.
126 - The VKD3D_SHADER_SOURCE_FX source type specifies binary Direct3D effects.
127 - The VKD3D_SHADER_TARGET_MSL target type specifies Metal Shading Language
132 - The GetDesc() method of the ID3D12ShaderReflection interface returned by
133 D3DReflect() returns shader version information.
136 - D3DCompile2VKD3D() is a variant of D3DCompile2() that allows targeting the
137 behaviour of a specific d3dcompiler version.
141 - The ‘--alias-double-as-float’ option specifies that the ‘double’ type
142 behaves as an alias for the ‘float’ type in HLSL sources with shader model
145 - The ‘fx’ source type specifies binary Direct3D effects.
147 - The ‘msl’ target type specifies Metal Shading Language shaders.
149 ### Changes since vkd3d 1.13:
152 vkd3d: Recognise VK_QUEUE_VIDEO_ENCODE_BIT_KHR in debug_vk_queue_flags().
153 vkd3d-utils: Store the actual serialisation return value in get_blob_part().
154 vkd3d-utils: Store the actual serialisation return value in D3DStripShader().
156 Anna (navi) Figueiredo Gomes (14):
157 vkd3d-shader/spirv: Pass a vkd3d_shader_descriptor_info1 structure to spirv_compiler_emit_resource_declaration().
158 vkd3d-shader/spirv: Pass a vkd3d_shader_descriptor_info1 structure to spirv_compiler_emit_cbv_declaration().
159 vkd3d-shader/spirv: Pass a vkd3d_shader_descriptor_info1 structure to spirv_compiler_emit_sampler_declaration().
160 vkd3d-shader/spirv: Pass a vkd3d_shader_descriptor_info1 structure to spirv_compiler_build_descriptor_variable().
161 vkd3d-shader/spirv: Break long assembly lines.
162 vkd3d/state: Replace ERR with WARN in vkd3d_validate_descriptor_set_count().
163 tests/shader_runner: Extract a pipeline creation function from d3d12_runner_draw().
164 tests/shader_runner: Use ID3D12Device2_CreatePipelineState() when available.
165 tests/shader_runner: Introduce a 'depth-bounds' test option.
166 tests/shader_runner: Introduce a "d3d12" tag.
167 tests: Test depth bounds.
168 vkd3d: Implement d3d12_command_list_OMSetDepthBounds().
169 tests/shader_runner: Test the "earlydepthstencil" attribute.
170 vkd3d-shader/hlsl: Implement the "earlydepthstencil" attribute.
173 vkd3d-shader/preproc: Support namespaces in macro identifiers.
175 Atharva Nimbalkar (7):
176 vkd3d-shader/glsl: Implement VKD3DSIH_ADD.
177 vkd3d-shader/glsl: Implement support for VKD3DSPR_IMMCONST registers.
178 vkd3d-shader/glsl: Implement VKD3DSIH_AND.
179 vkd3d-shader/glsl: Implement support for VSIR_DIMENSION_VEC4 immediate constants.
180 vkd3d-shader/glsl: Implement VKD3DSIH_MOVC.
181 vkd3d-shader/glsl: Implement VKD3DSIH_ITOF.
182 vkd3d-shader/glsl: Implement VKD3DSIH_UTOF.
185 vkd3d-shader/ir: Free the semantic names of deleted signature elements in shader_signature_merge(). (Valgrind)
186 tests/d3d12: Test a bounded range at the same offset as an unbounded one in test_unbounded_resource_arrays().
187 vkd3d: Sort bounded descriptor ranges after unbounded ones of equal offset.
188 tests/d3d12: Test invalid bytecode in test_root_signature_byte_code().
189 vkd3d: Clear the output pointer on failure in vkd3d_create_versioned_root_signature_deserializer().
190 vkd3d-shader/dxil: Load forward-referenced comparands as value/type pairs in sm6_parser_emit_cmpxchg().
191 vkd3d-shader/dxil: Load forward-referenced sources as value/type pairs in sm6_parser_emit_store().
192 tests: Move the dxc compilation helpers to utils.h.
193 tests/shader_runner: Introduce struct vulkan_test_context for the Vulkan runner.
194 tests/shader-runner: Move struct vulkan_test_context to vulkan_utils.h.
195 tests/shader-runner: Move the Vulkan helper functions to vulkan_utils.h.
196 tests/d3d12: Test buffer and texture SRVs in test_unbounded_resource_arrays().
197 vkd3d: Access the current range via the declared pointer in d3d12_root_signature_init_root_descriptor_tables().
198 vkd3d: Introduce a separate structure for storing Vulkan descriptor binding arrays.
199 vkd3d: Create a separate Vulkan descriptor binding array for each descriptor set.
200 vkd3d: Lay out virtual descriptor heap buffer and image bindings consecutively instead of interleaving them.
201 vkd3d: Zero the pipeline state UAV counter view array when the state is invalidated. (Valgrind)
202 tests: Use state RESOLVE_SOURCE for readback from multisampled textures.
203 vkd3d: Check the IASetVertexBuffers() view count against the device limits.
204 vkd3d-shader/ir: Add a secondary sort by sysval for signature element register merges.
205 vkd3d-shader/dxil: Implement DX intrinsic SampleIndex.
207 Elizabeth Figura (92):
208 vkd3d-utils: Add a D3DCompile2VKD3D() that allows configuring DLL version.
209 vkd3d-utils: Do not emit implicit truncation warnings from D3DCompile2VKD3D() before version 42.
210 build: Do not warn on incomplete documentation.
211 vkd3d-shader: Mention the structure name when referring to a struct field.
212 vkd3d-shader: Escape a hash in Doxygen documentation.
213 vkd3d-shader: Do not use \ref for parameters.
214 vkd3d-shader/hlsl: Use elementwise_intrinsic_float_convert_args() in write_atan_or_atan2().
215 vkd3d-shader/hlsl: Use elementwise_intrinsic_convert_args() in intrinsic_dst().
216 vkd3d-shader/hlsl: Use elementwise_intrinsic_float_convert_args() in intrinsic_faceforward().
217 vkd3d-shader/hlsl: Use elementwise_intrinsic_float_convert_args() in intrinsic_smoothstep().
218 vkd3d-shader/hlsl: Preserve halves in intrinsic_step().
219 vkd3d-shader/hlsl: Use elementwise_intrinsic_float_convert_args() in refract().
220 vkd3d-shader/hlsl: Use intrinsic_float_convert_arg() in write_acos_or_asin().
221 vkd3d-shader/hlsl: Use expr_common_base_type() in intrinsic_cross().
222 vkd3d-shader/hlsl: Preserve doubles in intrinsic_float_convert_arg().
223 vkd3d-shader/hlsl: Preserve doubles in elementwise_intrinsic_float_convert_args().
224 vkd3d-shader/hlsl: Preserve doubles in intrinsic_cross().
225 vkd3d-shader/hlsl: Preserve doubles in intrinsic_determinant().
226 vkd3d-shader/hlsl: Store a pointer to the block's "value" instruction in the block.
227 vkd3d-shader/hlsl: Return bool from add_assignment().
228 vkd3d-shader/hlsl: Do not create a copy in add_assignment().
229 vkd3d-shader/hlsl: Do not handle HLSL_CLASS_CONSTANT_BUFFER in copy_propagation_transform_load().
230 vkd3d-shader/hlsl: Clarify a comment.
231 vkd3d-shader/hlsl: Introduce the "error" type.
232 vkd3d-shader/hlsl: Return an "error" expression when constructing an arithmetic expression from incompatible types.
233 vkd3d-shader/hlsl: Handle error expressions in unary expressions.
234 vkd3d-shader/hlsl: Use add_cast() in append_conditional_break().
235 vkd3d-shader/hlsl: Fix a corner case in ternary type conversion.
236 vkd3d-shader/ir: Remove newlines from some vkd3d_shader_error() calls.
237 vkd3d-shader: Allow controlling clip planes through vkd3d-shader parameters.
238 tests: Test clip planes.
239 vkd3d-shader/hlsl: Free static initializers after functions.
240 vkd3d-shader/hlsl: Return an "error" expression when using an undeclared variable.
241 vkd3d-shader/hlsl: Handle error expressions in function calls.
242 vkd3d-shader/hlsl: Handle error expressions in binary expressions.
243 vkd3d-shader/hlsl: Handle error expressions in assignments.
244 vkd3d-shader/hlsl: Handle error expressions in method calls.
245 vkd3d-shader/preproc: Store argument values per expansion, not per macro.
246 vkd3d-shader/hlsl: Introduce an add_explicit_conversion() helper.
247 vkd3d-shader/hlsl: Handle error expressions in explicit casts.
248 vkd3d-shader/hlsl: Handle error expressions in array indexes.
249 vkd3d-shader/hlsl: Handle error expressions in subscripts.
250 vkd3d-shader/hlsl: Handle error expressions in increments.
251 vkd3d-shader/spirv: Always write the point size in vertex shaders.
252 tests: Add a test for shader point size output.
253 vkd3d-shader/spirv: Implement shader point size.
254 vkd3d-shader/ir: Allow controlling FFP point size through a vkd3d-shader parameter.
255 tests: Test FFP point size.
256 vkd3d-shader/ir: Allow controlling FFP point size clamping through vkd3d-shader parameters.
257 tests: Test FFP point size clamping.
258 vkd3d-shader/hlsl: Factor out an initialize_var() helper.
259 vkd3d-shader/hlsl: Store the initializer location in struct parse_initializer.
260 vkd3d-shader/hlsl: Factor the component count check into initialize_var().
261 vkd3d-shader/hlsl: Handle error expressions in initializers.
262 vkd3d-shader/hlsl: Handle error expressions in ternary expressions.
263 vkd3d-shader/ir: Allow controlling point sprite through a parameter.
264 tests: Test point sprite.
265 vkd3d-shader: Factor out a vsir_parse() helper.
266 vkd3d-shader: Validate the parsed shader in vsir_parse().
267 vkd3d-shader/hlsl: Handle error expressions in conditions.
268 vkd3d-shader/hlsl: Handle error expressions in return statements.
269 vkd3d-shader/hlsl: Handle error expressions in array sizes.
270 vkd3d-shader/hlsl: Return an error expression when an invalid subscript is used.
271 vkd3d-shader/hlsl: Avoid leaking the block in the subscript rule.
272 tests/shader_runner: Store shader caps using an array.
273 tests/shader_runner: Get rid of the "dxbc_ptr" parameter to create_shader_stage().
274 tests/shader_runner: Store shader sources as an array.
275 tests/shader_runner: Store the dxc_compiler in the shader_runner.
276 tests/shader_runner: Centralize the compile_hlsl() helper in shader_runner.c.
277 tests/shader_runner: Split HLSL and SPIRV compilation in the Vulkan shader runner.
278 tests/shader_runner: Compile HLSL for all stages before compiling SPIRV.
279 tests/shader_runner: Build a varying map in the Vulkan runner.
280 tests: Add a test for sm1 inter-stage interface matching.
281 vkd3d: Initialize vk_extensions in vk_init_device_caps().
282 vkd3d-shader/fx: Remove an unnecessary hlsl_is_numeric_type().
283 vkd3d-shader: Make an assert into an explicit check.
284 vkd3d-shader/hlsl: Use early return in allocate_register().
285 tests: Silence a bogus -Wmaybe-uninitialized.
286 tests: Add a test for uninitialized varyings.
287 vkd3d-shader: Always ensure a RET at the end of a program.
288 vkd3d-shader: Reduce masks to only read components in vsir_program_remap_output_signature().
289 vkd3d-shader: Write uninitialized components of COLOR0 as 1.
290 vkd3d-shader: Write zeroes for uninitialized outputs in vsir_program_remap_output_signature().
291 vkd3d-shader/fx: Fix checking for a GS with stream output.
292 tests: Add some tests for FOG and PSIZE writemask restrictions.
293 vkd3d-shader/hlsl: Enforce PSIZE component count for sm1 VS output.
294 vkd3d-shader/hlsl: Enforce FOG component count for sm1 VS output.
295 vkd3d-shader/ir: Force fog and point size to 1 component when normalizing I/O.
296 vkd3d-shader/hlsl: Write all writemask components for PSIZE and FOG outputs.
297 vkd3d-shader/ir: Add an is_pre_rasterization_shader() helper.
298 vkd3d-shader/hlsl: Silence a spurious -Wmaybe-uninitialized in sm4_generate_vsir_instr_dcl_semantic().
299 vkd3d-shader: Silence a spurious -Wmaybe-uninitialized in vsir_program_insert_alpha_test().
302 vkd3d-shader/ir: Remove an unnecessary typecast in shader_instruction_eliminate_phase_instance_id().
303 vkd3d-shader/ir: Don't shift register write masks by the component index in shader_dst_param_io_normalise().
304 tests: Add a test for shader interstage register packing.
305 tests: Add a test for writing patch constants during tessellation.
308 vkd3d-shader: Introduce VKD3D_SHADER_TARGET_MSL.
309 vkd3d-shader/msl: Generate comments for unhandled instructions.
310 vkd3d-shader/msl: Call vsir_program_transform() before generating code.
311 vkd3d-shader/msl: Keep track of the current indentation level
312 vkd3d-shader/msl: Add vkd3d-shader version information to the generated shader.
313 vkd3d-shader/msl: Implement VKD3DSIH_NOP.
314 vkd3d-shader/msl: Implement VKD3DSIH_MOV.
315 vkd3d-shader/msl: Implement VKD3DSIH_RET.
316 vkd3d-shader/msl: Implement support for VKD3DSPR_TEMP registers.
317 vkd3d-shader/msl: Generate shader output structure declarations.
318 vkd3d-shader/msl: Generate shader input structure declarations.
319 vkd3d-shader/msl: Generate the shader entry point.
320 vkd3d-shader/msl: Generate the shader entry point epilogue.
321 vkd3d-shader/msl: Generate the shader entry point prologue.
322 vkd3d-shader/msl: Handle signature element masks in the prologue and epilogue.
323 vkd3d-shader/msl: Generate shader descriptor structure declarations.
324 vkd3d-shader/msl: Implement support for VKD3DSPR_CONSTBUFFER registers.
325 vkd3d-shader/msl: Implement support for VKD3DSPR_INPUT registers.
326 vkd3d-shader/msl: Implement support for VKD3DSPR_OUTPUT registers.
327 tests/shader_runner: Introduce a Metal shader runner.
328 vkd3d-shader/msl: Add the missing output register index in msl_generate_entrypoint_epilogue().
329 vkd3d-shader/msl: Use pointers for constant buffer descriptors.
330 tests/shader_runner_metal: Implement graphics shader compilation.
331 vkd3d-shader/msl: Output the generated shader code.
332 tests/shader_runner_metal: Create vertex descriptors.
333 tests/shader_runner_metal: Create Metal render targets.
334 tests/shader_runner_metal: Create Metal vertex buffers.
335 tests/shader_runner_metal: Implement render target readback.
336 tests/shader_runner_metal: Create Metal constant buffers.
337 tests/shader_runner_metal: Implement draws.
339 Francisco Casas (77):
340 vkd3d-shader/hlsl: Introduce hlsl_ir_vsir_instruction_ref.
341 vkd3d-shader/hlsl: Store SM1 constant dcls on the vsir_program.
342 vkd3d-shader/hlsl: Store SM1 sampler dcls on the vsir_program.
343 vkd3d-shader/hlsl: Save hlsl_ir_constants in the vsir_program for SM1.
344 vkd3d-shader/hlsl: Save hlsl_ir_loads in the vsir_program for SM1.
345 vkd3d-shader/hlsl: Save hlsl_ir_stores in the vsir_program for SM1.
346 vkd3d-shader/hlsl: Save hlsl_ir_swizzles in the vsir_program for SM1.
347 vkd3d-shader/hlsl: Parse the shader 'compile' syntax.
348 vkd3d-shader/hlsl: Parse the CompileShader() syntax.
349 vkd3d-shader/hlsl: Save simple hlsl_ir_exprs in the vsir_program for SM1.
350 vkd3d-shader/hlsl: Save per-component hlsl_ir_exprs in the vsir_program for SM1.
351 vkd3d-shader/hlsl: Save DOT hlsl_ir_exprs in the vsir_program for SM1.
352 vkd3d-shader/hlsl: Save COS_REDUCED and SIN_REDUCED in the vsir_program for SM1.
353 vkd3d-shader/hlsl: Save DP2ADD hlsl_ir_exprs in the vsir_program for SM1.
354 vkd3d-shader/hlsl: Save REINTERPRET hlsl_ir_exprs as vsir_program MOVs for SM1.
355 vkd3d-shader/hlsl: Save CAST hlsl_ir_exprs in the vsir_program for SM1.
356 vkd3d-shader/hlsl: Save hlsl_ir_resource_load in the vsir_program for SM1.
357 vkd3d-shader/hlsl: Save hlsl_ir_jump in the vsir_program for SM1.
358 vkd3d-shader/hlsl: Introduce enum hlsl_compile_type.
359 tests: Test ConstructGSWithSO() parsing.
360 vkd3d-shader/hlsl: Process GeometryShader as a valid stateblock lhs.
361 vkd3d-shader/hlsl: Parse ConstructGSWithSO().
362 vkd3d-shader/hlsl: Allow effect calls on default value initializers.
363 vkd3d-shader/hlsl: Save hlsl_ir_if in the vsir_program for SM1.
364 vkd3d-shader/hlsl: Remove hlsl_ir_vsir_instruction_ref.
365 vkd3d-shader/d3dbc: Remove ctx and entry_func args in d3dbc_compile().
366 tests/shader_runner: Skip the GLSL tests when GLSL support is not enabled.
367 tests/shader_runner: Skip the DXIL tests when DXIL support is not enabled.
368 tests/shader_runner: Use skip() when the d3d12 device doesn't support shader model 6.
369 tests/shader_runner: Query for GLSL target support instead of checking VKD3D_SHADER_UNSUPPORTED_GLSL.
370 tests/shader-runner: Query for SM6 support instead of checking VKD3D_SHADER_UNSUPPORTED_DXIL.
371 tests: Test sampler_state keyword syntax.
372 vkd3d-shader/hlsl: Process 'texture' as a valid stateblock lhs.
373 vkd3d-shader/hlsl: Parse sampler_state.
374 vkd3d-shader/hlsl: Fix the conditions to discard default values.
375 vkd3d-shader/tpf: Write sysval semantic consistently.
376 vkd3d-shader/tpf: Use dcl_input_ps_sgv for sv_isfrontface.
377 tests: Test interstage signature optimizations.
378 tests: Test interstage signature with arrays.
379 vkd3d-shader/d3dbc: Remove the "hlsl_" prefix from external functions.
380 vkd3d-shader/hlsl: Split hlsl_sm4_write().
381 vkd3d-shader/tpf: Rename "tpf_writer" to "tpf_compiler".
382 vkd3d-shader/tpf: Pass a tpf_compiler structure to tpf_compile() callees.
383 vkd3d-shader/tpf: Use the I/O signatures from the vsir program in tpf_write_signature().
384 vkd3d-shader/tpf: Replace uses of ctx->profile with tpf->program->shader_version.
385 vkd3d-shader/tpf: Make sysval_semantic_from_hlsl() independent of HLSL IR.
386 vkd3d-shader/tpf: Make hlsl_sm4_register_from_semantic() independent of HLSL IR.
387 tests: Add signature reflection test with structs.
388 vkd3d-shader/hlsl: Add mode field to register_allocator allocations.
389 vkd3d-shader/hlsl: Use a register_allocator to allocate semantic registers.
390 vkd3d-shader/hlsl: Also pass field storage modifiers to output signature elements.
391 vkd3d-shader/hlsl: Allow accounting for interpolation mode when allocating semantics.
392 vkd3d-shader/hlsl: Allow to force alignment on some semantic vars.
393 vkd3d-shader/hlsl: Allow prioritizing smaller writemasks when allocating signature elements.
394 vkd3d-shader/hlsl: Optimize interstage signatures.
395 vkd3d-shader/hlsl: Sort signature elements by register id.
396 vkd3d-shader/hlsl: Store the thread group size in the vsir program.
397 vkd3d-shader/hlsl: Introduce hlsl_ir_vsir_instruction_ref, again.
398 vkd3d-shader/hlsl: Store temp declarations in the vsir program.
399 vkd3d-shader/hlsl: Make allocation functions static again.
400 vkd3d-shader/tpf: Use instr.extra_bits for IF.
401 vkd3d-shader/hlsl: Store SM4 swizzles in the vsir program.
402 vkd3d-shader/hlsl: Introduce vsir_src_from_hlsl_node().
403 vkd3d-shader/hlsl: Store SM4 ABS instructions in the vsir program.
404 vkd3d-shader/hlsl: Run sm4_generate_vsir_block() recursively.
405 vkd3d-shader/tpf: Remove HLSL IR ABS handling.
406 vkd3d-shader/hlsl: Store simple SM4 expressions in the vsir program.
407 vkd3d-shader/hlsl: Store RASTERIZER_SAMPLE_COUNT in the vsir program.
408 vkd3d-shader/tpf: Use SCALAR swizzle dimension for RASTERIZER registers.
409 vkd3d-shader/hlsl: Store SM4 casts in the vsir program.
410 vkd3d-shader/hlsl: Store SM4 SIN and COS in the vsir program.
411 vkd3d-shader/hlsl: Store SM4 RCP in the vsir program.
412 vkd3d-shader/hlsl: Store SM4 SAT in the vsir program.
413 vkd3d-shader/hlsl: Store SM4 MUL in the vsir program.
414 vkd3d-shader/hlsl: Store SM4 DIV in the vsir program.
415 vkd3d-shader/hlsl: Store SM4 DOT in the vsir program.
416 vkd3d-shader/hlsl: Store SM4 MOD in the vsir program.
418 Giovanni Mascellani (203):
419 vkd3d-shader: Use a hash to build the filename when dumping shaders.
420 vkd3d-shader: Dump the converted shader too.
421 vkd3d-shader/ir: Emit a warning instead of an error on validation failures.
422 vkd3d-shader/ir: Do not decide the control flow type on NOPs.
423 vkd3d-shader/ir: Run validation after lowering instructions.
424 vkd3d-shader/ir: Run validation after materializing PHI SSAs to TEMPs.
425 vkd3d-shader/ir: Run validation after lowering switches to selection ladders.
426 vkd3d-shader/ir: Run validation after structurization.
427 vkd3d-shader/ir: Run validation after flattening control flow constructs.
428 vkd3d-shader/ir: Run validation after materializing undominated SSAs to TEMPs.
429 vkd3d-shader/ir: Assume that Hull Shaders have a control point phase in vsir_program_normalise_io_registers().
430 vkd3d-shader/ir: Run validation after remapping the output signature.
431 vkd3d-shader/ir: Run validation after flattening hull shader phases.
432 vkd3d-shader/ir: Run validation after normalising Hull Shader control points I/O registers.
433 vkd3d-shader/ir: Run validation after normalising I/O registers.
434 vkd3d-shader/ir: Run validation after normalising flat constants.
435 vkd3d: Directly call the function to update descriptors.
436 vkd3d: Do not keep track of descriptor heaps when using virtual heaps.
437 vkd3d-shader/ir: Run validation after removing dead code.
438 vkd3d-shader/ir: Run validation after normalising combined samplers.
439 vkd3d-shader/ir: Run validation after flattening control flow constructs.
440 vkd3d-shader/ir: Run validation after inserting the alpha test.
441 vkd3d-shader/ir: Rename vsir_program_normalise() to vsir_program_transform().
442 vkd3d-shader/ir: Print results as signed numbers.
443 vkd3d-shader/ir: Move the control flow type enumeration to vkd3d_shader_private.h.
444 vkd3d-shader/ir: Record the control flow type in the program.
445 vkd3d-shader/ir: Introduce a helper for validating DCL_TEMPS.
446 vkd3d-shader/ir: Introduce a helper for validating IF.
447 vkd3d-shader/ir: Introduce a helper for validating IFC.
448 vkd3d-shader/ir: Introduce a helper for validating ELSE.
449 vkd3d-shader/ir: Introduce a helper for validating ENDIF.
450 vkd3d-shader/ir: Introduce a helper for validating LOOP.
451 vkd3d-shader/ir: Introduce a helper for validating ENDLOOP.
452 vkd3d-shader/ir: Introduce a helper for validating REP.
453 vkd3d-shader/ir: Introduce a helper for validating ENDREP.
454 vkd3d-shader/ir: Introduce a helper for validating SWITCH.
455 vkd3d-shader/ir: Introduce a helper for validating ENDSWITCH.
456 vkd3d-shader/ir: Introduce a helper for validating RET.
457 vkd3d-shader/ir: Introduce a helper for validating LABEL.
458 vkd3d-shader/ir: Introduce a helper for validating BRANCH.
459 vkd3d-shader/ir: Introduce a helper for validating SWITCH_MONOLITHIC.
460 vkd3d-shader/ir: Introduce a helper for validating PHI.
461 vkd3d-shader/ir: Do not access a missing destination register when validating PHI.
462 vkd3d-shader/ir: Validate NOP instructions.
463 vkd3d-shader/ir: Record leaving a block in the relevant validation handlers.
464 vkd3d-shader/ir: Record entering a block in the LABEL validation handler.
465 vkd3d-shader/ir: Introduce a helper for validating DCL_HS_MAX_TESSFACTOR.
466 vkd3d-shader/ir: Introduce a helper for validating DCL_INPUT_PRIMITIVE.
467 vkd3d-shader/ir: Introduce a helper for validating DCL_VERTICES_OUT.
468 vkd3d-shader/ir: Introduce a helper for validating DCL_OUTPUT_TOPOLOGY.
469 vkd3d-shader/ir: Introduce a helper for validating DCL_GL_INSTANCES.
470 vkd3d-shader/ir: Introduce a helper for validating DCL_OUTPUT_CONTROL_POINT_COUNT.
471 vkd3d-shader/ir: Introduce a helper for validating DCL_TESSELLATOR_DOMAIN.
472 vkd3d-shader/ir: Introduce a helper for validating DCL_TESSELLATOR_OUTPUT_PRIMITIVE.
473 vkd3d-shader/ir: Introduce a helper for validating DCL_TESSELLATOR_PARTITIONING.
474 vkd3d-shader/ir: Introduce a helper for validating Hull Shader phases.
475 vkd3d-shader/ir: Allow failure in shader_signature_find_element_for_reg().
476 vkd3d-shader/spirv: Propagate errors from vkd3d_spirv_stream_append().
477 vkd3d-shader/spirv: Do not reallocate the SPIR-V program.
478 vkd3d-shader/spirv: Rewrite vkd3d_spirv_get_type_id_for_data_type() in terms of vkd3d_spirv_get_type_id().
479 vkd3d-shader/spirv: Cache numeric types without through the general declaration cache.
480 vkd3d-shader/spirv: Do not specify depth for SPIR-V images.
481 vkd3d-shader/dxil: Release memory on exceptional paths in sm6_parser_read_signature(). (Valgrind)
482 vkd3d-shader/dxil: Release memory on exceptional paths when parsing DXIL code. (Valgrind)
483 vkd3d-shader: Get rid of the SAMPLER data type.
484 vkd3d-shader: Get rid of the UAV data type.
485 vkd3d-shader: Get rid of the RESOURCE data type.
486 vkd3d-shader/ir: Do not allow NULL registers in source parameters.
487 vkd3d-shader/ir: Disallow SAMPLER registers in destination parameters.
488 vkd3d-shader/ir: Disallow RESOURCE registers in destination parameters.
489 vkd3d-shader/dxil: Emit RESOURCE and UAV registers with data type UNUSED.
490 vkd3d-shader/ir: Validate SAMPLER registers.
491 vkd3d-shader/ir: Validate RESOURCE registers.
492 vkd3d-shader/ir: Validate UAV registers.
493 vkd3d-shader/d3d-asm: Dump all indices when tracing VSIR code.
494 vkd3d-shader/tpf: Propagate validation errors after parsing.
495 vkd3d-shader/d3dbc: Trace the program when validation fails after parsing.
496 vkd3d-shader/dxil: Trace the program when validation fails after parsing.
497 vkd3d-shader/d3dbc: Do not emit indices for DEPTHOUT registers.
498 vkd3d-shader/ir: Validate index count for DEPTHOUT registers.
499 vkd3d-shader/ir: Validate index count for DEPTHOUTGE registers.
500 vkd3d-shader/ir: Validate index count for DEPTHOUTLE registers.
501 vkd3d-shader/ir: Validate index count for RASTOUT registers.
502 vkd3d-shader/ir: Validate index count for MISCTYPE registers.
503 readme: Move the "Developing vkd3d" section upwards.
504 readme: Document some preprocessor definitions used by vkd3d.
505 vkd3d-shader/spirv: Handle all possible destination modifiers.
506 vkd3d-shader/dxil: Emit SAMPLER, UAV and RESOURCE registers with only 2 indices.
507 vkd3d-shader/ir: Validate indices for SAMPLER registers.
508 vkd3d-shader/ir: Validate indices for RESOURCE registers.
509 vkd3d-shader/ir: Validate indices for UAV registers.
510 tests/shader-runner: Print the WARP driver version.
511 vkd3d-shader/dxil: Emit double arithmetic operations when appropriate.
512 vkd3d-shader/d3d-asm: Rename vkd3d_shader_trace() to vsir_program_trace().
513 vkd3d-shader/d3d-asm: Rename dump_signature() to dump_dxbc_signature().
514 vkd3d-shader/d3d-asm: Rename dump_signatures() to dump_dxbc_signatures().
515 vkd3d-shader/d3d-asm: Dump signatures when tracing a VSIR program.
516 vkd3d-shader/ir: Set the signature sort indices in shader_signature_merge().
517 vkd3d-shader: Ignore the patch constant signature when it doesn't make sense.
518 vkd3d-shader/ir: Allow a patch constant signature only for Hull and Domain Shaders.
519 vkd3d-shader/ir: Validate register counts in input signatures.
520 vkd3d-shader/ir: Validate register counts in output signatures.
521 vkd3d-shader/ir: Validate register counts in patch constant signatures.
522 vkd3d-shader/ir: Validate masks in shader signatures.
523 vkd3d-shader/spirv: Write spirv_compiler_emit_variable() in terms of spirv_compiler_emit_array_variable().
524 tests: Only destroy the device if the context has one in vulkan_test_context_destroy().
525 vkd3d-shader/ir: Do not emit an instruction number before starting validating instructions.
526 vkd3d-shader/ir: Validate usage masks in shader signatures.
527 vkd3d-shader/ir: Validate system value semantics in shader signatures.
528 vkd3d-shader/ir: Validate component types in shader signatures.
529 vkd3d-shader/ir: Validate minimum precision in shader signatures.
530 vkd3d-shader/ir: Validate interpolation mode in shader signatures.
531 vkd3d-shader/ir: Validate that constant interpolation is used with integer types.
532 vkd3d-shader/ir: Do not search for signature elements using a scalar write mask.
533 vkd3d-shader/ir: Disallow INPUT registers in destination parameters.
534 vkd3d-shader/ir: Disallow OUTPUT registers in source parameters.
535 vkd3d-shader/ir: Only allow PATCHCONST registers as source parameteres in Hull and Domain Shaders.
536 vkd3d-shader/ir: Only allow PATCHCONST registers as destination parameteres in Hull Shaders.
537 vkd3d-shader/ir: Introduce a helper for validating TEMP registers.
538 vkd3d-shader/ir: Introduce a helper for validating SSA registers.
539 vkd3d-shader/ir: Introduce a helper for validating LABEL registers.
540 vkd3d-shader/ir: Introduce a helper for validating registers without indices.
541 vkd3d-shader/ir: Introduce a helper for validating SAMPLER registers.
542 vkd3d-shader/ir: Introduce a helper for validating RESOURCE registers.
543 vkd3d-shader/ir: Introduce a helper for validating UAV registers.
544 vkd3d-shader/ir: Introduce a helper for validating RASTOUT registers.
545 vkd3d-shader/ir: Introduce a helper for validating MISCTYPE registers.
546 vkd3d-shader/ir: Validate the allowed signatures and stages for SV_Position.
547 vkd3d-shader/ir: Validate the allowed data type and component count for SV_Position.
548 vkd3d-shader/ir: Validate the allowed signatures and stages for SV_ClipDistance.
549 vkd3d-shader/ir: Validate the allowed data type and component count for SV_ClipDistance.
550 vkd3d-shader/ir: Validate the allowed signatures and stages for SV_CullDistance.
551 vkd3d-shader/ir: Validate the allowed data type and component count for SV_CullDistance.
552 vkd3d-shader/ir: Validate the input control point count.
553 vkd3d-shader/ir: Validate the output control point count.
554 vkd3d-shader/ir: Validate that signatures are sensible for shader type.
555 tests/shader-runner: Make geometry shaders optional.
556 vkd3d-shader/ir: Validate SV_TessFactor signature elements for quad domains.
557 vkd3d-shader/ir: Validate SV_InsideTessFactor signature elements for quad domains.
558 vkd3d-shader/ir: Validate SV_TessFactor signature elements for tri domains.
559 vkd3d-shader/ir: Validate SV_InsideTessFactor signature elements for tri domains.
560 vkd3d-shader/ir: Validate the line detail SV_TessFactor signature element for isolines domains.
561 vkd3d-shader/ir: Validate the line density SV_TessFactor signature element for isolines domains.
562 ci: Use the macOS image from the master vkd3d repository.
563 vkd3d: Introduce a helper function to add bindings to struct vk_binding_array.
564 vkd3d: Use vk_binding_array_add_binding() in d3d12_root_signature_init_static_samplers().
565 vkd3d: Use vk_binding_array_add_binding() in d3d12_root_signature_init_root_descriptors().
566 vkd3d: Create Vulkan bindings in d3d12_root_signature_append_vk_binding().
567 vkd3d-shader/d3dbc: Make signature masks contiguous.
568 vkd3d-shader/ir: Check that signature masks are contiguous.
569 tests: Test discontiguous signature masks with SM<4 shaders.
570 ci: Remove the tart username and password environment variables.
571 ci: Use widl from the mingw-w64 brew package on macOS.
572 ci: Stop building widl for the macOS image.
573 ci: Build the DirectX shader compiler for macOS.
574 ci: Test DXIL shaders on macOS.
575 vkd3d-shader: Keep track of whether programs have normalised I/O.
576 vkd3d-shader: Keep track of whether programs have normalised hull shader control point I/O.
577 vkd3d-shader/ir: Validate INPUT registers.
578 vkd3d-shader/ir: Validate OUTPUT registers.
579 vkd3d-shader/ir: Validate PATCHCONST registers.
580 vkd3d-shader/ir: Validate INCONTROLPOINT registers.
581 vkd3d-shader/ir: Validate OUTCONTROLPOINT registers.
582 vkd3d: Allow overriding the device capabilities.
583 tests: Mark a sampling test as buggy on llvmpipe.
584 tests: Mark creating an 8x MSAA render target as buggy on llvmpipe.
585 tests: Mark latching the predicated value as todo on llvmpipe.
586 vkd3d-shader/ir: Represent the normalisation level with an enumeration.
587 vkd3d/device: Trace which descriptor heap implementation is being used.
588 vkd3d: Disable push descriptors when that's helpful to stay within 8 descriptor sets.
589 tests: Compute the correct value for condition conjunctions.
590 tests: Use appropriate RTV formats in max-min.shader_test.
591 tests: Use the appropriate RTV format in minimum-precision.shader_test.
592 tests: Mark interface packing pipeline creation as todo on MoltenVK.
593 ci: Build DXC for release.
594 tests: Test mismatching RTV and pixel shader output types.
595 vkd3d: Introduce an enumerant for the mutable descriptor set.
596 vkd3d: Move descriptor sets backing the SRV-UAV-CBV heap at the end.
597 vkd3d: Only put the mutable descriptor set once in the pipeline layout.
598 vkd3d: Incorporate mutable descriptors in the push descriptor disabling logic.
599 vkd3d-shader: Do not dump the target shader if compilation failed.
600 vkd3d-shader: Warn instead of erroring out when failing to dump a shader.
601 tests: Consider LOD miscalculation a todo rather than a driver bug.
602 tests: Use the appropriate RTV format in bitwise.shader_test.
603 tests: Dispatch just four invocations when testing for wave reconvergence.
604 tests: Mark geometry.shader_test as todo on MoltenVK.
605 tests: Mark tessellation.shader_test as todo on MoltenVK.
606 ci: Update the DXC version used on the CI to 1.8.2407.
607 tests: Mark tessellation-patch-vars.shader_test as todo on MoltenVK.
608 ci: Error out on Objective-C warnings.
609 tests: Mark fog.shader_test as todo with MSL.
610 tests: Use the appropriate RTV format in f32tof16.shader_test.
611 tests: Mark some tests in wave-reconvergence.shader_test as buggy on MoltenVK.
612 tests: Work around a Metal bug in switch.shader_test.
613 tests: Mark a couple of tests in register-reservations-numeric.shader_test as todo with MSL.
614 tests/shader_runner_vulkan: Avoid using ok() for shader compilation failues in create_graphics_pipeline().
615 tests: Remove some todo markings on MoltenVK in interface-packing.shader_test.
616 vkd3d-shader/spirv: Get rid of the "offset_component_count" field of struct vkd3d_spirv_resource_type.
617 tests: Mark a conditional rendering test as buggy on llvmpipe.
618 ci: Update Mesa to version 24.2.4.
619 vkd3d: Use WARN rather than ERR in vkd3d_instance_init().
620 vkd3d-shader/ir: Move applying flat interpolation to a dedicated pass.
621 vkd3d-shader/ir: Return an error when the FLAT_INTERPOLATION parameter is invalid.
624 vkd3d-shader/tpf: Return a vkd3d_shader_sysval_semantic from hlsl_sm4_usage_from_semantic().
625 vkd3d-shader/d3dbc: Return a vkd3d_decl_usage from hlsl_sm1_usage_from_semantic().
626 vkd3d-shader/tpf: Use enum vkd3d_shader_component_type in write_sm4_signature().
627 vkd3d-shader/tpf: Use enum vkd3d_sm4_data_type in sm4_resource_format().
628 vkd3d-shader/d3dbc: Store a enum vkd3d_sm1_opcode in struct sm1_instruction.
629 vkd3d-shader/d3dbc: Use VKD3D_SM1_INSTRUCTION_LENGTH_SHIFT instead of D3DSI_INSTLENGTH_SHIFT.
630 vkd3d-shader/d3dbc: Avoid D3DVS_VERSION and D3DPS_VERSION.
631 vkd3d-shader/d3dbc: Use VKD3D_SM1_REGISTER_TYPE_SHIFT and related constants in sm1_encode_register_type().
632 vkd3d-shader/d3dbc: Use enum vkd3d_shader_dst_modifier in struct sm1_dst_register.
633 vkd3d-shader/d3dbc: Use enum vkd3d_shader_src_modifier in struct sm1_src_register.
634 vkd3d-shader/d3dbc: Use VKD3D_SM1_DCL_USAGE_SHIFT and VKD3D_SM1_DCL_USAGE_INDEX_SHIFT in d3dbc_write_semantic_dcl().
635 vkd3d-shader/tpf: Include vkd3d_d3dcommon.h only from tpf.c.
636 vkd3d-shader/ir: Move the source parameter helpers up.
637 vkd3d-shader/ir: Move the destination parameter helpers up.
638 vkd3d-shader/ir: Move the instruction helpers together.
639 vkd3d-shader/ir: Introduce vsir_src_param_init_resource().
640 vkd3d-shader/ir: Introduce vsir_src_param_init_sampler().
641 vkd3d-shader/ir: Merge vsir_program_normalise_combined_samplers() into vsir_program_lower_instructions().
642 vkd3d-shader/glsl: Implement support for VKD3DSPR_INPUT registers.
643 vkd3d-shader/glsl: Implement support for VKD3DSPR_OUTPUT registers.
644 build: Use a tab to indent the "tests/hlsl/constructgswithso.shader_test" line in Makefile.am.
645 vkd3d-shader/d3dbc: Introduce enum vkd3d_sm1_misc_register.
646 vkd3d-shader/glsl: Handle SV_TARGET outputs.
647 vkd3d-shader/glsl: Implement support for VKD3DSPR_CONSTBUFFER registers.
648 vkd3d-shader/glsl: Implement support for VKD3DSPSM_ABS modifiers.
649 vkd3d-shader/d3dbc: Introduce enum vkd3d_sm1_rastout_register.
650 vkd3d-shader/glsl: Implement VKD3DSIH_NEU.
651 vkd3d-shader/glsl: Implement VKD3DSIH_MUL.
652 vkd3d-shader/glsl: Implement VKD3DSIH_INE.
653 vkd3d-shader/glsl: Implement VKD3DSIH_OR.
654 vkd3d-utils: Make D3D12CreateDevice a variadic macro, if possible.
655 vkd3d-shader/glsl: Implement VKD3DSIH_DIV.
656 vkd3d-shader/glsl: Implement support for VKD3DSPSM_NEG modifiers.
657 vkd3d-shader/glsl: Implement VKD3DSIH_GEO.
658 vkd3d-shader/glsl: Implement VKD3DSIH_FRC.
659 vkd3d-shader/d3dbc: Write the actual constant info offset in write_sm1_uniforms().
660 vkd3d-shader/glsl: Implement VKD3DSIH_FTOI.
661 vkd3d-shader/glsl: Implement VKD3DSIH_FTOU.
662 vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_PI.
663 vkd3d-shader/ir: Properly check the register bounds in shader_signature_find_element_for_reg().
664 vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_Z.
665 vkd3d-shader/glsl: Implement support for the VKD3DSPR_DEPTHOUT register.
666 vkd3d-shader/glsl: Implement VKD3DSIH_DP3.
667 vkd3d-shader/glsl: Implement VKD3DSIH_DP4.
668 vkd3d-shader/glsl: Implement VKD3DSIH_DP2.
669 vkd3d-shader/glsl: Implement VKD3DSIH_SQRT.
670 vkd3d-shader/glsl: Implement VKD3DSIH_DCL_INPUT_PS.
671 vkd3d-shader/glsl: Implement VKD3DSIH_IEQ.
672 vkd3d-shader/glsl: Implement VKD3DSIH_EXP.
673 vkd3d-shader/glsl: Implement VKD3DSIH_LTO.
674 vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_NI.
675 vkd3d-shader/glsl: Implement VKD3DSIH_IF and VKD3DSIH_ENDIF.
676 vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_NE.
677 vkd3d-shader/glsl: Handle SV_IS_FRONT_FACE inputs.
678 vkd3d-shader/glsl: Implement VKD3DSIH_LOG.
679 vkd3d-shader/glsl: Implement VKD3DSIH_MAX.
680 vkd3d-shader/glsl: Implement VKD3DSIH_MIN.
681 vkd3d-shader/glsl: Implement VKD3DSIH_RSQ.
682 vkd3d-shader/glsl: Implement VKD3DSIH_NOT.
683 vkd3d-shader/glsl: Implement VKD3DSIH_ELSE.
684 vkd3d-shader/glsl: Implement support for VKD3DSPDM_SATURATE modifiers.
685 vkd3d-shader/glsl: Implement VKD3DSIH_MAD.
686 vkd3d-shader/glsl: Implement VKD3DSIH_ISHL.
687 vkd3d-shader/glsl: Implement VKD3DSIH_ISHR.
688 vkd3d-shader/glsl: Implement VKD3DSIH_USHR.
689 vkd3d-shader/glsl: Implement VKD3DSIH_LD.
690 vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE.
691 vkd3d-shader/glsl: Implement VKD3DSIH_IGE.
692 vkd3d-shader/glsl: Implement VKD3DSIH_ILT.
693 vkd3d-shader/glsl: Implement VKD3DSIH_IMUL.
694 vkd3d-shader/glsl: Implement VKD3DSIH_EQO.
695 vkd3d-shader/glsl: Handle SV_VERTEX_ID inputs.
696 vkd3d-shader/glsl: Add interpolation modifiers to interstage inputs and outputs.
697 vkd3d-shader/glsl: Implement VKD3DSIH_IADD.
698 vkd3d-shader/glsl: Implement support for VKD3DSPR_IDXTEMP registers.
699 vkd3d-shader/glsl: Handle SV_POSITION inputs in fragment shaders.
700 vkd3d-shader/glsl: Implement support for VKD3D_SHADER_COMPONENT_UINT outputs.
701 vkd3d-shader/glsl: Implement support for VKD3D_SHADER_COMPONENT_UINT inputs.
702 vkd3d-shader/glsl: Implement VKD3DSIH_INEG.
703 vkd3d-shader/glsl: Implement VKD3DSIH_IMAX.
704 vkd3d-shader/ir: Store the thread group size in struct vsir_program.
705 vkd3d-shader/glsl: vkd3d-shader/glsl: Implement support for VKD3D_SHADER_COMPONENT_INT inputs.
706 vkd3d-shader/glsl: Implement loops.
707 vkd3d-shader/glsl: Implement switches.
708 vkd3d-shader/glsl: Implement VKD3DSIH_ULT.
709 vkd3d-shader/glsl: Implement VKD3DSIH_CONTINUE.
710 vkd3d-shader/ir: Remove VKD3DSIH_DCL_UAV_TYPED instructions.
711 vkd3d-shader/glsl: Use VKD3D_SHADER_ERROR_GLSL_UNSUPPORTED for unsupported CBV descriptor arrays.
712 vkd3d-shader/glsl: Use the semantic index for shader_out_* declarations.
713 vkd3d-shader/glsl: Implement VKD3DSIH_STORE_UAV_TYPED.
714 vkd3d-shader/glsl: Implement support for compute shaders.
715 tests/shader_runner: Trace the "clip-planes" cap.
716 build: Actually run interface-packing.shader_test and tessellation-patch-vars.shader_test.
717 tests: Add a basic shader model 6 interface packing test as well.
718 vkd3d-shader/dxil: Shift register write masks by the component index in sm6_parser_emit_dx_store_output().
719 vkd3d-shader/d3dbc: Avoid D3DXSHADER_CONSTANTTABLE.
720 vkd3d: Slightly simplify the SRV/UAV logic in vk_write_descriptor_set_from_d3d12_desc().
721 vkd3d-shader/glsl: Implement VKD3DSIH_LD_UAV_TYPED.
722 vkd3d-shader/glsl: Implement support for the VKD3DSPR_THREADID register.
723 vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE_B.
724 vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE_C.
725 vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE_C_LZ.
726 vkd3d-shader/ir: Store the global flags in struct vsir_program.
727 vkd3d-shader/glsl: Implement VKD3DSGF_FORCE_EARLY_DEPTH_STENCIL.
728 vkd3d-shader/glsl: Implement VKD3DSIH_UMAX and VKD3DSIH_UMIN.
729 vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE_LOD.
730 vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE_GRAD.
731 vkd3d-shader/glsl: Implement VKD3DSIH_GATHER4.
732 tests/shader_runner: Print the test context in fatal_error().
733 vkd3d-shader/d3d-asm: Implement support for VKD3DSPR_PARAMETER registers.
734 vkd3d-shader/spirv: Handle oPts in spirv_compiler_get_register_name().
735 tests/shader_runner: Handle render target sizes other than 640x480.
736 tests/shader_runner_d3d12: Introduce a helper to get the default resource state for a resource.
737 tests: Add a test for actual multisample loads.
738 tests/shader_runner: Set "properties2.sType" in get_physical_device_info() in the Vulkan runner.
739 tests/shader_runner: Print "(none)" for an empty caps list in trace_shader_caps().
740 tests/shader_runner: Check whether copy/dispatch/draw succeeded in parse_test_directive().
741 vkd3d-shader/ir: Specifically search for SV_POSITION0 in vsir_program_insert_clip_planes().
742 vkd3d-shader/ir: Search for SV_TARGET0 vsir_program_insert_alpha_test().
743 vkd3d-shader/glsl: Implement support for VKD3D_SHADER_COMPONENT_INT outputs.
744 vkd3d-shader/glsl: Implement VKD3DSIH_GATHER4_PO.
745 vkd3d-shader/glsl: Implement support for static texel offsets in shader_glsl_sample().
746 vkd3d-shader/glsl: Handle SV_SAMPLE_INDEX inputs.
747 vkd3d-shader/glsl: Implement VKD3DSIH_LD2DMS.
748 tests/shader_runner: Slightly simplify dxc handling.
749 tests/shader_runner_metal: Get rid of some stray semicolons.
750 vkd3d-shader/msl: Implement VKD3DSIH_DCL_INPUT.
751 vkd3d-shader/msl: Implement VKD3DSIH_DCL_OUTPUT_SIV.
752 vkd3d-shader/msl: Implement VKD3DSIH_DCL_OUTPUT.
753 include: Document the binary effect transformations supported by vkd3d_shader_compile().
756 vkd3d-shader/fx: Set structure field offsets in bytes.
757 vkd3d-shader/fx: Only add numeric variables when writing buffers.
758 vkd3d-shader/fx: Expand BlendState array fields for fx_4_1 as well.
759 vkd3d-shader/fx: Fix the unpacked size and stride fields of the fx_4_0 types.
760 vkd3d-shader/tpf: Fix a typo when adding the SFI0 section.
761 vkd3d-shader: Handle the SV_SampleIndex semantic.
762 vkd3d-shader/hlsl: Implement the mad() intrinsic.
763 vkd3d-shader/fx: Check modifiers when reusing types.
764 vkd3d-shader/tpf: Create a stub STAT section.
765 vkd3d-shader/tpf: Handle conversion instructions in STAT.
766 vkd3d-shader/tpf: Handle arithmetic instructions in STAT.
767 vkd3d-shader/tpf: Handle 'emit' and 'cut' in STAT.
768 vkd3d-shader/tpf: Handle 'movc' in STAT.
769 vkd3d-shader/tpf: Handle texture instructions in STAT.
770 vkd3d-shader/d3d-asm: Tweak some GS declaration names.
771 vkd3d-shader/tpf: Handle GS reflection fields in the STAT section.
772 vkd3d-shader/tpf: Handle bitwise instructions in STAT.
773 vkd3d-shader/tpf: Handle atomic instructions in STAT.
774 vkd3d-shader/tpf: Handle tessellation stage fields in STAT.
775 vkd3d-shader/tpf: Handle barrier instructions in STAT.
776 vkd3d-shader/tpf: Add a 'lod' counter to the STAT.
777 vkd3d-shader/tpf: Set 'gather' instructions counter in the STAT.
778 vkd3d-shader/tpf: Move STAT fields update to a separate helper.
779 vkd3d-shader/tpf: Set temps count in the STAT section.
780 vkd3d-shader: Explicitly set indices for the numeric type names array.
781 tests: Add some more tests for type name handling.
782 vkd3d-shader/hlsl: Remove the 'double' keyword.
783 vkd3d-shader/d3dbc: Add an option to treat doubles as floats.
784 tests: Add some tests for initial values in effects.
785 vkd3d-shader/fx: Handle the 'half' type in fx_4+.
786 vkd3d-shader/fx: Add initial support for writing default values for fx_2_0.
787 vkd3d-shader/fx: Add support for writing annotations for fx_2_0.
788 vkd3d-shader/hlsl: Move default values indexing fixup to the tpf writer stage.
789 tests: Add some tests for state value assignments.
790 vkd3d-shader/hlsl: Do not lower index expressions for effects.
791 vkd3d-shader/fx: Handle assignments with array RHS indexed with a constant or a single variable.
792 vkd3d-shader/fx: Implement writing fx_2_0 object initializer data sections.
793 vkd3d-shader/hlsl: Remove the type equality assertion for binary expression arguments.
794 tests: Add a test for uniform array indexing.
795 vkd3d-shader/fx: Introduce a parser/disassembler.
796 vkd3d-shader/fx: Add support for parsing constant buffer elements.
797 vkd3d-shader/fx: Add support for tracing string variables.
798 vkd3d-shader/hlsl: Implement the modf() intrinsic.
799 vkd3d-shader/fx: Add support for tracing annotations.
800 vkd3d-compiler: Add missing 'fx' source type to the CLI output.
801 vkd3d-shader/fx: Implement parsing groups and techniques.
802 vkd3d-shader/hlsl: Handle snorm/unorm types as resource formats.
803 vkd3d-shader/hlsl: Implement the f32tof16() intrinsic.
804 vkd3d-shader/hlsl: Handle SV_GroupIndex.
805 vkd3d-shader/hlsl: Use a more compact way to store object method configurations.
806 vkd3d-shader/hlsl: Add parser support for the RWByteAddressBuffer type.
807 tests: Add some more tests for RWByteAddressBuffer store methods.
808 vkd3d-shader/hlsl: Implement RWByteAddressBuffer.Store*() methods.
809 vkd3d-shader/fx: Implement parsing shader objects.
810 vkd3d-shader/fx: Implement parsing shader resources types.
811 vkd3d-shader/hlsl: Accept multiple colon-separated attributes.
812 vkd3d-shader/spriv: Only lookup resource symbols for UAVs in the ld_raw/ld_structured handler.
813 vkd3d-shader/hlsl: Add parser support for the ByteAddressBuffer type.
814 vkd3d-shader/hlsl: Implement the ByteAddressBuffer.Load*() methods.
815 vkd3d-shader/fx: Implement parsing the remaining fx_5_0 object types.
816 vkd3d-shader/fx: Implement parsing states objects.
819 vkd3d-shader/hlsl: Implement the dst() intrinsic.
820 vkd3d-shader/hlsl: Implement the sincos() intrinsic.
823 vkd3d-shader/hlsl: Check for duplicate attributes in function declaration.
824 tests: Test hull shader attributes.
825 tests: Test hull shader function overloads.
826 vkd3d-shader/hlsl: Introduce parse_entry_function_attributes() helper.
827 vkd3d-shader/hlsl: Parse the domain attribute.
828 vkd3d-shader/hlsl: Parse the outputcontrolpoints attribute.
829 vkd3d-shader/hlsl: Parse the outputtopology attribute.
830 vkd3d-shader/hlsl: Parse the partitioning attribute.
831 vkd3d-shader/hlsl: Parse the patchconstantfunc attribute.
832 vkd3d-shader/hlsl: Validate hull shader attributes.
833 vkd3d-shader/hlsl: Introduce process_entry_function() helper.
834 vkd3d-shader/hlsl: Clone static_initializers for each entry function.
835 vkd3d-shader/hlsl: Record semantic extern vars separately for each entry function.
836 vkd3d-shader/hlsl: Track whether a variable is read in any entry function.
837 vkd3d-shader/hlsl: Allocate temporary registers separately for each entry function.
838 vkd3d-shader/hlsl: Invoke prepend_uniform_copy() only once for global uniforms.
839 tests: Test struct single inheritance.
840 vkd3d-shader/hlsl: Implement struct single inheritance.
841 vkd3d-shader/tpf: Write hull shader declarations.
842 vkd3d-shader/tpf: Implement semantics for hull shaders.
843 tests: Test hull shader uniform input parameters.
844 vkd3d-shader/hlsl: Process the patch constant function in hlsl_emit_bytecode().
845 vkd3d-shader/tpf: Introduce tpf_write_shader_function().
846 vkd3d-shader/tpf: Determine SIV from SV and index in write_sm4_dcl_semantic().
847 tests: Test signature reflection for hull shaders.
848 vkd3d-shader/tpf: Write the patch constant function in hull shaders.
849 vkd3d-utils: Implement version reflection.
850 vkd3d-utils: Return correct use masks during reflection.
851 vkd3d-shader/ir: Validate control point counts correctly.
852 vkd3d-shader/tpf: Write the input signature of domain shaders as PCSG.
853 vkd3d-shader/tpf: Use vpc input registers for domain shaders.
854 vkd3d-shader/tpf: Write domain shader declarations.
855 vkd3d-shader/tpf: Implement semantics for domain shaders.
856 tests: Test signature reflection for domain shaders.
857 vkd3d-shader/hlsl: Support discard for SM1.
858 vkd3d-shader/hlsl: Store SM4 semantic declarations in the vsir program.
861 vkd3d-shader/hlsl: Fold logic AND and logic OR identities.
862 tests: Add a test for unused overlapping cbuffer reservations.
863 vkd3d-shader/hlsl: Allow cbuffer reservations to overlap if only one of them is allocated.