From a871e01174466812f081f4c474b95c44cf8aee57 Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Fri, 25 Jan 2013 16:27:06 +0100 Subject: [PATCH] r600g/llvm: Add dummy export for vs output Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=59588 Reviewed-by: Tom Stellard --- src/gallium/drivers/r600/r600_llvm.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/r600/r600_llvm.c b/src/gallium/drivers/r600/r600_llvm.c index 276ef5fe39f..9f8a0954f75 100644 --- a/src/gallium/drivers/r600/r600_llvm.c +++ b/src/gallium/drivers/r600/r600_llvm.c @@ -433,9 +433,27 @@ static void llvm_emit_epilogue(struct lp_build_tgsi_context * bld_base) } } } + // Add dummy exports + if (ctx->type == TGSI_PROCESSOR_VERTEX) { + if (!next_param) { + lp_build_intrinsic_unary(base->gallivm->builder, "llvm.R600.store.dummy", + LLVMVoidTypeInContext(base->gallivm->context), + lp_build_const_int32(base->gallivm, V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PARAM)); + } + if (!(next_pos-60)) { + lp_build_intrinsic_unary(base->gallivm->builder, "llvm.R600.store.dummy", + LLVMVoidTypeInContext(base->gallivm->context), + lp_build_const_int32(base->gallivm, V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_POS)); + } + } + if (ctx->type == TGSI_PROCESSOR_FRAGMENT) { + if (!has_color) { + lp_build_intrinsic_unary(base->gallivm->builder, "llvm.R600.store.dummy", + LLVMVoidTypeInContext(base->gallivm->context), + lp_build_const_int32(base->gallivm, V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PIXEL)); + } + } - if (!has_color && ctx->type == TGSI_PROCESSOR_FRAGMENT) - lp_build_intrinsic(base->gallivm->builder, "llvm.R600.store.pixel.dummy", LLVMVoidTypeInContext(base->gallivm->context), 0, 0); } static void llvm_emit_tex( -- 2.30.2