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,