diff options
author | Dave Airlie <airlied@redhat.com> | 2021-03-15 11:44:17 +1000 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-03-29 20:32:09 +0000 |
commit | 115ba959dcd2fb56e46cb82da0c93f78fc5b3bc5 (patch) | |
tree | 44d81f05c3c1b01beded92bb3b5b0c43b95f69ce | |
parent | 8c1d5fcb7cc25ffe94176637a52f620e8440b8a8 (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.txt | 2 | ||||
-rw-r--r-- | src/gallium/frontends/lavapipe/lvp_device.c | 7 | ||||
-rw-r--r-- | src/gallium/frontends/lavapipe/lvp_pipeline.c | 1 |
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, |