mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 07:20:10 +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_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_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_deferred_host_operations DONE (anv, hasvk, lvp, radv, tu, 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;
|
||||
VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
|
||||
compute_shader_derivatives;
|
||||
VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperative_matrix;
|
||||
VkPhysicalDeviceDepthClampZeroOneFeaturesKHR depth_clamp_zero_one;
|
||||
VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
|
||||
fragment_shader_barycentric;
|
||||
|
|
@ -343,6 +344,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
|
|||
/* KHR */
|
||||
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, 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, 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);
|
||||
|
|
@ -608,6 +610,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
|||
acceleration_structure;
|
||||
VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
|
||||
compute_shader_derivatives;
|
||||
VkPhysicalDeviceCooperativeMatrixPropertiesKHR cooperative_matrix;
|
||||
VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
|
||||
fragment_shader_barycentric;
|
||||
VkPhysicalDeviceFragmentShadingRatePropertiesKHR fragment_shading_rate;
|
||||
|
|
@ -703,6 +706,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
|||
/* KHR */
|
||||
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, 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_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);
|
||||
|
|
@ -784,6 +788,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
|||
/* KHR */
|
||||
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.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_shading_rate, exts->KHR_fragment_shading_rate);
|
||||
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_calibrated_timestamps = true,
|
||||
.KHR_compute_shader_derivatives = true,
|
||||
.KHR_cooperative_matrix = true,
|
||||
.KHR_depth_clamp_zero_one = true,
|
||||
.KHR_fragment_shader_barycentric = true,
|
||||
.KHR_fragment_shading_rate = true,
|
||||
|
|
@ -2968,6 +2974,20 @@ vn_GetPhysicalDeviceCalibrateableTimeDomainsKHR(
|
|||
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
|
||||
vn_GetPhysicalDeviceFragmentShadingRatesKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue