Skip to content

vkd3d-shader/hlsl: Parse 'compile' and CompileShader() syntaxes.

The hlsl_ir_effect_call node is introduced to represent the "compile" syntax and the ShaderCompile() and, in following patches the ConstructGSWithSO() construct (https://gitlab.winehq.org/fcasas/vkd3d/-/commits/stateblock_experiments_4).

It basically is a function call that remembers its arguments using hlsl_srcs and keeps its own instruction block, which is discarded when working on non-effect shaders.

For shader compilations (i.e. of the HLSL_EFFECT_CALL_TYPE_COMPILATION call type) it can be asserted that args_count is 1, and that this argument (and the last node in hlsl_ir_effect_call.instrs) is a regular hlsl_ir_call pointing to the declaration of the function to be compiled.

Merge request reports

Loading