Qt.shadertools
Provides Qt Shader Tools support. More...
Properties
- addResourceData : bool
- batchable : bool
- debugInformation : bool
- defines : stringList
- enableLinking : bool
- generatedShadersDir : string
- glslVersions : stringList
- hlslVersions : stringList
- mslVersions : stringList
- optimized : bool
- qsbName : string
- tessellation : bool
- tessellationMode : string
- tessellationVertexCount : int
- useCompiler : bool
- useQt6Versions : bool
- viewCount : int
- zOrderLocation : int
Detailed Description
The Qt.shadertools module provides functionality for compiling and processing shaders in Qbs projects. It supports various shader languages including GLSL, HLSL, and MSL.
Relevant File Tags
Tag | Auto-tagged File Names | Since | Description |
---|---|---|---|
qt.shader | *.vert, *.tesc, *.tese, *.frag, *.comp | 3.0 | Source files with these extensions are considered shaders and are processed by the qsb tool. |
qt.shader.vertex | *.vert | 3.0 | Source files with this extension are considered vertex shaders. |
qt.shader.fragment | *.frag | 3.0 | Source files with this extension are considered fragment shaders. |
qt.shader.compute | *.comp | 3.0 | Source files with this extension are considered compute shaders. |
qt.shader.tessellation | *.tesc | 3.0 | Source files with this extension are considered tessellation shaders. These shaders are automatically processed by using tessellation properties. |
qt.compiled_shader | n/a | 3.0 | This tag is attached to the output artifacts of the rule that runs the qsb tool. |
Example
QtApplication { name: "shader-app" type: "application" Depends { name: "Qt.shadertools" } files: ["shader.frag", "shader.vert"] Qt.shadertools.glslVersions: ["300 es", "330"] Qt.shadertools.hlslVersions: ["50"] Qt.shadertools.mslVersions: ["12"] }
For more details on the qsb
tool, see its documentation
Property Documentation
addResourceData : bool |
Whether to automatically add the compiled shaders to the Qt resource data.
Default: true
batchable : bool |
Whether vertex shaders should be made batchable for use with Qt Quick.
Default: false
debugInformation : bool |
Whether to generate full debug information for SPIR-V.
Default: false
defines : stringList |
List of preprocessor defines to be active during shader compilation.
Defines should be added as "<name>=<value>"
pairs.
Default: []
enableLinking : bool |
Set this property to true
to enable linking to the QtShaderTools library.
For example:
QtApplication { name: "shader-app" Depends { name: "Qt.shadertools" } Qt.shadertools.enableLinking: true }
The Qt.shadertools module can be used in two ways:
- Using the
qsb
tool to compile shaders. - Linking directly to the QtShaderTools library and using the QShaderBaker class.
This property and useCompiler property controls which mode is used. You can also enable both modes by setting both properties to true
.
Default: false
generatedShadersDir : string |
The directory where compiled shaders will be placed.
Default: "shaders"
glslVersions : stringList |
List of GLSL versions to generate. Each version should be specified as a string, for example "100 es"
for GLSL ES 1.00.
If this property is set to []
, GLSL generation is disabled.
Default: []
hlslVersions : stringList |
List of HLSL (shader model) versions to generate. The versions follow GLSL-style version numbers, where 50 corresponds to Shader Model 5.0.
If this property is set to []
, HLSL generation is disabled.
Default: []
mslVersions : stringList |
List of Metal Shading Language versions to generate. 12 corresponds to version 1.2.
If this property is set to []
, MSL generation is disabled.
Default: []
optimized : bool |
Whether to perform SPIR-V optimizations using spirv-opt.
Default: false
qsbName : string |
The name of the Qt Shader Tools compiler executable.
Default: "qsb"
tessellation : bool |
Whether the shaders are used in a pipeline that uses tessellation.
By default, Qbs adds flags contolled by tessellationMode and tessellationVertexCount properties for all files with the "qt.shader.tessellation"
file tag. Set this property to false
to disable tessellation options for such files.
Default: true
tessellationMode : string |
The tessellation mode. Can be either "triangles"
or "quads"
.
This property must be specified when a tessellation control shader is used.
Default: "triangles"
tessellationVertexCount : int |
The output vertex count from the tessellation control stage.
Default: 3
useCompiler : bool |
Whether to use the Qt Shader Tools compiler.
Set this property to false
to disable the qsb tool. This is set to false
by default if enableLinking is true
.
Default: true
useQt6Versions : bool |
Use default version used by Qt6.
This is equivalent to passing --qt6
switch to the qsb
tool.
Default: false
viewCount : int |
The number of views a vertex shader is used with. Relevant for multiview functionality (GL_OVR_multiview2, VK_KHR_multiview, D3D12 view instancing).
Default: undefined
zOrderLocation : int |
When batchable is true, this specifies the location for the additional vertex input that is injected with location 7 by default.
Use this property to change the location of the injected vertex input to another value.
This becomes relevant if the vertex shader has many inputs and 7 is in use and would clash.
Default: undefined