diff --git a/docs/features.txt b/docs/features.txt index 7b80cee0292..5fd8cd43ced 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -461,14 +461,14 @@ Vulkan 1.2 -- all DONE: anv VK_KHR_shader_float16_int8 DONE (anv/gen8+, radv, tu) VK_KHR_shader_float_controls DONE (anv/gen8+, radv, tu) VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, radv) - VK_KHR_spirv_1_4 DONE (anv, radv) + VK_KHR_spirv_1_4 DONE (anv, radv, tu) VK_KHR_timeline_semaphore DONE (anv, radv) VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv) VK_KHR_vulkan_memory_model DONE (anv, radv) VK_EXT_descriptor_indexing DONE (anv/gen9+, radv, tu) VK_EXT_host_query_reset DONE (anv, lvp, radv, tu) VK_EXT_sampler_filter_minmax DONE (anv/gen9+, lvp, radv, tu) - VK_EXT_scalar_block_layout DONE (anv, lvp, radv/gfx7+) + VK_EXT_scalar_block_layout DONE (anv, lvp, radv/gfx7+, tu) VK_EXT_separate_stencil_usage DONE (anv) VK_EXT_shader_viewport_index_layer DONE (anv, lvp, radv, tu) diff --git a/src/freedreno/ci/deqp-freedreno-a630-fails.txt b/src/freedreno/ci/deqp-freedreno-a630-fails.txt index b28f66b161d..26e827a2fd8 100644 --- a/src/freedreno/ci/deqp-freedreno-a630-fails.txt +++ b/src/freedreno/ci/deqp-freedreno-a630-fails.txt @@ -183,6 +183,7 @@ dEQP-VK.spirv_assembly.instruction.graphics.opquantize.too_small_geom,Fail dEQP-VK.spirv_assembly.instruction.graphics.opquantize.too_small_tessc,Fail dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_single_buffer_geom,Fail dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_two_buffers_geom,Fail +dEQP-VK.spirv_assembly.instruction.spirv1p4.opcopylogical.nested_arrays_different_inner_stride,Fail dEQP-VK.subgroups.basic.compute.subgroupelect,Crash dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier,Crash dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared,Crash diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c index 04e74982af2..19229294315 100644 --- a/src/freedreno/vulkan/tu_device.c +++ b/src/freedreno/vulkan/tu_device.c @@ -444,7 +444,7 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, features->runtimeDescriptorArray = true; features->samplerFilterMinmax = true; - features->scalarBlockLayout = false; + features->scalarBlockLayout = true; features->imagelessFramebuffer = false; features->uniformBufferStandardLayout = false; features->shaderSubgroupExtendedTypes = false; @@ -610,6 +610,12 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, features->shaderInt8 = false; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT: { + VkPhysicalDeviceScalarBlockLayoutFeaturesEXT *features = (void *)ext; + features->scalarBlockLayout = true; + break; + } + default: break; } diff --git a/src/freedreno/vulkan/tu_extensions.py b/src/freedreno/vulkan/tu_extensions.py index ad83b8d2704..2fe52912eaf 100644 --- a/src/freedreno/vulkan/tu_extensions.py +++ b/src/freedreno/vulkan/tu_extensions.py @@ -113,6 +113,8 @@ EXTENSIONS = [ Extension('VK_KHR_shader_float_controls', 1, True), Extension('VK_KHR_shader_float16_int8', 1, True), Extension('VK_KHR_16bit_storage', 1, 'device->gpu_id >= 650'), + Extension('VK_EXT_scalar_block_layout', 1, True), + Extension('VK_KHR_spirv_1_4', 1, True), ] MAX_API_VERSION = VkVersion(MAX_API_VERSION)