Mesa (main): v3dv: expose VK_KHR_shader_float_controls
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed May 11 09:33:22 UTC 2022
Module: Mesa
Branch: main
Commit: e981ed21e36871dd55a10fd1d8a1c94dfec17e03
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e981ed21e36871dd55a10fd1d8a1c94dfec17e03
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Tue May 10 12:53:08 2022 +0200
v3dv: expose VK_KHR_shader_float_controls
Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16424>
---
docs/features.txt | 2 +-
src/broadcom/vulkan/v3dv_device.c | 19 +++++++++++++++++++
src/broadcom/vulkan/v3dv_pipeline.c | 1 +
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/docs/features.txt b/docs/features.txt
index b10fc19661d..10fe93690ce 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -457,7 +457,7 @@ Vulkan 1.2 -- all DONE: anv, vn
VK_KHR_separate_depth_stencil_layouts DONE (anv, lvp, radv, vn, v3dv, tu)
VK_KHR_shader_atomic_int64 DONE (anv/gen9+, lvp, radv, vn)
VK_KHR_shader_float16_int8 DONE (anv/gen8+, lvp, radv, tu, vn)
- VK_KHR_shader_float_controls DONE (anv/gen8+, lvp, radv, tu, vn)
+ VK_KHR_shader_float_controls DONE (anv/gen8+, lvp, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, lvp, radv, tu, vn)
VK_KHR_spirv_1_4 DONE (anv, lvp, radv, tu, vn)
VK_KHR_timeline_semaphore DONE (anv, lvp, radv, tu, v3dv, vn)
diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c
index b01b7264d48..accd2d95eef 100644
--- a/src/broadcom/vulkan/v3dv_device.c
+++ b/src/broadcom/vulkan/v3dv_device.c
@@ -139,6 +139,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
.KHR_multiview = true,
.KHR_pipeline_executable_properties = true,
.KHR_separate_depth_stencil_layouts = true,
+ .KHR_shader_float_controls = true,
.KHR_shader_non_semantic_info = true,
.KHR_sampler_mirror_clamp_to_edge = true,
.KHR_storage_buffer_storage_class = true,
@@ -1557,6 +1558,24 @@ v3dv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
.independentResolveNone = false,
.independentResolve = false,
.maxTimelineSemaphoreValueDifference = UINT64_MAX,
+
+ .denormBehaviorIndependence = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
+ .roundingModeIndependence = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
+ .shaderSignedZeroInfNanPreserveFloat16 = true,
+ .shaderSignedZeroInfNanPreserveFloat32 = true,
+ .shaderSignedZeroInfNanPreserveFloat64 = false,
+ .shaderDenormPreserveFloat16 = true,
+ .shaderDenormPreserveFloat32 = true,
+ .shaderDenormPreserveFloat64 = false,
+ .shaderDenormFlushToZeroFloat16 = false,
+ .shaderDenormFlushToZeroFloat32 = false,
+ .shaderDenormFlushToZeroFloat64 = false,
+ .shaderRoundingModeRTEFloat16 = true,
+ .shaderRoundingModeRTEFloat32 = true,
+ .shaderRoundingModeRTEFloat64 = false,
+ .shaderRoundingModeRTZFloat16 = false,
+ .shaderRoundingModeRTZFloat32 = false,
+ .shaderRoundingModeRTZFloat64 = false,
};
memset(vk12.driverName, 0, VK_MAX_DRIVER_NAME_SIZE_KHR);
snprintf(vk12.driverName, VK_MAX_DRIVER_NAME_SIZE_KHR, "V3DV Mesa");
diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c
index c3dbac57227..ed03fa88ece 100644
--- a/src/broadcom/vulkan/v3dv_pipeline.c
+++ b/src/broadcom/vulkan/v3dv_pipeline.c
@@ -185,6 +185,7 @@ v3dv_DestroyPipeline(VkDevice _device,
static const struct spirv_to_nir_options default_spirv_options = {
.caps = {
.device_group = true,
+ .float_controls = true,
.multiview = true,
.storage_8bit = true,
.storage_16bit = true,
More information about the mesa-commit
mailing list