summaryrefslogtreecommitdiffstats
path: root/src/gui/rhi/qrhi_p.h
diff options
context:
space:
mode:
authorBen Fletcher <ben.fletcher@me.com>2022-01-27 12:27:27 -0800
committerBen Fletcher <ben.fletcher@me.com>2022-01-31 08:53:37 -0800
commit9ef702a37bab1916b0aa3bf1403fc27e14113ded (patch)
tree4ca6b85882ec389051e1df16ce4a96800b7c0d75 /src/gui/rhi/qrhi_p.h
parent1c3ae79ad36f77a044adb6264396e46575ee8757 (diff)
rhi: Add the basic infrastructure for geometry shader support
.. but this will only be supported on Vulkan, OpenGL 3.2+, and Open GL ES 3.2+ for the time being. The situation is: - Vulkan is working. qsb accepts .geom files already, and QShader has existing geometry shader support. - OpenGL 3.2 and OpenGL ES 3.2 are working. - D3D11 is not working. D3D11 supports geometry shaders, but SPIRV- Cross does not support translating geometry shaders to HLSL. - Metal is not working. Metal does not directly support geometry shaders. Change-Id: Ieb7c44c58b8be5f2e2197bf5133cf6847e6c132d Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/gui/rhi/qrhi_p.h')
-rw-r--r--src/gui/rhi/qrhi_p.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gui/rhi/qrhi_p.h b/src/gui/rhi/qrhi_p.h
index b0cf9e3469..972aed6fd8 100644
--- a/src/gui/rhi/qrhi_p.h
+++ b/src/gui/rhi/qrhi_p.h
@@ -297,6 +297,7 @@ public:
Vertex,
TessellationControl,
TessellationEvaluation,
+ Geometry,
Fragment,
Compute
};
@@ -351,8 +352,9 @@ public:
VertexStage = 1 << 0,
TessellationControlStage = 1 << 1,
TessellationEvaluationStage = 1 << 2,
- FragmentStage = 1 << 3,
- ComputeStage = 1 << 4
+ GeometryStage = 1 << 3,
+ FragmentStage = 1 << 4,
+ ComputeStage = 1 << 5
};
Q_DECLARE_FLAGS(StageFlags, StageFlag)
@@ -1673,7 +1675,8 @@ public:
ThreeDimensionalTextures,
RenderTo3DTextureSlice,
TextureArrays,
- Tessellation
+ Tessellation,
+ GeometryShader
};
enum BeginFrameFlag {