mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-26 07:50:20 +01:00
vtn: Handle SPV_KHR_uniform_group_instructions
Reviewed-by: Karol Herbst <kherbst@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34941>
This commit is contained in:
parent
52db0e1480
commit
fd7589d775
2 changed files with 25 additions and 0 deletions
|
|
@ -103,6 +103,7 @@ static const struct spirv_capabilities implemented_capabilities = {
|
|||
.GroupNonUniformShuffleRelative = true,
|
||||
.GroupNonUniformVote = true,
|
||||
.Groups = true,
|
||||
.GroupUniformArithmeticKHR = true,
|
||||
.Image1D = true,
|
||||
.ImageBasic = true,
|
||||
.ImageBuffer = true,
|
||||
|
|
@ -6629,6 +6630,14 @@ vtn_handle_body_instruction(struct vtn_builder *b, SpvOp opcode,
|
|||
case SpvOpGroupFMax:
|
||||
case SpvOpGroupUMax:
|
||||
case SpvOpGroupSMax:
|
||||
case SpvOpGroupIMulKHR:
|
||||
case SpvOpGroupFMulKHR:
|
||||
case SpvOpGroupBitwiseAndKHR:
|
||||
case SpvOpGroupBitwiseOrKHR:
|
||||
case SpvOpGroupBitwiseXorKHR:
|
||||
case SpvOpGroupLogicalAndKHR:
|
||||
case SpvOpGroupLogicalOrKHR:
|
||||
case SpvOpGroupLogicalXorKHR:
|
||||
case SpvOpSubgroupBallotKHR:
|
||||
case SpvOpSubgroupFirstInvocationKHR:
|
||||
case SpvOpSubgroupReadInvocationKHR:
|
||||
|
|
|
|||
|
|
@ -414,6 +414,14 @@ vtn_handle_subgroup(struct vtn_builder *b, SpvOp opcode,
|
|||
case SpvOpGroupFMax:
|
||||
case SpvOpGroupUMax:
|
||||
case SpvOpGroupSMax:
|
||||
case SpvOpGroupIMulKHR:
|
||||
case SpvOpGroupFMulKHR:
|
||||
case SpvOpGroupBitwiseAndKHR:
|
||||
case SpvOpGroupBitwiseOrKHR:
|
||||
case SpvOpGroupBitwiseXorKHR:
|
||||
case SpvOpGroupLogicalAndKHR:
|
||||
case SpvOpGroupLogicalOrKHR:
|
||||
case SpvOpGroupLogicalXorKHR:
|
||||
case SpvOpGroupIAddNonUniformAMD:
|
||||
case SpvOpGroupFAddNonUniformAMD:
|
||||
case SpvOpGroupFMinNonUniformAMD:
|
||||
|
|
@ -434,9 +442,11 @@ vtn_handle_subgroup(struct vtn_builder *b, SpvOp opcode,
|
|||
case SpvOpGroupFAddNonUniformAMD:
|
||||
reduction_op = nir_op_fadd;
|
||||
break;
|
||||
case SpvOpGroupIMulKHR:
|
||||
case SpvOpGroupNonUniformIMul:
|
||||
reduction_op = nir_op_imul;
|
||||
break;
|
||||
case SpvOpGroupFMulKHR:
|
||||
case SpvOpGroupNonUniformFMul:
|
||||
reduction_op = nir_op_fmul;
|
||||
break;
|
||||
|
|
@ -470,14 +480,20 @@ vtn_handle_subgroup(struct vtn_builder *b, SpvOp opcode,
|
|||
case SpvOpGroupFMaxNonUniformAMD:
|
||||
reduction_op = nir_op_fmax;
|
||||
break;
|
||||
case SpvOpGroupBitwiseAndKHR:
|
||||
case SpvOpGroupLogicalAndKHR:
|
||||
case SpvOpGroupNonUniformBitwiseAnd:
|
||||
case SpvOpGroupNonUniformLogicalAnd:
|
||||
reduction_op = nir_op_iand;
|
||||
break;
|
||||
case SpvOpGroupBitwiseOrKHR:
|
||||
case SpvOpGroupLogicalOrKHR:
|
||||
case SpvOpGroupNonUniformBitwiseOr:
|
||||
case SpvOpGroupNonUniformLogicalOr:
|
||||
reduction_op = nir_op_ior;
|
||||
break;
|
||||
case SpvOpGroupBitwiseXorKHR:
|
||||
case SpvOpGroupLogicalXorKHR:
|
||||
case SpvOpGroupNonUniformBitwiseXor:
|
||||
case SpvOpGroupNonUniformLogicalXor:
|
||||
reduction_op = nir_op_ixor;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue