From 7754f208ceaea817425c09561996605d9ff348e6 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Sun, 9 Oct 2022 18:30:42 +0200 Subject: [PATCH] radv: Use half floats for box16 coords Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/vulkan/bvh/bvh.h | 4 +++- src/amd/vulkan/bvh/converter_internal.comp | 1 + src/amd/vulkan/bvh/converter_leaf.comp | 1 + src/amd/vulkan/bvh/copy.comp | 1 + src/amd/vulkan/bvh/lbvh_internal.comp | 1 + src/amd/vulkan/bvh/morton.comp | 1 + 6 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/bvh/bvh.h b/src/amd/vulkan/bvh/bvh.h index 4356f59caf1..ce432e10368 100644 --- a/src/amd/vulkan/bvh/bvh.h +++ b/src/amd/vulkan/bvh/bvh.h @@ -41,6 +41,8 @@ #include typedef struct radv_ir_node radv_ir_node; +typedef uint16_t float16_t; + typedef struct { float values[3][4]; } mat3x4; @@ -155,7 +157,7 @@ struct radv_bvh_instance_node { struct radv_bvh_box16_node { uint32_t children[4]; - uint32_t coords[4][3]; + float16_t coords[4][2][3]; }; struct radv_bvh_box32_node { diff --git a/src/amd/vulkan/bvh/converter_internal.comp b/src/amd/vulkan/bvh/converter_internal.comp index a4fb75b1c51..9956602f235 100644 --- a/src/amd/vulkan/bvh/converter_internal.comp +++ b/src/amd/vulkan/bvh/converter_internal.comp @@ -29,6 +29,7 @@ #extension GL_EXT_shader_explicit_arithmetic_types_int16 : require #extension GL_EXT_shader_explicit_arithmetic_types_int32 : require #extension GL_EXT_shader_explicit_arithmetic_types_int64 : require +#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require #extension GL_EXT_scalar_block_layout : require #extension GL_EXT_buffer_reference : require #extension GL_EXT_buffer_reference2 : require diff --git a/src/amd/vulkan/bvh/converter_leaf.comp b/src/amd/vulkan/bvh/converter_leaf.comp index 62df4d3976d..f8e7e68fe2b 100644 --- a/src/amd/vulkan/bvh/converter_leaf.comp +++ b/src/amd/vulkan/bvh/converter_leaf.comp @@ -29,6 +29,7 @@ #extension GL_EXT_shader_explicit_arithmetic_types_int16 : require #extension GL_EXT_shader_explicit_arithmetic_types_int32 : require #extension GL_EXT_shader_explicit_arithmetic_types_int64 : require +#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require #extension GL_EXT_scalar_block_layout : require #extension GL_EXT_buffer_reference : require #extension GL_EXT_buffer_reference2 : require diff --git a/src/amd/vulkan/bvh/copy.comp b/src/amd/vulkan/bvh/copy.comp index 2f2fae748e9..31f893c76a2 100644 --- a/src/amd/vulkan/bvh/copy.comp +++ b/src/amd/vulkan/bvh/copy.comp @@ -29,6 +29,7 @@ #extension GL_EXT_shader_explicit_arithmetic_types_int16 : require #extension GL_EXT_shader_explicit_arithmetic_types_int32 : require #extension GL_EXT_shader_explicit_arithmetic_types_int64 : require +#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require #extension GL_EXT_scalar_block_layout : require #extension GL_EXT_buffer_reference : require #extension GL_EXT_buffer_reference2 : require diff --git a/src/amd/vulkan/bvh/lbvh_internal.comp b/src/amd/vulkan/bvh/lbvh_internal.comp index 180c7b159cf..ccd88d4c7d0 100644 --- a/src/amd/vulkan/bvh/lbvh_internal.comp +++ b/src/amd/vulkan/bvh/lbvh_internal.comp @@ -29,6 +29,7 @@ #extension GL_EXT_shader_explicit_arithmetic_types_int16 : require #extension GL_EXT_shader_explicit_arithmetic_types_int32 : require #extension GL_EXT_shader_explicit_arithmetic_types_int64 : require +#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require #extension GL_EXT_scalar_block_layout : require #extension GL_EXT_buffer_reference : require #extension GL_EXT_buffer_reference2 : require diff --git a/src/amd/vulkan/bvh/morton.comp b/src/amd/vulkan/bvh/morton.comp index 750531bd0ea..8c82d68ad5e 100644 --- a/src/amd/vulkan/bvh/morton.comp +++ b/src/amd/vulkan/bvh/morton.comp @@ -29,6 +29,7 @@ #extension GL_EXT_shader_explicit_arithmetic_types_int16 : require #extension GL_EXT_shader_explicit_arithmetic_types_int32 : require #extension GL_EXT_shader_explicit_arithmetic_types_int64 : require +#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require #extension GL_EXT_scalar_block_layout : require #extension GL_EXT_buffer_reference : require #extension GL_EXT_buffer_reference2 : require