diff --git a/src/freedreno/ci/freedreno-a660-fails.txt b/src/freedreno/ci/freedreno-a660-fails.txt index 163cec421d8..2d7a382ace9 100644 --- a/src/freedreno/ci/freedreno-a660-fails.txt +++ b/src/freedreno/ci/freedreno-a660-fails.txt @@ -11,10 +11,6 @@ KHR-GL46.texture_stencil8.multisample,Fail # GL tests above, Vulkan tests below -# New fails in 1.4.1.1 -gmem-dEQP-VK.dynamic_rendering.primary_cmd_buff.local_read.input_attachments_without_mapping,Fail -gmem-dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.uniform_32struct_to_16struct.uniform_geom,Fail - # New fails in 1.4.3.3 dEQP-VK.memory.concurrent_access.shader_and_host,Fail dEQP-VK.transform_feedback.simple.draw_indirect_counter_offset_16,Fail diff --git a/src/freedreno/ci/freedreno-a750-fails.txt b/src/freedreno/ci/freedreno-a750-fails.txt index 72bd9c06a98..de0520d550a 100644 --- a/src/freedreno/ci/freedreno-a750-fails.txt +++ b/src/freedreno/ci/freedreno-a750-fails.txt @@ -14,19 +14,6 @@ KHR-GLES31.core.vertex_attrib_binding.advanced-iterations,Fail dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_rgba8ui.renderbuffer_to_renderbuffer,Fail dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.srgb8_alpha8_rgba8ui.renderbuffer_to_renderbuffer,Fail - -gmem-dEQP-VK.clipping.user_defined.clip_cull_distance_dynamic_index.vert_geom.6_2,Fail -gmem-dEQP-VK.clipping.user_defined.clip_cull_distance_dynamic_index.vert_geom.6_2_fragmentshader_read,Fail -gmem-dEQP-VK.draw.dynamic_rendering.complete_secondary_cmd_buff.scissor.dynamic_scissor_out_of_order_updates,Fail -gmem-dEQP-VK.glsl.builtin.function.integer.bitfieldextract.ivec4_highp_geometry,Fail -gmem-dEQP-VK.glsl.builtin.function.integer.usubborrow.uvec4_mediump_geometry,Fail -gmem-dEQP-VK.spirv_assembly.instruction.graphics.cross_stage.interface_blocks.relaxedprecision,Fail - -dynamic-dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint.compatibility_depth_zero_stencil_zero_testing_stencil,Fail -dynamic-dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint_separate_layouts.compatibility_depth_zero_stencil_zero_testing_stencil,Fail -dynamic-dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint.compatibility_depth_zero_stencil_zero_testing_stencil,Fail -dynamic-dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint_separate_layouts.compatibility_depth_zero_stencil_zero_testing_stencil,Fail - # New failures with VKCTS 1.4.4.0 dEQP-VK.pipeline.monolithic.misc.identically_defined_layout,Fail diff --git a/src/freedreno/vulkan/tu_device.cc b/src/freedreno/vulkan/tu_device.cc index 2e755551dca..71a0c25b34f 100644 --- a/src/freedreno/vulkan/tu_device.cc +++ b/src/freedreno/vulkan/tu_device.cc @@ -1496,7 +1496,9 @@ tu_get_properties(struct tu_physical_device *pdevice, VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, + VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT, + VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ, }; props->pCopySrcLayouts = (VkImageLayout *)supported_layouts; diff --git a/src/freedreno/vulkan/tu_formats.cc b/src/freedreno/vulkan/tu_formats.cc index 6b92fd81866..894e5067f61 100644 --- a/src/freedreno/vulkan/tu_formats.cc +++ b/src/freedreno/vulkan/tu_formats.cc @@ -232,11 +232,18 @@ tu_physical_device_get_format_properties( if (supported_color) { assert(supported_tex); - optimal |= VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT | - VK_FORMAT_FEATURE_2_BLIT_DST_BIT | - VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT | - VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT | - VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT; + optimal |= VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT | VK_FORMAT_FEATURE_2_BLIT_DST_BIT; + + /* "Compatibility Between SPIR-V Image Formats and Vulkan Formats" doesn't + * map any SPIR-V image formats formats to Vulkan depth/stencil formats, + * except for "Unknown" which maps to anything with the feature flags set. + * Don't bother supporting that unformatted z/s access, either, since + * x8_d24 fails and it seems like an unintended corner of the spec. + */ + if (!util_format_has_depth(desc) && !util_format_has_stencil(desc)) { + optimal |= VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT | VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT | + VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT; + } buffer |= VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT | VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT | diff --git a/src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt b/src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt index 743a633bfab..a4d404eb9ea 100644 --- a/src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt @@ -20,8 +20,6 @@ dEQP-GLES3.functional.multisample.fbo_max_samples.stencil,Fail GTF-GL46.gtf30.GL3Tests.sgis_texture_lod.sgis_texture_lod_basic_lod_selection,Fail -KHR-Single-GL46.arrays_of_arrays_gl.SubroutineFunctionCalls2,Crash - # Turnip has maxFragmentInputComponents = 124, while GL requires # gl_MaxFragmentInputComponents >= 128 KHR-GL46.limits.max_fragment_input_components,Fail diff --git a/src/gallium/drivers/zink/ci/zink-tu-a750-skips.txt b/src/gallium/drivers/zink/ci/zink-tu-a750-skips.txt index b7ff51f8048..639961ba7e5 100644 --- a/src/gallium/drivers/zink/ci/zink-tu-a750-skips.txt +++ b/src/gallium/drivers/zink/ci/zink-tu-a750-skips.txt @@ -1,11 +1,11 @@ GTF-GL46.gtf32.GL3Tests.packed_pixels.packed_pixels_pixelstore KHR-GL46.texture_swizzle.smoke -KHR-Single-GL46.arrays_of_arrays_gl.SubroutineFunctionCalls2 +KHR-Single-GL46.arrays_of_arrays_gl.SubroutineFunctionCalls2_var_type_index_11 +KHR-Single-GL46.arrays_of_arrays_gl.SubroutineFunctionCalls2_var_type_index_12 +KHR-Single-GL46.arrays_of_arrays_gl.SubroutineFunctionCalls2_var_type_index_13 # timeout (60sec) dEQP-GLES31.functional.fbo.no_attachments.npot_size.31x31 -KHR-GL46.copy_image.functional -KHR-GL46.texture_swizzle.functional # crashes KHR-Single-GL46.enhanced_layouts.xfb_capture_inactive_output_component