diff --git a/src/backend/opengl/RenderPipelineGL.cpp b/src/backend/opengl/RenderPipelineGL.cpp
index 1492b4f..8992a84 100644
--- a/src/backend/opengl/RenderPipelineGL.cpp
+++ b/src/backend/opengl/RenderPipelineGL.cpp
@@ -21,8 +21,32 @@
 namespace backend {
 namespace opengl {
 
+    namespace {
+        GLenum GLPrimitiveTopology(nxt::PrimitiveTopology primitiveTopology) {
+            switch (primitiveTopology) {
+                case nxt::PrimitiveTopology::Point:
+                    return GL_POINTS;
+                case nxt::PrimitiveTopology::Line:
+                    return GL_LINES;
+                case nxt::PrimitiveTopology::LineStrip:
+                    return GL_LINE_STRIP;
+                case nxt::PrimitiveTopology::Triangle:
+                    return GL_TRIANGLES;
+                case nxt::PrimitiveTopology::TriangleStrip:
+                    return GL_TRIANGLE_STRIP;
+                default:
+                    UNREACHABLE();
+            }
+        }
+    }
+
     RenderPipeline::RenderPipeline(RenderPipelineBuilder* builder)
-        : RenderPipelineBase(builder), PipelineGL(this, builder) {
+        : RenderPipelineBase(builder), PipelineGL(this, builder),
+          glPrimitiveTopology(GLPrimitiveTopology(GetPrimitiveTopology())) {
+    }
+
+    GLenum RenderPipeline::GetGLPrimitiveTopology() const {
+        return glPrimitiveTopology;
     }
 
     void RenderPipeline::ApplyNow(PersistentPipelineState &persistentPipelineState) {
