[Mesa-dev] [PATCH v2 03/14] spirv: Handle tessellation execution modes.

Kenneth Graunke kenneth at whitecape.org
Tue Jan 10 19:04:58 UTC 2017


On Tuesday, January 10, 2017 9:06:08 AM PST Jason Ekstrand wrote:
> On Mon, Jan 9, 2017 at 11:37 PM, Kenneth Graunke <kenneth at whitecape.org>
> wrote:
> 
> > v2: Use info->tess.
> >
> > Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> > Reviewed-by: Dave Airlie <airlied at redhat.com> [v1]
> > Reviewed-by: Iago Toral Quiroga <itoral at igalia.com> [v1]
> > Reviewed-by: Jason Ekstrand <jason at jlekstrand.net> [v1]
> > ---
> >  src/compiler/spirv/spirv_to_nir.c | 45 ++++++++++++++++++++++++++++++
> > +++------
> >  1 file changed, 39 insertions(+), 6 deletions(-)
> >
> > diff --git a/src/compiler/spirv/spirv_to_nir.c
> > b/src/compiler/spirv/spirv_to_nir.c
> > index befee1a4b9b..8f662aa35e2 100644
> > --- a/src/compiler/spirv/spirv_to_nir.c
> > +++ b/src/compiler/spirv/spirv_to_nir.c
> > @@ -2753,8 +2753,12 @@ vtn_handle_execution_mode(struct vtn_builder *b,
> > struct vtn_value *entry_point,
> >        break; /* Nothing to do with this */
> >
> >     case SpvExecutionModeOutputVertices:
> > -      assert(b->shader->stage == MESA_SHADER_GEOMETRY);
> > -      b->shader->info->gs.vertices_out = mode->literals[0];
> > +      if (b->shader->stage == MESA_SHADER_TESS_CTRL) {
> >
> 
> Is this only allowed in TCS?  Just double-checking...

In a sensible world, yes, but with SPIR-V?  Nope.  I'll fix it to check
for either stage.  Thanks!

> > +         b->shader->info->tess.tcs_vertices_out = mode->literals[0];
> > +      } else {
> > +         assert(b->shader->stage == MESA_SHADER_GEOMETRY);
> > +         b->shader->info->gs.vertices_out = mode->literals[0];
> > +      }
> >        break;
> >
> >     case SpvExecutionModeInputPoints:
> > @@ -2764,11 +2768,13 @@ vtn_handle_execution_mode(struct vtn_builder *b,
> > struct vtn_value *entry_point,
> >     case SpvExecutionModeInputTrianglesAdjacency:
> >     case SpvExecutionModeQuads:
> >     case SpvExecutionModeIsolines:
> > -      if (b->shader->stage == MESA_SHADER_GEOMETRY) {
> > +      if (b->shader->stage == MESA_SHADER_TESS_EVAL) {
> >
> 
> Same question here only TES.

Will fix this as well.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170110/c9c41c12/attachment.sig>


More information about the mesa-dev mailing list