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:
Samuel Pitoiset
2022-05-06 13:58:48 +02:00
committed by Marge Bot
parent 593fb2035d
commit 9150513242
7 changed files with 33 additions and 1 deletions

View File

@@ -512,6 +512,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_external_memory_win32 DONE (dzn)
VK_KHR_external_semaphore_fd DONE (anv, dzn, radv, tu, v3dv, vn)
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_get_display_properties2 DONE (anv, radv, tu, v3dv)
VK_KHR_get_surface_capabilities2 DONE (anv, lvp, radv, tu, v3dv, vn)

View File

@@ -4,3 +4,4 @@ VK_EXT_dynamic_rendering_unused_attachments on RADV
VK_EXT_mesh_shader on lavapipe
OpenGL 3.1 on Asahi
OpenGL ES 3.0 on Asahi
VK_KHR_fragment_shader_barycentric on RADV/GFX10.3+

View File

@@ -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

View File

@@ -2,3 +2,10 @@
dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.before_draw.line_stipple_enable,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

View File

@@ -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.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

View File

@@ -416,6 +416,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
.KHR_external_semaphore = true,
.KHR_external_semaphore_fd = 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_get_memory_requirements2 = 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 */
.dynamicRenderingUnusedAttachments = true,
/* VK_KHR_fragment_shader_barycentric */
.fragmentShaderBarycentric = true,
};
}
@@ -1853,6 +1857,12 @@ radv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
properties->descriptorBufferAddressSpaceSize = RADV_MAX_MEMORY_ALLOCATION_SIZE;
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR *properties =
(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR *)ext;
properties->triStripVertexOrderIndependentOfProvokingVertex = false;
break;
}
default:
break;
}

View File

@@ -402,6 +402,7 @@ radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_pipeline_
.float32_atomic_min_max = true,
.float64 = true,
.float64_atomic_min_max = true,
.fragment_barycentric = true,
.fragment_fully_covered = true,
.geometry_streams = true,
.groups = true,