- Jul 11, 2023
-
-
- Jul 10, 2023
-
-
Used by F1 2018.
-
- Jul 06, 2023
-
-
-
-
depth <-> color copies aren't allowed in Vulkan
-
- Jul 05, 2023
-
-
Spotted by Giovanni Mascellani.
-
-
-
-
-
As well as from the "statement_list" and "compound_statement" rules, which trivially pass through from "statement".
-
- Jul 04, 2023
-
-
-
vkd3d-shader/hlsl: Simplify allocate_const_registers_recurse() to stop accounting for constants larger than a vector. That cannot happen with the current code.
-
-
vkd3d-shader/hlsl: Consistently use the destination width in constant folding instructions (Valgrind).
-
We emit one source with multiple components.
-
Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
vkd3d-shader/hlsl: Support evaluated expressions for sample count in multisampled textures declarations. Signed-off-by:
Nikolay Sivov <nsivov@codeweavers.com>
-
-
Store it in the shader_desc, and declare temps from that when compiling SPIR-V, instead of parsing dcl_instructions. As part of this change, we declare a single, global temps array (with Private scope instead of Function) which is as large as the maximum of all dcl_temps instructions. It is not clear to me whether this will improve, hurt, or have no significant effect on the lower-level compiler. An alternative is to still redeclare a new temps array every time (although still with a smaller size).
-
-
-
-
-
-
A struct declaration with variables is now absorbed into the 'declaration' rule, like any other variable declaration. A struct declaration without variables is now reduced to the 'struct_declaration_without_vars' rule. They both are reduced to a 'declaration_statement' in the end.
-
In a declaration with multiple variables, the variables must be created before the initializer of the next variable is parsed. This is required for initializers such as: float a = 1, b = a, c = b + 1; A requisite for this is that the type information is parsed in the same rule as the first variable (as a variable_def_typed) so it is immediately available to declare the first variable. Then, the next untyped variable declaration is parsed, and the type from the first variable can be used to declare the second, before the third is parsed, and so on.
-
Basically, declare_vars() is separated in three functions: 1. check_invalid_in_out_modifiers(), which is to be called once per declaration and emits an error when in or out modifiers are used for these non-parameter variables. 2. declare_var(), which now handles one variable at the time and doesn't free any memory. 3. initialize_vars(), which takes care of preparing the initialization instructions of several variables and frees their struct parse_variable_def, using exclusively free_parse_variable_def(). This allows to declare variables individually before the initializer of the next variable in the same declaration is parsed, which is used in the following patches. Also, simplifies memory management.
-
-