NativeShaderInfo Struct

struct QShader::NativeShaderInfo

Additional metadata about the native shader code. More...

Public Variables

QMap<int, int> extraBufferBindings
int flags

Detailed Description

Describes information about the native shader code, if applicable. This becomes relevant with certain shader languages for certain shader stages, in case the translation from SPIR-V involves the introduction of additional, "magic" inputs, outputs, or resources in the generated shader. Such additions may be dependent on the original source code (i.e. the usage of various GLSL language constructs or built-ins), and therefore it needs to be indicated in a dynamic manner if certain features got added to the generated shader code.

As an example, consider a tessellation control shader with a per-patch (not per-vertex) output variable. This is translated to a Metal compute shader outputting (among others) into an spvPatchOut buffer. But this buffer would not be present at all if per-patch output variables were not used. The fact that the shader code relies on such a buffer present can be indicated by the data in this struct.

Note: This is a RHI API with limited compatibility guarantees, see QShader for details.

Member Variable Documentation

QMap<int, int> NativeShaderInfo::extraBufferBindings

int NativeShaderInfo::flags

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.