freedreno: emulated unsupported primitive types
[mesa.git] / src / gallium / drivers / freedreno / a3xx / fd3_context.c
index 589aeed45788cfff410df533e33a519292dfdd76..13f91e9de0c55f179fbda320db05f5e6e238323d 100644 (file)
@@ -82,6 +82,16 @@ create_blit_texcoord_vertexbuf(struct pipe_context *pctx)
        return prsc;
 }
 
+static const uint8_t primtypes[PIPE_PRIM_MAX] = {
+               [PIPE_PRIM_POINTS]         = DI_PT_POINTLIST_A3XX,
+               [PIPE_PRIM_LINES]          = DI_PT_LINELIST,
+               [PIPE_PRIM_LINE_STRIP]     = DI_PT_LINESTRIP,
+               [PIPE_PRIM_LINE_LOOP]      = DI_PT_LINELOOP,
+               [PIPE_PRIM_TRIANGLES]      = DI_PT_TRILIST,
+               [PIPE_PRIM_TRIANGLE_STRIP] = DI_PT_TRISTRIP,
+               [PIPE_PRIM_TRIANGLE_FAN]   = DI_PT_TRIFAN,
+};
+
 struct pipe_context *
 fd3_context_create(struct pipe_screen *pscreen, void *priv)
 {
@@ -106,7 +116,7 @@ fd3_context_create(struct pipe_screen *pscreen, void *priv)
        fd3_texture_init(pctx);
        fd3_prog_init(pctx);
 
-       pctx = fd_context_init(&fd3_ctx->base, pscreen, priv);
+       pctx = fd_context_init(&fd3_ctx->base, pscreen, primtypes, priv);
        if (!pctx)
                return NULL;