diff options
author | Ben Fletcher <ben.fletcher@me.com> | 2022-01-27 12:27:27 -0800 |
---|---|---|
committer | Ben Fletcher <ben.fletcher@me.com> | 2022-01-31 08:53:37 -0800 |
commit | 9ef702a37bab1916b0aa3bf1403fc27e14113ded (patch) | |
tree | 4ca6b85882ec389051e1df16ce4a96800b7c0d75 /src/gui/rhi/qrhi_p.h | |
parent | 1c3ae79ad36f77a044adb6264396e46575ee8757 (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.h | 9 |
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 { |