From ad09694cba816f317aab8b01bf0f78939c7f7aa1 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 5 Jul 2022 13:47:12 -0400 Subject: [PATCH] lavapipe: EXT_non_seamless_cube_map Reviewed-by: Alyssa Rosenzweig Reviewed-by: Dave Airlie Part-of: --- docs/features.txt | 2 +- docs/relnotes/new_features.txt | 2 +- src/gallium/drivers/zink/ci/zink-lvp-fails.txt | 3 --- src/gallium/frontends/lavapipe/lvp_device.c | 7 +++++++ src/gallium/frontends/lavapipe/lvp_execute.c | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index 56b8adacdf2..a316ac83c6c 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -558,7 +558,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_memory_budget DONE (anv, radv, tu) VK_EXT_memory_priority DONE (radv) VK_EXT_multi_draw DONE (anv, lvp, radv) - VK_EXT_non_seamless_cube_map DONE (anv, radv) + VK_EXT_non_seamless_cube_map DONE (anv, lvp, radv) VK_EXT_pci_bus_info DONE (anv, radv) VK_EXT_physical_device_drm DONE (anv, radv, tu, v3dv) VK_EXT_post_depth_coverage DONE (anv/gfx10+, lvp, radv/gfx10+) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index ccb4a55127e..485405bb134 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -6,7 +6,7 @@ zink and d3d12 GL_EXT_memory_object_win32 and GL_EXT_semaphore_win32 support vertexAttributeInstanceRateZeroDivisor support for lavapipe panfrost Valhall support (conformant OpenGL ES 3.1 on Mali-G57) VK_EXT_primitives_generated_query on RADV -VK_EXT_non_seamless_cube_map on RADV, ANV +VK_EXT_non_seamless_cube_map on RADV, ANV, lavapipe VK_EXT_border_color_swizzle on lavapipe, ANV, turnip, RADV VK_EXT_shader_module_identifier on RADV variablePointers on lavapipe diff --git a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt index 3551f5712ac..26595083288 100644 --- a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt @@ -9,9 +9,6 @@ spec@arb_framebuffer_object@fbo-attachments-blit-scaled-linear,Fail spec@arb_framebuffer_object@fbo-blit-scaled-linear,Fail -# #6270 -spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail - # #6905 glx@glx-swap-copy,Fail diff --git a/src/gallium/frontends/lavapipe/lvp_device.c b/src/gallium/frontends/lavapipe/lvp_device.c index 946b0d89f5e..ed82dba8dd4 100644 --- a/src/gallium/frontends/lavapipe/lvp_device.c +++ b/src/gallium/frontends/lavapipe/lvp_device.c @@ -156,6 +156,7 @@ static const struct vk_device_extension_table lvp_device_extensions_supported = .EXT_index_type_uint8 = true, .EXT_inline_uniform_block = true, .EXT_multi_draw = true, + .EXT_non_seamless_cube_map = true, .EXT_pipeline_creation_feedback = true, .EXT_pipeline_creation_cache_control = true, .EXT_post_depth_coverage = true, @@ -775,6 +776,12 @@ VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceFeatures2( features->borderColorSwizzleFromImage = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: { + VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT *features = + (VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT *)ext; + features->nonSeamlessCubeMap = true; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: { VkPhysicalDeviceLineRasterizationFeaturesEXT *features = (VkPhysicalDeviceLineRasterizationFeaturesEXT *)ext; diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index abec51f448a..949f58dc640 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -1037,7 +1037,7 @@ static void fill_sampler(struct pipe_sampler_state *ss, ss->normalized_coords = !samp->create_info.unnormalizedCoordinates; ss->compare_mode = samp->create_info.compareEnable ? PIPE_TEX_COMPARE_R_TO_TEXTURE : PIPE_TEX_COMPARE_NONE; ss->compare_func = samp->create_info.compareOp; - ss->seamless_cube_map = true; + ss->seamless_cube_map = !(samp->create_info.flags & VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT); ss->reduction_mode = samp->reduction_mode; memcpy(&ss->border_color, &samp->border_color, sizeof(union pipe_color_union));