static void
draw_gs_llvm_epilogue(const struct lp_build_gs_iface *gs_base,
LLVMValueRef total_emitted_vertices_vec,
- LLVMValueRef emitted_prims_vec)
+ LLVMValueRef emitted_prims_vec, unsigned stream)
{
const struct draw_gs_llvm_iface *gs_iface = draw_gs_llvm_iface(gs_base);
struct draw_gs_llvm_variant *variant = gs_iface->variant;
LLVMValueRef emitted_prims_ptr =
draw_gs_jit_emitted_prims(gallivm, variant->context_ptr);
LLVMValueRef zero = lp_build_const_int32(gallivm, 0);
-
+
+ if (stream > 0)
+ return;
+
emitted_verts_ptr = LLVMBuildGEP(builder, emitted_verts_ptr, &zero, 0, "");
emitted_prims_ptr = LLVMBuildGEP(builder, emitted_prims_ptr, &zero, 0, "");
LLVMValueRef mask_vec);
void (*gs_epilogue)(const struct lp_build_gs_iface *gs_iface,
LLVMValueRef total_emitted_vertices_vec,
- LLVMValueRef emitted_prims_vec);
+ LLVMValueRef emitted_prims_vec, unsigned stream);
};
struct lp_build_tcs_iface
void
swr_gs_llvm_epilogue(const struct lp_build_gs_iface *gs_base,
LLVMValueRef total_emitted_vertices_vec,
- LLVMValueRef emitted_prims_vec);
+ LLVMValueRef emitted_prims_vec, unsigned stream);
// TCS-specific emit functions
void swr_tcs_llvm_emit_prologue(struct lp_build_tgsi_soa_context* bld);
static void
swr_gs_llvm_epilogue(const struct lp_build_gs_iface *gs_base,
LLVMValueRef total_emitted_vertices_vec,
- LLVMValueRef emitted_prims_vec)
+ LLVMValueRef emitted_prims_vec, unsigned stream)
{
swr_gs_llvm_iface *iface = (swr_gs_llvm_iface*)gs_base;
iface->pBuilder->swr_gs_llvm_epilogue(gs_base,
total_emitted_vertices_vec,
- emitted_prims_vec);
+ emitted_prims_vec, stream);
}
static LLVMValueRef
void
BuilderSWR::swr_gs_llvm_epilogue(const struct lp_build_gs_iface *gs_base,
LLVMValueRef total_emitted_vertices_vec,
- LLVMValueRef emitted_prims_vec)
+ LLVMValueRef emitted_prims_vec, unsigned stream)
{
swr_gs_llvm_iface *iface = (swr_gs_llvm_iface*)gs_base;