---
src/gallium/drivers/r600/r600_llvm.c | 38 ++++++++++++++++++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_llvm.c
b/src/gallium/drivers/r600/r600_llvm.c
index 32b8e56..d28182b 100644
--- a/src/gallium/drivers/r600/r600_llvm.c
+++ b/src/gallium/drivers/r600/r600_llvm.c
@@ -329,6 +329,30 @@ static void llvm_emit_epilogue(struct
lp_build_tgsi_context * bld_base)
break;
}
}
+ if (!next_param) {
+ //Dummy export
+ LLVMValueRef args[3];
+ args[0] =
LLVMGetUndef(LLVMVectorType(bld_base->base.elem_type, 4));
+ args[1] = lp_build_const_int32(base->gallivm,
0);
+ args[2] = lp_build_const_int32(base->gallivm,
V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PARAM);
+ build_intrinsic(
+ base->gallivm->builder,
+ "llvm.R600.store.swizzle",
+
LLVMVoidTypeInContext(base->gallivm->context),
+ args, 3, 0);
+ }
+ if (!next_pos) {
+ //Dummy export
+ LLVMValueRef args[3];
+ args[0] =
LLVMGetUndef(LLVMVectorType(bld_base->base.elem_type, 4));
+ args[1] = lp_build_const_int32(base->gallivm,
0);
+ args[2] = lp_build_const_int32(base->gallivm,
V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_POS);
+ build_intrinsic(
+ base->gallivm->builder,
+ "llvm.R600.store.swizzle",
+
LLVMVoidTypeInContext(base->gallivm->context),
+ args, 3, 0);
+ }
} else if (ctx->type == TGSI_PROCESSOR_FRAGMENT) {
switch (ctx->r600_outputs[i].name) {
case TGSI_SEMANTIC_COLOR:
@@ -373,10 +397,20 @@ static void llvm_emit_epilogue(struct
lp_build_tgsi_context * bld_base)
break;
}
}
+ if (!has_color) {
+ //Dummy export
+ LLVMValueRef args[3];
+ args[0] =
LLVMGetUndef(LLVMVectorType(bld_base->base.elem_type, 4));
+ args[1] = lp_build_const_int32(base->gallivm, 0);
+ args[2] = lp_build_const_int32(base->gallivm,
V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PIXEL);
+ build_intrinsic(
+ base->gallivm->builder,
+ "llvm.R600.store.swizzle",
+ LLVMVoidTypeInContext(base->gallivm->context),
+ args, 3, 0);
+ }
}
- 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(
--
1.8.1
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev