mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
gallivm: add new compute related intrinsics
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
parent
3312bed7b0
commit
db6c78f9c8
2 changed files with 19 additions and 0 deletions
|
|
@ -170,6 +170,9 @@ struct lp_bld_tgsi_system_values {
|
|||
LLVMValueRef prim_id;
|
||||
LLVMValueRef basevertex;
|
||||
LLVMValueRef invocation_id;
|
||||
LLVMValueRef thread_id;
|
||||
LLVMValueRef block_id;
|
||||
LLVMValueRef grid_size;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1690,6 +1690,7 @@ emit_fetch_system_value(
|
|||
LLVMBuilderRef builder = gallivm->builder;
|
||||
LLVMValueRef res;
|
||||
enum tgsi_opcode_type atype; // Actual type of the value
|
||||
unsigned swizzle = swizzle_in & 0xffff;
|
||||
|
||||
assert(!reg->Register.Indirect);
|
||||
|
||||
|
|
@ -1729,6 +1730,21 @@ emit_fetch_system_value(
|
|||
atype = TGSI_TYPE_UNSIGNED;
|
||||
break;
|
||||
|
||||
case TGSI_SEMANTIC_THREAD_ID:
|
||||
res = LLVMBuildExtractValue(gallivm->builder, bld->system_values.thread_id, swizzle, "");
|
||||
atype = TGSI_TYPE_UNSIGNED;
|
||||
break;
|
||||
|
||||
case TGSI_SEMANTIC_BLOCK_ID:
|
||||
res = lp_build_extract_broadcast(gallivm, lp_type_int_vec(32, 96), bld_base->uint_bld.type, bld->system_values.block_id, lp_build_const_int32(gallivm, swizzle));
|
||||
atype = TGSI_TYPE_UNSIGNED;
|
||||
break;
|
||||
|
||||
case TGSI_SEMANTIC_GRID_SIZE:
|
||||
res = lp_build_extract_broadcast(gallivm, lp_type_int_vec(32, 96), bld_base->uint_bld.type, bld->system_values.grid_size, lp_build_const_int32(gallivm, swizzle));
|
||||
atype = TGSI_TYPE_UNSIGNED;
|
||||
break;
|
||||
|
||||
default:
|
||||
assert(!"unexpected semantic in emit_fetch_system_value");
|
||||
res = bld_base->base.zero;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue