From 001540bad2e326040921615a079744e4cc2cdee3 Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Sun, 4 Feb 2024 13:05:26 +0100 Subject: [PATCH] nvk: Advertise shaderFloat16 Signed-off-by: Mary Guillemard Reviewed-by: Faith Ekstrand Part-of: --- docs/features.txt | 2 +- src/nouveau/vulkan/nvk_physical_device.c | 5 +++-- src/nouveau/vulkan/nvk_shader.c | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index 8d482ed596c..fce30df364a 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -459,7 +459,7 @@ Vulkan 1.2 -- all DONE: anv, nvk, tu, vn VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_KHR_separate_depth_stencil_layouts DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_KHR_shader_atomic_int64 DONE (anv, lvp, nvk, radv, vn) - VK_KHR_shader_float16_int8 DONE (anv, dzn, hasvk, lvp, radv, tu, vn) + VK_KHR_shader_float16_int8 DONE (anv, dzn, nvk, hasvk, lvp, radv, tu, vn) VK_KHR_shader_float_controls DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_KHR_shader_subgroup_extended_types DONE (anv, hasvk, lvp, nvk, radv, tu, vn) VK_KHR_spirv_1_4 DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index 81699c15ce9..fa339c6e633 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -325,6 +325,7 @@ nvk_get_device_features(const struct nv_device_info *info, .shaderBufferInt64Atomics = info->cls_eng3d >= MAXWELL_A && nvk_use_nak(info), .shaderSharedInt64Atomics = false, /* TODO */ + .shaderFloat16 = info->sm >= 70 && nvk_use_nak(info), .shaderInt8 = true, .descriptorIndexing = true, .shaderInputAttachmentArrayDynamicIndexing = true, @@ -783,13 +784,13 @@ nvk_get_device_properties(const struct nvk_instance *instance, .shaderDenormPreserveFloat16 = true, .shaderDenormPreserveFloat32 = true, .shaderDenormPreserveFloat64 = true, - .shaderDenormFlushToZeroFloat16 = true, + .shaderDenormFlushToZeroFloat16 = false, .shaderDenormFlushToZeroFloat32 = true, .shaderDenormFlushToZeroFloat64 = false, .shaderRoundingModeRTEFloat16 = true, .shaderRoundingModeRTEFloat32 = true, .shaderRoundingModeRTEFloat64 = true, - .shaderRoundingModeRTZFloat16 = true, + .shaderRoundingModeRTZFloat16 = false, .shaderRoundingModeRTZFloat32 = true, .shaderRoundingModeRTZFloat64 = true, .maxUpdateAfterBindDescriptorsInAllPools = UINT32_MAX, diff --git a/src/nouveau/vulkan/nvk_shader.c b/src/nouveau/vulkan/nvk_shader.c index 9b3f7f82874..7b2fa05795d 100644 --- a/src/nouveau/vulkan/nvk_shader.c +++ b/src/nouveau/vulkan/nvk_shader.c @@ -129,6 +129,7 @@ nvk_get_spirv_options(struct vk_physical_device *vk_pdev, .device_group = true, .draw_parameters = true, .float_controls = true, + .float16 = true, .float64 = true, .fragment_barycentric = true, .geometry_streams = true,