From 9ef702a37bab1916b0aa3bf1403fc27e14113ded Mon Sep 17 00:00:00 2001 From: Ben Fletcher Date: Thu, 27 Jan 2022 12:27:27 -0800 Subject: 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 --- src/gui/rhi/qrhi_p.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/gui/rhi/qrhi_p.h') 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 { -- cgit v1.2.3