vkd3d-shader/ir: Return an error when the FLAT_INTERPOLATION parameter is invalid.
[vkd3d.git] / ANNOUNCE
blob869204f746f044afbc3f54ebe4356f67517b34b4
1 The vkd3d team is proud to announce that release 1.13 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   - Basic loop unrolling support in the HLSL compiler.
8   - Effects compiler support for several version 4.0+ state objects.
9   - Miscellaneous bug fixes.
11 The source is available from the following location:
13   <https://dl.winehq.org/vkd3d/source/vkd3d-1.13.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.13
24 ### libvkd3d
26   - The ID3D12CommandList6 interface is supported.
28   - Block-compressed textures can be created with unaligned dimensions. This
29     corresponds to
30     D3D12_FEATURE_D3D12_OPTIONS8.UnalignedBlockTexturesSupported.
32   - Some minor issues pointed out by the Vulkan validation layers have been
33     addressed. These are not known to affect applications in practice, but
34     should make libvkd3d slightly more well-behaved.
36 ### libvkd3d-shader
38   - New features for the HLSL source type:
39     - Basic loop unrolling support. Some of the more complicated cases like
40       loops containing conditional jumps are still unsupported.
41     - Initialisation values for global variables, function parameters, and
42       annotation variables are parsed and stored in output formats supporting
43       them.
44     - Shader model 5.1 register spaces are supported when using the
45       corresponding target profiles, as well as shader model 5.1 reflection
46       data.
47     - Register reservations support expressions as offsets. For example:
48       ‘float f : register(c0[1 + 1 * 2]);’
49     - The tex1D(), tex2D(), tex3D(), and texCUBE() intrinsic function variants
50       with explicit derivatives are supported.
51     - The following intrinsic functions are supported:
52       - asint()
53       - f16tof32()
54       - faceforward()
55       - GetRenderTargetSampleCount()
56       - rcp()
57       - tex2Dbias()
58       - tex1Dgrad(), tex2Dgrad(), tex3Dgrad(), and texCUBEgrad()
59     - The sin() and cos() intrinsic functions are supported in shader model
60       1-3 profiles. These were already supported in shader model 4+ profiles.
61     - The following features specific to effects target profiles:
62       - Types supported in version 4.0+:
63         - BlendState
64         - ComputeShader, DomainShader, GeometryShader, and HullShader
65         - DepthStencilState
66         - RasterizerState
67       - State application functions implemented for version 4.0+ effects:
68         - OMSetRenderTargets()
69         - SetBlendState()
70         - SetComputeShader(), SetDomainShader(), SetGeometryShader(),
71           SetHullShader(), SetPixelShader(), and SetVertexShader()
72         - SetDepthStencilState()
73         - SetRasterizerState()
74       - String types. These are mainly used for annotations.
75       - Annotations on global variables.
76       - Support for the ‘Texture’ field of the ‘SamplerState’ type.
77       - Support for NULL values.
78     - Stores to swizzled matrix variables.
79     - The ‘unsigned’ type modifier is supported. (For example,
80       ‘unsigned int’.) Note that ‘uint’ and related types were already
81       supported.
82     - ‘ConstantBuffer<>’ types.
83     - The ‘SV_Coverage’ output semantic for fragment shaders.
85   - The experimental DXIL source type supports quad group operations.
87   - The Direct3D shader model 2-3 ‘texldb’ instruction is correctly disassembled
88     when outputting Direct3D shader assembly.
90   - New interfaces:
91     - The vkd3d_shader_parameter_info structure extends the
92       vkd3d_shader_compile_info structure, and can be used to specify shader
93       parameters. This is a more generic version of the shader parameter
94       interface for SPIR-V targets in struct vkd3d_shader_spirv_target_info.
95     - The VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32 enumeration value specifies
96       that a shader parameter contains 32-bit floating-point data.
97     - The VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC shader parameter
98       specifies the alpha test function.
99     - The VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF shader parameter
100       specifies the alpha test reference value.
101     - The VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION shader parameter
102       specifies the interpolation mode for colour inputs in Direct3D shader
103       model 1-3 fragment shaders.
104     - The VKD3D_SHADER_PARAMETER_TYPE_BUFFER enumeration value specifies that
105       the value of a shader parameter is provided at run-time through a buffer
106       resource.
108 ### Changes since vkd3d 1.12:
110 Anna (navi) Figueiredo Gomes (6):
111       vkd3d-shader/ir: Periodically flush buffers when tracing blocks.
112       Add a .editorconfig file.
113       vkd3d: Use D3D12_SHADER_VISIBILITY_ALL for 32-bit root constants when using vk_heaps.
114       vkd3d-shader/spirv: Avoid decorating variables multiple times with NonReadable.
115       vkd3d-shader/spirv: Use unique SPIR-V variables for descriptors where visibility differs.
116       vkd3d-shader/spirv: Avoid decorating variables multiple times with Coherent.
118 Atharva Nimbalkar (2):
119       vkd3d-shader/glsl: Implement VKD3DSIH_MOV.
120       vkd3d-shader/glsl: Implement support for VKD3DSPR_TEMP registers.
122 Conor McCarthy (16):
123       vkd3d-shader/dxil: Implement DX intrinsic QuadOp.
124       vkd3d-shader/spirv: Implement the QUAD_READ_ACROSS_* instructions.
125       vkd3d-shader/dxil: Implement DX intrinsic QuadReadLaneAt.
126       vkd3d-shader/spirv: Implement the QUAD_READ_LANE_AT instruction.
127       tests/d3d12: Check for unaligned block texture support in test_create_committed_resource().
128       vkd3d: Allow block compressed textures to have unaligned width and height.
129       tests/d3d12: Test a null vertex buffer 'views' pointer on multiple slots.
130       vkd3d: Interpret a null vertex buffer 'views' pointer as a null buffer.
131       tests/shader-runner: Set the correct flag and format for raw UAVs.
132       tests/shader-runner: Create a new runner object for the shader model 6 tests.
133       vkd3d: Create a descriptor pool for static samplers when Vulkan-backed heaps are used.
134       tests: Add a test for clearing a large buffer UAV.
135       vkd3d: Limit the workgroup X count for buffer UAV clears to the supported max.
136       vkd3d: Add support for the ID3D12CommandList6 interface.
137       vkd3d-shader/spirv: Free the spirv parameter info.
138       vkd3d: Free descriptor range information on error paths in d3d12_root_signature_info_from_desc(). (Valgrind)
140 Elizabeth Figura (39):
141       vkd3d-shader/hlsl: Add a hlsl_fixme() for 5.1 resource arrays.
142       vkd3d-shader/hlsl: Put constant buffers into the extern_resources struct.
143       vkd3d-shader: Write SM5.1 register indices.
144       vkd3d-shader/hlsl: Allocate register spaces for constant buffers.
145       vkd3d-shader/hlsl: Allocate register spaces for objects.
146       vkd3d-shader: Write SM5.1 register spaces.
147       vkd3d-shader/hlsl: Write SM5.1 binding reflection data.
148       tests: Add reflection tests for register space.
149       vkd3d-shader/hlsl: Always initialize $$ when parsing modifiers from an arbitrary string.
150       tests: Stop probing all pixels when drawing a uniform colour.
151       tests: Run combined-samplers.shader_test on sm1 as well.
152       tests: Add another combined sampler test.
153       vkd3d-shader/hlsl: Respect the coords writemask in write_sm1_resource_load().
154       vkd3d-shader/hlsl: Only allocate the aligned size for uniforms.
155       vkd3d-shader/hlsl: Separate an "array" rule.
156       vkd3d-shader/d3dbc: Use enum vkd3d_shader_register_type in struct sm1_instruction.
157       tests/shader_runner: Use resource->width instead of resource->size for buffer width.
158       tests/shader_runner: Factor out a resource_desc structure.
159       tests: Implement multisampling in the Vulkan renderer.
160       tests: Implement multisampling in the GL renderer.
161       vkd3d-shader/hlsl: Implement the GetRenderTargetSampleCount() intrinsic.
162       vkd3d-shader/hlsl: Implement output SV_Coverage.
163       vkd3d-shader: Introduce struct vkd3d_shader_parameter_info and struct vkd3d_shader_parameter1.
164       include: Document shader parameters.
165       vkd3d-shader/spirv: Support passing shader parameters through uniform buffers.
166       tests: Add a test for the vkd3d_shader_parameter APIs.
167       vkd3d-shader/spirv: Respect VKD3D_SHADER_CONDITIONAL_OP_Z when discard has a bool argument.
168       vkd3d-shader: Allow controlling alpha test through vkd3d-shader parameters.
169       tests: Offset the viewport by 0.5 when running d3dbc shaders.
170       tests: Factor out a set_default_target() helper.
171       tests: Test alpha test.
172       vkd3d-shader/spirv: Allocate output_info after normalization.
173       vkd3d-shader: Factor out a vsir_program_get_parameter() helper.
174       vkd3d-shader/spirv: Pass a vkd3d_data_type to spirv_compiler_emit_shader_parameter().
175       vkd3d-shader: Do not make the alpha test ref parameter VSIR_DIMENSION_VEC4.
176       vkd3d-shader: Use the program parameters in spirv_compiler_alloc_spec_constant_id().
177       vkd3d-shader: Allow controlling d3d color shade mode through vkd3d-shader parameters.
178       tests: Test shade mode.
179       vkd3d-shader: Use an extended version of vkd3d_shader_immediate_constant in vkd3d_shader_parameter1.
181 Francisco Casas (52):
182       vkd3d-shader/hlsl: Record default values for uniforms and constant buffers.
183       vkd3d-shader/hlsl: Initialize default values with braceless initializers.
184       tests: Test default values using reflection.
185       vkd3d-shader/tpf: Write default values for SM4.
186       vkd3d-shader/d3dbc: Write default values for SM1.
187       tests: Test matrix default value initializers.
188       vkd3d-shader/hlsl: Fix numeric register offset for matrix components.
189       vkd3d-shader/hlsl: Reorder default values for matrices for SM4.
190       tests: Test register reservations on unused variables.
191       vkd3d-shader/hlsl: Only error out on bind_count register reservation overlaps for SM1.
192       vkd3d-shader/d3dbc: Split hlsl_sm1_write().
193       vkd3d-shader/hlsl: Generate CTAB outside d3dbc_compile().
194       vkd3d-shader/d3dbc: Introduce struct d3dbc_compiler.
195       vkd3d-shader/d3dbc: Use program->shader_version instead of ctx->profile.
196       vkd3d-shader/d3dbc: Don't require a hlsl_semantic to get register and usage.
197       vkd3d-shader/d3dbc: Use vsir_program I/O signatures to write dcls.
198       vkd3d-shader/d3dbc: Don't write inconsequential MOVs.
199       vkd3d-shader/hlsl: Free array sizes on function parameters (Valgrind).
200       tests: Separate the valid stateblock function names test from the string arg test.
201       vkd3d-shader/hlsl: Parse function call syntax on state blocks.
202       tests: Test whether valid state block function names are case-sensitive.
203       vkd3d-shader/hlsl: Validate state block function calls.
204       vkd3d-shader/hlsl: Add missing src1 and src2 constants to sincos on SM2.
205       tests: Test string escape sequences.
206       vkd3d-shader/hlsl: Parse string constants.
207       vkd3d-shader/hlsl: Parse string escape sequences.
208       vkd3d-shader/hlsl: Parse string type.
209       tests: Add missing double precission require directives.
210       tests: Report tests skipped because of missing capabilities.
211       tests/shader-runner: Add missing trace for wave_ops caps.
212       tests: Introduce VKD3D_TEST_DETAILED for the test driver.
213       vkd3d-shader/hlsl: Avoid dereferencing rel_offset if it is NULL.
214       tests: Add additional non-constant array indexing tests.
215       vkd3d-shader/hlsl: Lower non-constant array loads for SM1.
216       vkd3d-shader/hlsl: Remove SM1 fixme for matrix writemasks.
217       vkd3d-shader/hlsl: Lower non-constant row_major matrix loads for SM1.
218       tests: Add additional string tests.
219       vkd3d-shader/hlsl: Parse string default values.
220       vkd3d-shader/hlsl: Skip writing string default values.
221       vkd3d-shader/hlsl: Always work with the extern resource's component type.
222       vkd3d-shader: Avoid div by zero on assert in vkd3d_calloc() (ubsan).
223       tests: Add additional tests for function calls in state block rhs.
224       tests: Test shader compilation within function definitions.
225       tests: Test compile syntax on effects.
226       tests: Test shader compilation within braces.
227       tests: Test shader compilation with default values.
228       tests/shader_runner: Require explicit formats for UAV resources.
229       tests/shader_runner: Move parse_format() up.
230       tests/shader_runner: Replace spaces with dashes in format names.
231       tests/shader_runner: Don't skip shader compilation on missing caps.
232       tests/shader_runner: Explicitly require UAV load support.
233       tests/test-driver: Avoid double space when printing details.
235 Giovanni Mascellani (57):
236       tests: Mark some root signature unbounded range failures as todo on MoltenVK.
237       vkd3d: Do not request VK_EXT_debug_marker if debug is disabled.
238       vkd3d: Enable VK_KHR_portability_subset if available.
239       vkd3d: Do not synchronize with the geometry shader stage if it's not enabled.
240       ci: Assume an Apple Silicon-based environment for the macOS CI job.
241       tests: Skip sampling cube textures on Qualcomm.
242       tests: Transition resources to PIXEL_SHADER_RESOURCE in test_sample_c_lz().
243       tests: Check that depth/stencil formats are supported before using them.
244       vkd3d: Do not synchronize with the tessellation shader stages if they're not enabled.
245       tests: Improve feedback when enabling d3d12 debug layers.
246       tests: Enable the d3d12 debug layer message callbacks.
247       tests: Support using the Agility SDK in the crosstests.
248       vkd3d: Propagate a failure in d3d12_descriptor_heap_init().
249       tests: Define WIDL macros in utils.h.
250       vkd3d: Allocate temporary arrays on the stack in d3d12_command_list_update_push_descriptors().
251       tests: Pad the constant buffer in test_update_compute_descriptor_tables() to 256 bytes.
252       tests: Terminate the Agility SDK path with a slash.
253       vkd3d: Document how to install "Graphics Tools" to use the Agility SDK.
254       vkd3d: Rebuild the vkd3d_physical_device_info chain before creating the device.
255       vkd3d: Remove the temporary pointers in vkd3d_physical_device_info_init().
256       vkd3d: Propagate errors out of d3d12_root_signature_append_vk_binding().
257       vkd3d: Disable WARN_ON() when VKD3D_NO_DEBUG_MESSAGES is defined.
258       vkd3d: Disable FIXME_ONCE() when VKD3D_NO_DEBUG_MESSAGES is defined.
259       vkd3d: Allow disabling ERR() by defining VKD3D_NO_ERROR_MESSAGES.
260       vkd3d: Introduce debug severity MESSAGE.
261       vkd3d: Introduce a softer form of assertion.
262       vkd3d: Allow aborting on ERR().
263       vkd3d: Emit an ERR() when reaching unreachable code.
264       ci: Abort on assertions on the CI.
265       tests: Test register conflicts in a root signature.
266       vkd3d: Replace assert() with VKD3D_ASSERT() in command.c.
267       vkd3d: Replace assert() with VKD3D_ASSERT() in resource.c.
268       vkd3d: Replace assert() with VKD3D_ASSERT() in state.c.
269       vkd3d: Replace assert() with VKD3D_ASSERT() in utils.c.
270       vkd3d: Replace assert() with VKD3D_ASSERT() in vkd3d_private.h.
271       vkd3d-common: Remove an assertion in vkd3d_dbg_printf().
272       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in checksum.c.
273       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in d3d_asm.c.
274       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in d3dbc.c
275       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in dxbc.c.
276       tests: Mark a couple of tests as working on recent NVIDIA GPUs.
277       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in dxil.c.
278       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in fx.c.
279       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl_codegen.c.
280       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl_constant_ops.c.
281       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl.c.
282       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl.h.
283       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl.y.
284       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in ir.c.
285       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in preproc.h.
286       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in preproc.l.
287       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in preproc.y.
288       vkd3d: Check the entire root signature for register conflicts.
289       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in spirv.c.
290       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in tpf.c.
291       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in vkd3d_shader_main.c.
292       vkd3d-shader: Replace assert() with VKD3D_ASSERT() in vkd3d_shader_private.h.
294 Henri Verbeet (9):
295       vkd3d-shader/ir: Rename the "handler_idx" field of struct vkd3d_shader_instruction to "opcode".
296       vkd3d: Always use UINT views to clear UAVs with integer formats.
297       vkd3d-shader/ir: Remove VKD3DSIH_DCL instructions.
298       vkd3d-shader/ir: Remove VKD3DSIH_DCL_SAMPLER instructions.
299       vkd3d-common: Replace assert() with VKD3D_ASSERT().
300       vkd3d-shader/fx: Replace assert() with VKD3D_ASSERT().
301       vkd3d: Do not include assert.h.
302       build: Actually run bitwise-assignment.shader_test.
303       vkd3d-shader/spirv: Decorate non-array descriptor variables as well.
305 Nikolay Sivov (66):
306       vkd3d-shader/hlsl: Handle "unsigned int" type.
307       tests: Add some basic tests for ConstantBuffer type.
308       tests: Add a few tests for the NULL value.
309       vkd3d-shader/fx: Do not write shared buffers block when not compiling as a child effect.
310       vkd3d-shader/hlsl: Implement tex2Dbias().
311       vkd3d-shader/asm: Output 'bias' flag for 'texld'.
312       vkd3d-shader/d3dbc: Write load instruction for tex2Dbias().
313       vkd3d-shader/hlsl: Store original semantic name.
314       vkd3d-shader/fx: Use original full semantic name.
315       vkd3d-shader/fx: Set EXPLICIT_BIND_POINT flag for packoffset() reservations as well.
316       vkd3d-shader/fx: Fix variable buffer offset value.
317       vkd3d-shader/hlsl: Add support for ConstantBuffer<> type.
318       vkd3d-shader/fx: Cast state block field values to target type.
319       vkd3d-shader/fx: Add support for writing DepthStencilState objects.
320       vkd3d-shader/hlsl: Add RasterizerState type.
321       vkd3d-shader/fx: Add support for writing RasterizerState objects.
322       vkd3d-shader: Implement tex*() functions variants with gradient arguments.
323       vkd3d-shader/hlsl: Implement tex*grad() functions.
324       vkd3d-shader/fx: Fix structure type data written for fx_4.
325       vkd3d-shader/fx: Write default numeric values.
326       vkd3d-shader/fx: Fix packed size for fx_4+ types.
327       vkd3d-shader/fx: Preserve parsing order of initializer components.
328       vkd3d-shader/fx: Add missing fields for structure types on fx_5_0.
329       vkd3d-shader/hlsl: Do not crash on initialization of a redefined variable.
330       vkd3d-shader/hlsl: Set default values for annotations variables.
331       vkd3d-shader/fx: Write annotations for fx_4+ profiles.
332       tests: Add some fx profiles tests for structure types containing objects.
333       vkd3d-shader: Disallow object structure fields for fx profiles.
334       vkd3d-shader/fx: Do not output empty strings for missing semantics for fx_2_0.
335       vkd3d-shader/hlsl: Allow annotations on global variables.
336       vkd3d-shader/fx: Correct empty pass check.
337       vkd3d-shader/fx: Set total pass count for fx_2_0.
338       vkd3d-shader/fx: Correct one of the object counters in the fx_2_0 header.
339       vkd3d-shader/fx: Decompose function-style state assignments to individual states.
340       vkd3d-shader/fx: Handle SetRasterizerState().
341       vkd3d-shader/hlsl: Add parser support for ComputeShader, DomainShader, and HullShader types.
342       vkd3d-shader/fx: Fix state block entry array shifting when decomposing.
343       vkd3d-shader/fx: Add support for SetDomainShader(), SetComputeShader(), and SetHullShader() states.
344       vkd3d-shader/fx: Handle "Texture" field of the sampler state objects.
345       vkd3d-shader/fx: Use more descriptive names for FX-specific types.
346       vkd3d-shader/fx: Add an array size field to the states description table.
347       vkd3d-shader/fx: Add support for the OMSetRenderTargets() state.
348       vkd3d-shader/hlsl: Add parser support for GeometryShader type.
349       vkd3d-shader/fx: Check destination array index when checking for duplicate state entries.
350       vkd3d-shader/hlsl: Add parser support for BlendState type.
351       vkd3d-shader/fx: Enable writing BlendState variables.
352       vkd3d-shader/fx: Run full set of constants passes on state block entries values.
353       vkd3d-shader/fx: Handle states of a BlendState object.
354       vkd3d-shader/fx: Explicitly handle bool values in state entries.
355       vkd3d-shader/fx: Turn assignments to arrays to element assignments for certain states.
356       vkd3d-shader/hlsl: Check MS texture declaration without sample count only for used variables.
357       vkd3d-shader/hlsl: Handle NULL constants.
358       vkd3d-shader/hlsl: Add a test for assigning to DSV and RTV variables.
359       vkd3d-shader/hlsl: Tokenize 'String' the same as 'string'.
360       vkd3d-shader/hlsl: Treat "string" type name as case-insensitive.
361       vkd3d-shader/fx: Enable writing string objects for fx_4+.
362       vkd3d-shader/fx: Support string annotations for fx_4+.
363       vkd3d-shader/fx: Handle SetBlendState().
364       vkd3d-shader/fx: Handle SetPixelShader() and SetVertexShader().
365       vkd3d-shader/hlsl: Adjust NULL type properties to make it usable in transformations.
366       vkd3d-shader/fx: Support NULL constants for object fields.
367       vkd3d-shader/fx: Resolve NULL values for SamplerState.Texture field.
368       vkd3d: Fix a few typos in the comments.
369       vkd3d-shader/glsl: Fix a typo in a few messages.
370       include: Fix a few typos in the IDL files.
371       vkd3d-shader/fx: Fix the matrix type class for fx_2_0.
373 Petrichor Park (5):
374       vkd3d-shader/hlsl: Implement the faceforward() intrinsic.
375       vkd3d-shader/hlsl: Implement tests for the rcp() intrinsic.
376       vkd3d-shader/hlsl: Implement the rcp() intrinisic.
377       vkd3d-shader/tpf: Implmenent HLSL_OP1_RCP.
378       vkd3d-shader/hlsl: Factor out add_binary_expr() and use it for assignment operators.
380 Shaun Ren (6):
381       vkd3d-shader/ir: Lower SM1 SINCOS to SM4 SINCOS.
382       vkd3d-shader/hlsl: Implement sin/cos for SM1.
383       vkd3d-shader/d3dbc: Implement HLSL_OP3_MAD for SM1.
384       vkd3d-shader/hlsl: Allocate registers for HLSL_OP1_{COS,SIN}_REDUCED with the required writemasks.
385       vkd3d-shader/d3dbc: Implement HLSL_OP1_{COS,SIN}_REDUCED for SM1.
386       vkd3d-shader/hlsl: Support default values for function parameters.
388 Stefan Dösinger (2):
389       include: Get rid of the RB_FOR_EACH* macros.
390       vkd3d: Pass a proper struct shader_cache_key * to rb_put() in vkd3d_shader_cache_add_entry().
392 Victor Chiletto (20):
393       tests: Add more register reservations tests.
394       vkd3d-shader/hlsl: Support expressions as register offsets.
395       vkd3d-shader/hlsl: Pass a pointer to struct hlsl_reg_reservation in parse_reservation_index.
396       vkd3d-shader/hlsl: Ignore bracket offsets for 'b' register types prior to SM 5.1.
397       vkd3d-shader/hlsl: Do not immediately fail parsing for malformed 'b' register reservations.
398       vkd3d-shader/hlsl: Validate cbuffer register allocations.
399       vkd3d-shader/hlsl: Reserve register slots for unused buffers.
400       tests: Add reflection tests for register expressions.
401       vkd3d-shader/d3dbc: Fix implicit enum conversion warning.
402       tests/hlsl: Add a test for dynamically indexed multisampled texture loads.
403       vkd3d-shader/hlsl: Use a switch in validate_static_object_references().
404       vkd3d-shader/hlsl: Defer bounds checks to after copy propagation.
405       vkd3d-shader/hlsl: Pull evaluate_static_expression_as_uint() upwards.
406       vkd3d-shader/hlsl: Parse loop and unroll loop attributes.
407       vkd3d-shader/hlsl: Allow cloned blocks to contain external references.
408       vkd3d-shader/hlsl: Implement loop unrolling.
409       tests/hlsl: Test loop unrolling edge cases.
410       vkd3d-shader/hlsl: Implement the asint() intrinsic.
411       vkd3d-shader/hlsl: Push a new scope when compiling internal functions.
412       vkd3d-shader/hlsl: Implement f16tof32 intrinsic.
414 Yuxuan Shui (2):
415       tests: Pass the correct buffer size to vsnprintf() in vkd3d_test_push_context().
416       vkd3d-shader/hlsl: Implement storing to a swizzled matrix.