Mesa (master): turnip: enable VK_KHR_shader_float16_int8

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Apr 1 18:13:36 UTC 2021


Module: Mesa
Branch: master
Commit: 14acc64c3b2b4cf7c6c8bcd0db9fc54df7838ec1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=14acc64c3b2b4cf7c6c8bcd0db9fc54df7838ec1

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Tue Mar 23 15:39:26 2021 +0200

turnip: enable VK_KHR_shader_float16_int8

ir3 supports 16-bit floats, so we can enable this.

Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Reviewed-by: Danylo Piliaiev <dpiliaiev at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9840>

---

 src/freedreno/ci/deqp-freedreno-a630-fails.txt |  5 +++++
 src/freedreno/vulkan/tu_device.c               | 10 ++++++++--
 src/freedreno/vulkan/tu_extensions.py          |  1 +
 src/freedreno/vulkan/tu_shader.c               |  1 +
 4 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/freedreno/ci/deqp-freedreno-a630-fails.txt b/src/freedreno/ci/deqp-freedreno-a630-fails.txt
index 59c666602db..16701fc900a 100644
--- a/src/freedreno/ci/deqp-freedreno-a630-fails.txt
+++ b/src/freedreno/ci/deqp-freedreno-a630-fails.txt
@@ -140,5 +140,10 @@ dEQP-VK.spirv_assembly.instruction.graphics.opquantize.too_small_tessc,Fail
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_geom,Timeout
 dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_single_buffer_geom,Fail
 dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_two_buffers_geom,Fail
+dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle.344_vert,Crash
+dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle.444_geom,Crash
+dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle.244_tessc,Crash
+dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle.344_frag,Crash
+dEQP-VK.spirv_assembly.instruction.compute.float16.opvectorshuffle.344,Crash
 dEQP-VK.texture.filtering.cube.formats.d24_unorm_s8_uint_stencil.nearest,Fail
 dEQP-VK.wsi.display_control.register_device_event,Crash
diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c
index c99c891b5de..2ce0e268874 100644
--- a/src/freedreno/vulkan/tu_device.c
+++ b/src/freedreno/vulkan/tu_device.c
@@ -416,7 +416,7 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
          features->storagePushConstant8                = false;
          features->shaderBufferInt64Atomics            = false;
          features->shaderSharedInt64Atomics            = false;
-         features->shaderFloat16                       = false;
+         features->shaderFloat16                       = true;
          features->shaderInt8                          = false;
 
          features->descriptorIndexing                                 = true;
@@ -601,7 +601,13 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
          features->pipelineExecutableInfo = true;
          break;
       }
-
+      case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
+         VkPhysicalDeviceShaderFloat16Int8Features *features =
+            (VkPhysicalDeviceShaderFloat16Int8Features *) ext;
+         features->shaderFloat16 = true;
+         features->shaderInt8 = false;
+         break;
+      }
       default:
          break;
       }
diff --git a/src/freedreno/vulkan/tu_extensions.py b/src/freedreno/vulkan/tu_extensions.py
index 5d39762f086..aa69ae0fd1a 100644
--- a/src/freedreno/vulkan/tu_extensions.py
+++ b/src/freedreno/vulkan/tu_extensions.py
@@ -111,6 +111,7 @@ EXTENSIONS = [
     Extension('VK_KHR_external_fence_capabilities',       1, True),
     Extension('VK_KHR_pipeline_executable_properties',    1, True),
     Extension('VK_KHR_shader_float_controls',             1, True),
+    Extension('VK_KHR_shader_float16_int8',               1, True),
 ]
 
 MAX_API_VERSION = VkVersion(MAX_API_VERSION)
diff --git a/src/freedreno/vulkan/tu_shader.c b/src/freedreno/vulkan/tu_shader.c
index 8d09eeeaad9..9c3bef21501 100644
--- a/src/freedreno/vulkan/tu_shader.c
+++ b/src/freedreno/vulkan/tu_shader.c
@@ -74,6 +74,7 @@ tu_spirv_to_nir(struct tu_device *dev,
          .descriptor_array_non_uniform_indexing = true,
          .runtime_descriptor_array = true,
          .float_controls = true,
+         .float16 = true,
       },
    };
 



More information about the mesa-commit mailing list