nir,spirv: Add support for the ShaderCallKHR scope

It's currently entirely trivial.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6479>
This commit is contained in:
Jason Ekstrand
2020-08-05 14:50:36 -05:00
committed by Marge Bot
parent 6b8fd65e84
commit 21b1b91549
4 changed files with 8 additions and 0 deletions

View File

@@ -6620,6 +6620,8 @@ sync_scope translate_nir_scope(nir_scope scope)
return scope_queuefamily;
case NIR_SCOPE_DEVICE:
return scope_device;
case NIR_SCOPE_SHADER_CALL:
unreachable("unsupported scope");
}
unreachable("invalid scope");
}

View File

@@ -1708,6 +1708,7 @@ typedef enum {
NIR_SCOPE_NONE,
NIR_SCOPE_INVOCATION,
NIR_SCOPE_SUBGROUP,
NIR_SCOPE_SHADER_CALL,
NIR_SCOPE_WORKGROUP,
NIR_SCOPE_QUEUE_FAMILY,
NIR_SCOPE_DEVICE,

View File

@@ -975,6 +975,7 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
case NIR_SCOPE_DEVICE: fprintf(fp, "DEVICE"); break;
case NIR_SCOPE_QUEUE_FAMILY: fprintf(fp, "QUEUE_FAMILY"); break;
case NIR_SCOPE_WORKGROUP: fprintf(fp, "WORKGROUP"); break;
case NIR_SCOPE_SHADER_CALL: fprintf(fp, "SHADER_CALL"); break;
case NIR_SCOPE_SUBGROUP: fprintf(fp, "SUBGROUP"); break;
case NIR_SCOPE_INVOCATION: fprintf(fp, "INVOCATION"); break;
}

View File

@@ -2363,6 +2363,10 @@ vtn_scope_to_nir_scope(struct vtn_builder *b, SpvScope scope)
nir_scope = NIR_SCOPE_INVOCATION;
break;
case SpvScopeShaderCallKHR:
nir_scope = NIR_SCOPE_SHADER_CALL;
break;
default:
vtn_fail("Invalid memory scope");
}