radv: advertise VK_KHR_fragment_shader_barycentric on GFX10.3+
It can't be supported on older hardware because it's impossible to determine the provoking vertex ID without LOAD_PROVOKING_VTX which is GFX10.3+ only. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6557 Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
This commit is contained in:

committed by
Marge Bot

parent
593fb2035d
commit
9150513242
@@ -512,6 +512,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||||||
VK_KHR_external_memory_win32 DONE (dzn)
|
VK_KHR_external_memory_win32 DONE (dzn)
|
||||||
VK_KHR_external_semaphore_fd DONE (anv, dzn, radv, tu, v3dv, vn)
|
VK_KHR_external_semaphore_fd DONE (anv, dzn, radv, tu, v3dv, vn)
|
||||||
VK_KHR_external_semaphore_win32 DONE (dzn)
|
VK_KHR_external_semaphore_win32 DONE (dzn)
|
||||||
|
VK_KHR_fragment_shader_barycentric DONE (radv/gfx10.3+)
|
||||||
VK_KHR_fragment_shading_rate DONE (anv/gen11+, radv/gfx10.3+)
|
VK_KHR_fragment_shading_rate DONE (anv/gen11+, radv/gfx10.3+)
|
||||||
VK_KHR_get_display_properties2 DONE (anv, radv, tu, v3dv)
|
VK_KHR_get_display_properties2 DONE (anv, radv, tu, v3dv)
|
||||||
VK_KHR_get_surface_capabilities2 DONE (anv, lvp, radv, tu, v3dv, vn)
|
VK_KHR_get_surface_capabilities2 DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||||
|
@@ -4,3 +4,4 @@ VK_EXT_dynamic_rendering_unused_attachments on RADV
|
|||||||
VK_EXT_mesh_shader on lavapipe
|
VK_EXT_mesh_shader on lavapipe
|
||||||
OpenGL 3.1 on Asahi
|
OpenGL 3.1 on Asahi
|
||||||
OpenGL ES 3.0 on Asahi
|
OpenGL ES 3.0 on Asahi
|
||||||
|
VK_KHR_fragment_shader_barycentric on RADV/GFX10.3+
|
||||||
|
@@ -1 +1,6 @@
|
|||||||
|
# Test bug https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4498
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_fan.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_list.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_list_with_adjacency.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_strip.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_strip_with_adjacency.perspective,Fail
|
||||||
|
@@ -2,3 +2,10 @@
|
|||||||
dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.before_draw.line_stipple_enable,Fail
|
dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.before_draw.line_stipple_enable,Fail
|
||||||
|
|
||||||
dEQP-VK.subgroups.builtin_var.ray_tracing.subgroupsize,Fail
|
dEQP-VK.subgroups.builtin_var.ray_tracing.subgroupsize,Fail
|
||||||
|
|
||||||
|
# Test bug https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4498
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_fan.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_list.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_list_with_adjacency.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_strip.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_strip_with_adjacency.perspective,Fail
|
||||||
|
@@ -4,3 +4,10 @@ dEQP-VK.binding_model.ics_miss_buffers8_sets1,Crash
|
|||||||
dEQP-VK.draw.dynamic_rendering.primary_cmd_buff.linear_interpolation.no_offset_2_samples,Fail
|
dEQP-VK.draw.dynamic_rendering.primary_cmd_buff.linear_interpolation.no_offset_2_samples,Fail
|
||||||
|
|
||||||
dEQP-VK.subgroups.builtin_var.ray_tracing.subgroupsize,Fail
|
dEQP-VK.subgroups.builtin_var.ray_tracing.subgroupsize,Fail
|
||||||
|
|
||||||
|
# Test bug https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4498
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_fan.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_list.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_list_with_adjacency.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_strip.perspective,Fail
|
||||||
|
dEQP-VK.fragment_shading_barycentric.weights.pipeline_topology_dynamic.msaa_interpolate_at_offset.triangle_strip_with_adjacency.perspective,Fail
|
||||||
|
@@ -416,6 +416,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
|
|||||||
.KHR_external_semaphore = true,
|
.KHR_external_semaphore = true,
|
||||||
.KHR_external_semaphore_fd = true,
|
.KHR_external_semaphore_fd = true,
|
||||||
.KHR_format_feature_flags2 = true,
|
.KHR_format_feature_flags2 = true,
|
||||||
|
.KHR_fragment_shader_barycentric = device->rad_info.gfx_level >= GFX10_3,
|
||||||
.KHR_fragment_shading_rate = device->rad_info.gfx_level >= GFX10_3,
|
.KHR_fragment_shading_rate = device->rad_info.gfx_level >= GFX10_3,
|
||||||
.KHR_get_memory_requirements2 = true,
|
.KHR_get_memory_requirements2 = true,
|
||||||
.KHR_global_priority = true,
|
.KHR_global_priority = true,
|
||||||
@@ -1034,6 +1035,9 @@ radv_physical_device_get_features(const struct radv_physical_device *pdevice,
|
|||||||
|
|
||||||
/* VK_EXT_dynamic_rendering_unused_attachments */
|
/* VK_EXT_dynamic_rendering_unused_attachments */
|
||||||
.dynamicRenderingUnusedAttachments = true,
|
.dynamicRenderingUnusedAttachments = true,
|
||||||
|
|
||||||
|
/* VK_KHR_fragment_shader_barycentric */
|
||||||
|
.fragmentShaderBarycentric = true,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1853,6 +1857,12 @@ radv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
|||||||
properties->descriptorBufferAddressSpaceSize = RADV_MAX_MEMORY_ALLOCATION_SIZE;
|
properties->descriptorBufferAddressSpaceSize = RADV_MAX_MEMORY_ALLOCATION_SIZE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
|
||||||
|
VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR *properties =
|
||||||
|
(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR *)ext;
|
||||||
|
properties->triStripVertexOrderIndependentOfProvokingVertex = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -402,6 +402,7 @@ radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_pipeline_
|
|||||||
.float32_atomic_min_max = true,
|
.float32_atomic_min_max = true,
|
||||||
.float64 = true,
|
.float64 = true,
|
||||||
.float64_atomic_min_max = true,
|
.float64_atomic_min_max = true,
|
||||||
|
.fragment_barycentric = true,
|
||||||
.fragment_fully_covered = true,
|
.fragment_fully_covered = true,
|
||||||
.geometry_streams = true,
|
.geometry_streams = true,
|
||||||
.groups = true,
|
.groups = true,
|
||||||
|
Reference in New Issue
Block a user