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