A chained structure which describes how output varyings in this shader stage should be mapped to input varyings in the next stage. More...
#include <vkd3d_shader.h>
Data Fields | |
enum vkd3d_shader_structure_type | type |
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_VARYING_MAP_INFO. | |
const void * | next |
Optional pointer to a structure containing further parameters. | |
const struct vkd3d_shader_varying_map * | varying_map |
A mapping of output varyings in this shader stage to input varyings in the next shader stage. | |
unsigned int | varying_count |
The number of registers provided in varying_map. | |
A chained structure which describes how output varyings in this shader stage should be mapped to input varyings in the next stage.
This structure is optional. It should not be provided if there is no shader stage. However, depending on the input and output formats, this structure may be necessary in order to generate shaders which correctly match each other.
If this structure is absent, vkd3d-shader will map varyings from one stage to another based on their register index. For Direct3D shader model 3.0, such a default mapping will be incorrect unless the registers are allocated in the same order, and hence this field is necessary to correctly match inter-stage varyings. This mapping may also be necessary under other circumstances where the varying interface does not match exactly.
This structure is passed to vkd3d_shader_compile() and extends vkd3d_shader_compile_info.
This structure contains only input parameters.
const struct vkd3d_shader_varying_map* vkd3d_shader_varying_map_info::varying_map |
A mapping of output varyings in this shader stage to input varyings in the next shader stage.
This mapping should include exactly one element for each varying consumed by the next shader stage. If this shader stage outputs a varying that is not consumed by the next shader stage, that varying should be absent from this array.
This mapping may be constructed by vkd3d_shader_build_varying_map().