Module: Mesa Branch: main Commit: b71ac720a8d9e407cbc7e78f8ab99258ea8b93c3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b71ac720a8d9e407cbc7e78f8ab99258ea8b93c3
Author: Jason Ekstrand <[email protected]> Date: Fri Sep 2 23:44:52 2022 -0500 hasvk: Drop support for atomic_int64 and atomic_float2 Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19852> --- src/intel/vulkan_hasvk/anv_device.c | 22 +--------------------- .../vulkan_hasvk/anv_nir_apply_pipeline_layout.c | 13 ++----------- 2 files changed, 3 insertions(+), 32 deletions(-) diff --git a/src/intel/vulkan_hasvk/anv_device.c b/src/intel/vulkan_hasvk/anv_device.c index 401ffa7e242..1b65f1b3b8b 100644 --- a/src/intel/vulkan_hasvk/anv_device.c +++ b/src/intel/vulkan_hasvk/anv_device.c @@ -234,7 +234,6 @@ get_device_extensions(const struct anv_physical_device *device, .KHR_sampler_mirror_clamp_to_edge = true, .KHR_sampler_ycbcr_conversion = true, .KHR_separate_depth_stencil_layouts = true, - .KHR_shader_atomic_int64 = device->info.ver >= 9, .KHR_shader_clock = true, .KHR_shader_draw_parameters = true, .KHR_shader_float16_int8 = device->info.ver >= 8, @@ -309,7 +308,6 @@ get_device_extensions(const struct anv_physical_device *device, .EXT_scalar_block_layout = true, .EXT_separate_stencil_usage = true, .EXT_shader_atomic_float = true, - .EXT_shader_atomic_float2 = device->info.ver >= 9, .EXT_shader_demote_to_helper_invocation = true, .EXT_shader_module_identifier = true, .EXT_shader_stencil_export = device->info.ver >= 9, @@ -1181,7 +1179,7 @@ anv_get_physical_device_features_1_2(struct anv_physical_device *pdevice, f->storageBuffer8BitAccess = pdevice->info.ver >= 8; f->uniformAndStorageBuffer8BitAccess = pdevice->info.ver >= 8; f->storagePushConstant8 = pdevice->info.ver >= 8; - f->shaderBufferInt64Atomics = pdevice->info.ver >= 9; + f->shaderBufferInt64Atomics = false; f->shaderSharedInt64Atomics = false; f->shaderFloat16 = pdevice->info.ver >= 8; f->shaderInt8 = pdevice->info.ver >= 8; @@ -1490,24 +1488,6 @@ void anv_GetPhysicalDeviceFeatures2( break; } - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: { - VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *features = (void *)ext; - features->shaderBufferFloat16Atomics = false; - features->shaderBufferFloat16AtomicAdd = false; - features->shaderBufferFloat16AtomicMinMax = false; - features->shaderBufferFloat32AtomicMinMax = pdevice->info.ver >= 9; - features->shaderBufferFloat64AtomicMinMax = - pdevice->info.has_64bit_float && pdevice->info.has_lsc; - features->shaderSharedFloat16Atomics = false; - features->shaderSharedFloat16AtomicAdd = false; - features->shaderSharedFloat16AtomicMinMax = false; - features->shaderSharedFloat32AtomicMinMax = pdevice->info.ver >= 9; - features->shaderSharedFloat64AtomicMinMax = false; - features->shaderImageFloat32AtomicMinMax = false; - features->sparseImageFloat32AtomicMinMax = false; - break; - } - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: { VkPhysicalDeviceShaderClockFeaturesKHR *features = (VkPhysicalDeviceShaderClockFeaturesKHR *)ext; diff --git a/src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c b/src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c index 0b2695d6588..5e6280dc958 100644 --- a/src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c +++ b/src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c @@ -647,7 +647,7 @@ build_buffer_addr_for_deref(nir_builder *b, nir_deref_instr *deref, static bool try_lower_direct_buffer_intrinsic(nir_builder *b, - nir_intrinsic_instr *intrin, bool is_atomic, + nir_intrinsic_instr *intrin, struct apply_pipeline_layout_state *state) { nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); @@ -664,13 +664,6 @@ try_lower_direct_buffer_intrinsic(nir_builder *b, nir_address_format addr_format = descriptor_address_format(desc, state); if (nir_deref_mode_is(deref, nir_var_mem_ssbo)) { - /* 64-bit atomics only support A64 messages so we can't lower them to - * the index+offset model. - */ - if (is_atomic && nir_dest_bit_size(intrin->dest) == 64 && - !state->pdevice->info.has_lsc) - return false; - /* Normal binding table-based messages can't handle non-uniform access * so we have to fall back to A64. */ @@ -753,8 +746,6 @@ lower_direct_buffer_instr(nir_builder *b, nir_instr *instr, void *_state) switch (intrin->intrinsic) { case nir_intrinsic_load_deref: case nir_intrinsic_store_deref: - return try_lower_direct_buffer_intrinsic(b, intrin, false, state); - case nir_intrinsic_deref_atomic_add: case nir_intrinsic_deref_atomic_imin: case nir_intrinsic_deref_atomic_umin: @@ -769,7 +760,7 @@ lower_direct_buffer_instr(nir_builder *b, nir_instr *instr, void *_state) case nir_intrinsic_deref_atomic_fmin: case nir_intrinsic_deref_atomic_fmax: case nir_intrinsic_deref_atomic_fcomp_swap: - return try_lower_direct_buffer_intrinsic(b, intrin, true, state); + return try_lower_direct_buffer_intrinsic(b, intrin, state); case nir_intrinsic_get_ssbo_size: { /* The get_ssbo_size intrinsic always just takes a
