lavapipe: EXT_non_seamless_cube_map
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tue, 5 Jul 2022 17:47:12 +0000 (13:47 -0400)
committerMarge Bot <emma+marge@anholt.net>
Mon, 25 Jul 2022 00:50:14 +0000 (00:50 +0000)
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17711>

docs/features.txt
docs/relnotes/new_features.txt
src/gallium/drivers/zink/ci/zink-lvp-fails.txt
src/gallium/frontends/lavapipe/lvp_device.c
src/gallium/frontends/lavapipe/lvp_execute.c

index 56b8ada..a316ac8 100644 (file)
@@ -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+)
index ccb4a55..485405b 100644 (file)
@@ -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
index 3551f57..2659508 100644 (file)
@@ -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
 
index 946b0d8..ed82dba 100644 (file)
@@ -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;
index abec51f..949f58d 100644 (file)
@@ -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));