summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2021-03-15 11:44:17 +1000
committerMarge Bot <eric+marge@anholt.net>2021-03-29 20:32:09 +0000
commit115ba959dcd2fb56e46cb82da0c93f78fc5b3bc5 (patch)
tree44d81f05c3c1b01beded92bb3b5b0c43b95f69ce
parent8c1d5fcb7cc25ffe94176637a52f620e8440b8a8 (diff)
lavapipe: enable KHR_shader_atomic_int64
Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9591>
-rw-r--r--docs/features.txt2
-rw-r--r--src/gallium/frontends/lavapipe/lvp_device.c7
-rw-r--r--src/gallium/frontends/lavapipe/lvp_pipeline.c1
3 files changed, 9 insertions, 1 deletions
diff --git a/docs/features.txt b/docs/features.txt
index 21bb454ca5a..0107f5bb796 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -457,7 +457,7 @@ Vulkan 1.2 -- all DONE: anv
VK_KHR_imageless_framebuffer DONE (anv, radv)
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, lvp, radv, tu)
VK_KHR_separate_depth_stencil_layouts DONE (anv, radv)
- VK_KHR_shader_atomic_int64 DONE (anv/gen9+, radv)
+ VK_KHR_shader_atomic_int64 DONE (anv/gen9+, lvp, radv)
VK_KHR_shader_float16_int8 DONE (anv/gen8+, radv)
VK_KHR_shader_float_controls DONE (anv/gen8+, radv)
VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, radv)
diff --git a/src/gallium/frontends/lavapipe/lvp_device.c b/src/gallium/frontends/lavapipe/lvp_device.c
index 34b5ef89f25..7093d9f4a78 100644
--- a/src/gallium/frontends/lavapipe/lvp_device.c
+++ b/src/gallium/frontends/lavapipe/lvp_device.c
@@ -113,6 +113,7 @@ static const struct vk_device_extension_table lvp_device_extensions_supported =
.KHR_push_descriptor = true,
.KHR_relaxed_block_layout = true,
.KHR_sampler_mirror_clamp_to_edge = true,
+ .KHR_shader_atomic_int64 = true,
.KHR_shader_draw_parameters = true,
.KHR_storage_buffer_storage_class = true,
#ifdef LVP_USE_WSI_PLATFORM
@@ -541,6 +542,12 @@ VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceFeatures2(
features->bufferDeviceAddressMultiDevice = false;
break;
}
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR: {
+ VkPhysicalDeviceShaderAtomicInt64FeaturesKHR *features = (void *)ext;
+ features->shaderBufferInt64Atomics = true;
+ features->shaderSharedInt64Atomics = true;
+ break;
+ }
default:
break;
}
diff --git a/src/gallium/frontends/lavapipe/lvp_pipeline.c b/src/gallium/frontends/lavapipe/lvp_pipeline.c
index 92efd232cf5..671f336abf6 100644
--- a/src/gallium/frontends/lavapipe/lvp_pipeline.c
+++ b/src/gallium/frontends/lavapipe/lvp_pipeline.c
@@ -471,6 +471,7 @@ lvp_shader_compile_to_ir(struct lvp_pipeline *pipeline,
.shader_viewport_index_layer = true,
.multiview = true,
.physical_storage_buffer_address = true,
+ .int64_atomics = true,
},
.ubo_addr_format = nir_address_format_32bit_index_offset,
.ssbo_addr_format = nir_address_format_32bit_index_offset,