On Mit, 2014-02-05 at 22:58 +0100, Grigori Goronzy wrote: > > diff --git a/src/gallium/drivers/radeonsi/si_pipe.c > b/src/gallium/drivers/radeonsi/si_pipe.c > index 14dfd30..2f4098c 100644 > --- a/src/gallium/drivers/radeonsi/si_pipe.c > +++ b/src/gallium/drivers/radeonsi/si_pipe.c > @@ -299,6 +299,12 @@ static int si_get_param(struct pipe_screen* pscreen, > enum pipe_cap param) > case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS: > return sscreen->b.has_streamout ? 32*4 : 0; > > + /* Geometry shader output. */ > + case PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES: > + return 1024; > + case PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: > + return 16384;
radeonsi currently can't handle more than 4095 total output components, as the buffer resource for writing to the GSVS ring only has 14 bits for the stride in bytes. This limit could be lifted in the future by falling back to the pre-SI (supposedly slower) organization of the GSVS buffer for larger numbers of total output components. Also, might it make more sense for these to be shader caps than screen caps? -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev