intel: Use an intel enum for cmat scope
While convenient, it was not necessary to use the mesa_scope in intel_device_info. Having a Intel specific enum here will help later the efforts of serialization of intel_device_info. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27164>
This commit is contained in:
@@ -616,10 +616,10 @@ static const struct intel_device_info intel_device_info_chv = {
|
||||
.has_sample_with_hiz = true, \
|
||||
.has_illegal_ccs_values = true, \
|
||||
.cooperative_matrix_configurations = { \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT32, INTEL_CMAT_FLOAT32 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_SINT8, INTEL_CMAT_SINT8, INTEL_CMAT_SINT32, INTEL_CMAT_SINT32 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_UINT8, INTEL_CMAT_UINT8, INTEL_CMAT_UINT32, INTEL_CMAT_UINT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT32, INTEL_CMAT_FLOAT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_SINT8, INTEL_CMAT_SINT8, INTEL_CMAT_SINT32, INTEL_CMAT_SINT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_UINT8, INTEL_CMAT_UINT8, INTEL_CMAT_UINT32, INTEL_CMAT_UINT32 }, \
|
||||
}
|
||||
|
||||
static const struct intel_device_info intel_device_info_skl_gt1 = {
|
||||
@@ -848,10 +848,10 @@ static const struct intel_device_info intel_device_info_cfl_gt3 = {
|
||||
.num_subslices = _subslices, \
|
||||
.max_eus_per_subslice = 8, \
|
||||
.cooperative_matrix_configurations = { \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT32, INTEL_CMAT_FLOAT32 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_SINT8, INTEL_CMAT_SINT8, INTEL_CMAT_SINT32, INTEL_CMAT_SINT32 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_UINT8, INTEL_CMAT_UINT8, INTEL_CMAT_UINT32, INTEL_CMAT_UINT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT32, INTEL_CMAT_FLOAT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_SINT8, INTEL_CMAT_SINT8, INTEL_CMAT_SINT32, INTEL_CMAT_SINT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_UINT8, INTEL_CMAT_UINT8, INTEL_CMAT_UINT32, INTEL_CMAT_UINT32 }, \
|
||||
}
|
||||
|
||||
#define GFX11_URB_MIN_MAX_ENTRIES \
|
||||
@@ -981,10 +981,10 @@ static const struct intel_device_info intel_device_info_ehl_2x4 = {
|
||||
.writecombining = PAT_ENTRY(1, WC, NONE), \
|
||||
}, \
|
||||
.cooperative_matrix_configurations = { \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT32, INTEL_CMAT_FLOAT32 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_SINT8, INTEL_CMAT_SINT8, INTEL_CMAT_SINT32, INTEL_CMAT_SINT32 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_UINT8, INTEL_CMAT_UINT8, INTEL_CMAT_UINT32, INTEL_CMAT_UINT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT32, INTEL_CMAT_FLOAT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_SINT8, INTEL_CMAT_SINT8, INTEL_CMAT_SINT32, INTEL_CMAT_SINT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_UINT8, INTEL_CMAT_UINT8, INTEL_CMAT_UINT32, INTEL_CMAT_UINT32 }, \
|
||||
}
|
||||
|
||||
#define dual_subslices(args...) { args, }
|
||||
@@ -1119,10 +1119,10 @@ static const struct intel_device_info intel_device_info_sg1 = {
|
||||
.has_aux_map = false, \
|
||||
.simulator_id = 29, \
|
||||
.cooperative_matrix_configurations = { \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT32, INTEL_CMAT_FLOAT32 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_SINT8, INTEL_CMAT_SINT8, INTEL_CMAT_SINT32, INTEL_CMAT_SINT32 }, \
|
||||
{ SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_UINT8, INTEL_CMAT_UINT8, INTEL_CMAT_UINT32, INTEL_CMAT_UINT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT16, INTEL_CMAT_FLOAT32, INTEL_CMAT_FLOAT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_SINT8, INTEL_CMAT_SINT8, INTEL_CMAT_SINT32, INTEL_CMAT_SINT32 }, \
|
||||
{ INTEL_CMAT_SCOPE_SUBGROUP, 8, 8, 32, INTEL_CMAT_UINT8, INTEL_CMAT_UINT8, INTEL_CMAT_UINT32, INTEL_CMAT_UINT32 }, \
|
||||
}
|
||||
|
||||
#define DG2_FEATURES \
|
||||
|
@@ -135,6 +135,12 @@ struct intel_device_info_pat_entry {
|
||||
.coherency = INTEL_DEVICE_INFO_COHERENCY_MODE_##coh_ \
|
||||
}
|
||||
|
||||
enum intel_cmat_scope
|
||||
{
|
||||
INTEL_CMAT_SCOPE_NONE = 0,
|
||||
INTEL_CMAT_SCOPE_SUBGROUP,
|
||||
};
|
||||
|
||||
enum intel_cooperative_matrix_component_type
|
||||
{
|
||||
INTEL_CMAT_FLOAT16,
|
||||
@@ -147,7 +153,7 @@ enum intel_cooperative_matrix_component_type
|
||||
|
||||
struct intel_cooperative_matrix_configuration
|
||||
{
|
||||
mesa_scope scope;
|
||||
enum intel_cmat_scope scope;
|
||||
|
||||
/* Matrix A is MxK.
|
||||
* Matrix B is KxN.
|
||||
|
@@ -2225,7 +2225,7 @@ anv_physical_device_try_create(struct vk_instance *vk_instance,
|
||||
device->has_exec_timeline = false;
|
||||
|
||||
device->has_cooperative_matrix =
|
||||
device->info.cooperative_matrix_configurations[0].scope != SCOPE_NONE;
|
||||
device->info.cooperative_matrix_configurations[0].scope != INTEL_CMAT_SCOPE_NONE;
|
||||
|
||||
unsigned st_idx = 0;
|
||||
|
||||
@@ -5138,13 +5138,10 @@ convert_component_type(enum intel_cooperative_matrix_component_type t)
|
||||
}
|
||||
|
||||
static VkScopeKHR
|
||||
convert_scope(mesa_scope scope)
|
||||
convert_scope(enum intel_cmat_scope scope)
|
||||
{
|
||||
switch (scope) {
|
||||
case SCOPE_DEVICE: return VK_SCOPE_DEVICE_KHR;
|
||||
case SCOPE_WORKGROUP: return VK_SCOPE_WORKGROUP_KHR;
|
||||
case SCOPE_SUBGROUP: return VK_SCOPE_SUBGROUP_KHR;
|
||||
case SCOPE_QUEUE_FAMILY: return VK_SCOPE_QUEUE_FAMILY_KHR;
|
||||
case INTEL_CMAT_SCOPE_SUBGROUP: return VK_SCOPE_SUBGROUP_KHR;
|
||||
default:
|
||||
unreachable("invalid cooperative matrix scope in configuration");
|
||||
}
|
||||
@@ -5166,7 +5163,7 @@ VkResult anv_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
|
||||
const struct intel_cooperative_matrix_configuration *cfg =
|
||||
&devinfo->cooperative_matrix_configurations[i];
|
||||
|
||||
if (cfg->scope == SCOPE_NONE)
|
||||
if (cfg->scope == INTEL_CMAT_SCOPE_NONE)
|
||||
break;
|
||||
|
||||
vk_outarray_append_typed(VkCooperativeMatrixPropertiesKHR, &out, prop) {
|
||||
|
Reference in New Issue
Block a user