From c6cf602121bec6e2c7447eb4a6302e06e9d902c9 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 27 May 2015 17:41:32 +1000 Subject: [PATCH] softpipe: add support for vertex streams (v2) This enables the ARB_gpu_shader5 vertex streams on softpipe. v2: only enable when not using llvm. Reviewed-by: Roland Scheidegger Signed-off-by: Dave Airlie --- docs/features.txt | 2 +- src/gallium/drivers/softpipe/sp_screen.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index 201e600..fa7a756 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -123,7 +123,7 @@ GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl - Packing/bitfield/conversion functions DONE (freedreno, softpipe) - Enhanced textureGather DONE (freedreno, softpipe) - Geometry shader instancing DONE (llvmpipe, softpipe) - - Geometry shader multiple streams DONE () + - Geometry shader multiple streams DONE (softpipe) - Enhanced per-sample shading DONE () - Interpolation functions DONE () - New overload resolution rules DONE diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index 37ee9b8..e8f6733 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -65,6 +65,7 @@ softpipe_get_name(struct pipe_screen *screen) static int softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param) { + struct softpipe_screen *sp_screen = softpipe_screen(screen); switch (param) { case PIPE_CAP_NPOT_TEXTURES: case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: @@ -122,7 +123,10 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param) case PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: return 1024; case PIPE_CAP_MAX_VERTEX_STREAMS: - return 1; + if (sp_screen->use_llvm) + return 1; + else + return PIPE_MAX_VERTEX_STREAMS; case PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE: return 2048; case PIPE_CAP_PRIMITIVE_RESTART: -- 2.7.4