mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 18:10:11 +01:00
venus: support VK_KHR_cooperative_matrix
Tested with dEQP-VK.compute.pipeline.cooperative_matrix.* on anv with INTEL_LOWER_DPAS=true Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38722>
This commit is contained in:
parent
463ab89afb
commit
219bb0e01e
2 changed files with 21 additions and 1 deletions
|
|
@ -540,7 +540,7 @@ Khronos extensions that are not part of any Vulkan version:
|
||||||
VK_KHR_android_surface not started
|
VK_KHR_android_surface not started
|
||||||
VK_KHR_calibrated_timestamps DONE (anv, hk, nvk, panvk/v10+, radv, tu/a750+, vn)
|
VK_KHR_calibrated_timestamps DONE (anv, hk, nvk, panvk/v10+, radv, tu/a750+, vn)
|
||||||
VK_KHR_compute_shader_derivatives DONE (anv, lvp, nvk, radv, tu/a7xx+, vn)
|
VK_KHR_compute_shader_derivatives DONE (anv, lvp, nvk, radv, tu/a7xx+, vn)
|
||||||
VK_KHR_cooperative_matrix DONE (anv, nvk/Turing+, radv/gfx11+)
|
VK_KHR_cooperative_matrix DONE (anv, nvk/Turing+, radv/gfx11+, vn)
|
||||||
VK_KHR_depth_clamp_zero_one DONE (anv, nvk, panvk, radv, vn)
|
VK_KHR_depth_clamp_zero_one DONE (anv, nvk, panvk, radv, vn)
|
||||||
VK_KHR_deferred_host_operations DONE (anv, hasvk, lvp, radv, tu, vn)
|
VK_KHR_deferred_host_operations DONE (anv, hasvk, lvp, radv, tu, vn)
|
||||||
VK_KHR_display DONE (anv, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
VK_KHR_display DONE (anv, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||||
|
|
|
||||||
|
|
@ -176,6 +176,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
|
||||||
VkPhysicalDeviceAccelerationStructureFeaturesKHR acceleration_structure;
|
VkPhysicalDeviceAccelerationStructureFeaturesKHR acceleration_structure;
|
||||||
VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
|
VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
|
||||||
compute_shader_derivatives;
|
compute_shader_derivatives;
|
||||||
|
VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperative_matrix;
|
||||||
VkPhysicalDeviceDepthClampZeroOneFeaturesKHR depth_clamp_zero_one;
|
VkPhysicalDeviceDepthClampZeroOneFeaturesKHR depth_clamp_zero_one;
|
||||||
VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
|
VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
|
||||||
fragment_shader_barycentric;
|
fragment_shader_barycentric;
|
||||||
|
|
@ -343,6 +344,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
|
||||||
/* KHR */
|
/* KHR */
|
||||||
VN_ADD_PNEXT_EXT(feats2, ACCELERATION_STRUCTURE_FEATURES_KHR, local_feats.acceleration_structure, exts->KHR_acceleration_structure);
|
VN_ADD_PNEXT_EXT(feats2, ACCELERATION_STRUCTURE_FEATURES_KHR, local_feats.acceleration_structure, exts->KHR_acceleration_structure);
|
||||||
VN_ADD_PNEXT_EXT(feats2, COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR, local_feats.compute_shader_derivatives, exts->KHR_compute_shader_derivatives || exts->NV_compute_shader_derivatives);
|
VN_ADD_PNEXT_EXT(feats2, COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR, local_feats.compute_shader_derivatives, exts->KHR_compute_shader_derivatives || exts->NV_compute_shader_derivatives);
|
||||||
|
VN_ADD_PNEXT_EXT(feats2, COOPERATIVE_MATRIX_FEATURES_KHR, local_feats.cooperative_matrix, exts->KHR_cooperative_matrix);
|
||||||
VN_ADD_PNEXT_EXT(feats2, DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR, local_feats.depth_clamp_zero_one, exts->KHR_depth_clamp_zero_one || exts->EXT_depth_clamp_zero_one);
|
VN_ADD_PNEXT_EXT(feats2, DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR, local_feats.depth_clamp_zero_one, exts->KHR_depth_clamp_zero_one || exts->EXT_depth_clamp_zero_one);
|
||||||
VN_ADD_PNEXT_EXT(feats2, FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, local_feats.fragment_shader_barycentric, exts->KHR_fragment_shader_barycentric);
|
VN_ADD_PNEXT_EXT(feats2, FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, local_feats.fragment_shader_barycentric, exts->KHR_fragment_shader_barycentric);
|
||||||
VN_ADD_PNEXT_EXT(feats2, FRAGMENT_SHADING_RATE_FEATURES_KHR, local_feats.fragment_shading_rate, exts->KHR_fragment_shading_rate);
|
VN_ADD_PNEXT_EXT(feats2, FRAGMENT_SHADING_RATE_FEATURES_KHR, local_feats.fragment_shading_rate, exts->KHR_fragment_shading_rate);
|
||||||
|
|
@ -608,6 +610,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
||||||
acceleration_structure;
|
acceleration_structure;
|
||||||
VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
|
VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
|
||||||
compute_shader_derivatives;
|
compute_shader_derivatives;
|
||||||
|
VkPhysicalDeviceCooperativeMatrixPropertiesKHR cooperative_matrix;
|
||||||
VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
|
VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
|
||||||
fragment_shader_barycentric;
|
fragment_shader_barycentric;
|
||||||
VkPhysicalDeviceFragmentShadingRatePropertiesKHR fragment_shading_rate;
|
VkPhysicalDeviceFragmentShadingRatePropertiesKHR fragment_shading_rate;
|
||||||
|
|
@ -703,6 +706,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
||||||
/* KHR */
|
/* KHR */
|
||||||
VN_ADD_PNEXT_EXT(props2, ACCELERATION_STRUCTURE_PROPERTIES_KHR, local_props.acceleration_structure, exts->KHR_acceleration_structure);
|
VN_ADD_PNEXT_EXT(props2, ACCELERATION_STRUCTURE_PROPERTIES_KHR, local_props.acceleration_structure, exts->KHR_acceleration_structure);
|
||||||
VN_ADD_PNEXT_EXT(props2, COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR, local_props.compute_shader_derivatives, exts->KHR_compute_shader_derivatives);
|
VN_ADD_PNEXT_EXT(props2, COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR, local_props.compute_shader_derivatives, exts->KHR_compute_shader_derivatives);
|
||||||
|
VN_ADD_PNEXT_EXT(props2, COOPERATIVE_MATRIX_PROPERTIES_KHR, local_props.cooperative_matrix, exts->KHR_cooperative_matrix);
|
||||||
VN_ADD_PNEXT_EXT(props2, FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, local_props.fragment_shader_barycentric, exts->KHR_fragment_shader_barycentric);
|
VN_ADD_PNEXT_EXT(props2, FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, local_props.fragment_shader_barycentric, exts->KHR_fragment_shader_barycentric);
|
||||||
VN_ADD_PNEXT_EXT(props2, FRAGMENT_SHADING_RATE_PROPERTIES_KHR, local_props.fragment_shading_rate, exts->KHR_fragment_shading_rate);
|
VN_ADD_PNEXT_EXT(props2, FRAGMENT_SHADING_RATE_PROPERTIES_KHR, local_props.fragment_shading_rate, exts->KHR_fragment_shading_rate);
|
||||||
VN_ADD_PNEXT_EXT(props2, MAINTENANCE_7_PROPERTIES_KHR, local_props.maintenance_7, exts->KHR_maintenance7);
|
VN_ADD_PNEXT_EXT(props2, MAINTENANCE_7_PROPERTIES_KHR, local_props.maintenance_7, exts->KHR_maintenance7);
|
||||||
|
|
@ -784,6 +788,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
||||||
/* KHR */
|
/* KHR */
|
||||||
VN_SET_VK_PROPS_EXT(props, &local_props.acceleration_structure, exts->KHR_acceleration_structure);
|
VN_SET_VK_PROPS_EXT(props, &local_props.acceleration_structure, exts->KHR_acceleration_structure);
|
||||||
VN_SET_VK_PROPS_EXT(props, &local_props.compute_shader_derivatives, exts->KHR_compute_shader_derivatives);
|
VN_SET_VK_PROPS_EXT(props, &local_props.compute_shader_derivatives, exts->KHR_compute_shader_derivatives);
|
||||||
|
VN_SET_VK_PROPS_EXT(props, &local_props.cooperative_matrix, exts->KHR_cooperative_matrix);
|
||||||
VN_SET_VK_PROPS_EXT(props, &local_props.fragment_shader_barycentric, exts->KHR_fragment_shader_barycentric);
|
VN_SET_VK_PROPS_EXT(props, &local_props.fragment_shader_barycentric, exts->KHR_fragment_shader_barycentric);
|
||||||
VN_SET_VK_PROPS_EXT(props, &local_props.fragment_shading_rate, exts->KHR_fragment_shading_rate);
|
VN_SET_VK_PROPS_EXT(props, &local_props.fragment_shading_rate, exts->KHR_fragment_shading_rate);
|
||||||
VN_SET_VK_PROPS_EXT(props, &local_props.maintenance_7, exts->KHR_maintenance7);
|
VN_SET_VK_PROPS_EXT(props, &local_props.maintenance_7, exts->KHR_maintenance7);
|
||||||
|
|
@ -1311,6 +1316,7 @@ vn_physical_device_get_passthrough_extensions(
|
||||||
.KHR_acceleration_structure = physical_dev->ray_tracing,
|
.KHR_acceleration_structure = physical_dev->ray_tracing,
|
||||||
.KHR_calibrated_timestamps = true,
|
.KHR_calibrated_timestamps = true,
|
||||||
.KHR_compute_shader_derivatives = true,
|
.KHR_compute_shader_derivatives = true,
|
||||||
|
.KHR_cooperative_matrix = true,
|
||||||
.KHR_depth_clamp_zero_one = true,
|
.KHR_depth_clamp_zero_one = true,
|
||||||
.KHR_fragment_shader_barycentric = true,
|
.KHR_fragment_shader_barycentric = true,
|
||||||
.KHR_fragment_shading_rate = true,
|
.KHR_fragment_shading_rate = true,
|
||||||
|
|
@ -2968,6 +2974,20 @@ vn_GetPhysicalDeviceCalibrateableTimeDomainsKHR(
|
||||||
ring, physicalDevice, pTimeDomainCount, pTimeDomains);
|
ring, physicalDevice, pTimeDomainCount, pTimeDomains);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VkResult
|
||||||
|
vn_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
uint32_t *pPropertyCount,
|
||||||
|
VkCooperativeMatrixPropertiesKHR *pProperties)
|
||||||
|
{
|
||||||
|
struct vn_physical_device *physical_dev =
|
||||||
|
vn_physical_device_from_handle(physicalDevice);
|
||||||
|
struct vn_ring *ring = physical_dev->instance->ring.ring;
|
||||||
|
|
||||||
|
return vn_call_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
|
||||||
|
ring, physicalDevice, pPropertyCount, pProperties);
|
||||||
|
}
|
||||||
|
|
||||||
VkResult
|
VkResult
|
||||||
vn_GetPhysicalDeviceFragmentShadingRatesKHR(
|
vn_GetPhysicalDeviceFragmentShadingRatesKHR(
|
||||||
VkPhysicalDevice physicalDevice,
|
VkPhysicalDevice physicalDevice,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue