swr: support layer output in geometry shaders
authorIlia Mirkin <imirkin@alum.mit.edu>
Sun, 5 Mar 2017 23:24:44 +0000 (18:24 -0500)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 16 Mar 2017 01:03:11 +0000 (21:03 -0400)
This makes bin/gl-3.2-layered-rendering-gl-layer-render fail only with
2DMS_ARRAY, which is expected given the lackluster MSAA support. However
all the regular types pass.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
src/gallium/drivers/swr/swr_shader.cpp

index a449c58ed95ea9a6c0befeaf9e2443cbb61b8ea9..a61ed9c35196f747b735637a7d19bd642d33a174 100644 (file)
@@ -391,6 +391,8 @@ BuilderSWR::swr_gs_llvm_emit_vertex(const struct lp_build_tgsi_gs_iface *gs_base
           attribSlot = VERTEX_POINT_SIZE_SLOT;
        else if (iface->info->output_semantic_name[attrib] == TGSI_SEMANTIC_PRIMID)
           attribSlot = VERTEX_PRIMID_SLOT;
+       else if (iface->info->output_semantic_name[attrib] == TGSI_SEMANTIC_LAYER)
+          attribSlot = VERTEX_RTAI_SLOT;
 
        Value *vOffsetsAttrib =
           ADD(vOffsets, MUL(vVertexSlot, VIMMED1((uint32_t)sizeof(simdvertex))));