Module: Mesa
Branch: main
Commit: 7f1050f207e93601d84be3cae82a327f44974db5
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7f1050f207e93601d84be3cae82a327f44974db5

Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Mar 18 10:00:44 2022 -0400

lavapipe: EXT_inline_uniform_block

Reviewed-by: Dave Airlie <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15457>

---

 src/gallium/frontends/lavapipe/lvp_device.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/gallium/frontends/lavapipe/lvp_device.c 
b/src/gallium/frontends/lavapipe/lvp_device.c
index df144b0d157..3e426b1b2b1 100644
--- a/src/gallium/frontends/lavapipe/lvp_device.c
+++ b/src/gallium/frontends/lavapipe/lvp_device.c
@@ -145,6 +145,7 @@ static const struct vk_device_extension_table 
lvp_device_extensions_supported =
    .EXT_host_query_reset                  = true,
    .EXT_image_robustness                  = true,
    .EXT_index_type_uint8                  = true,
+   .EXT_inline_uniform_block              = true,
    .EXT_multi_draw                        = true,
    .EXT_pipeline_creation_feedback        = true,
    .EXT_pipeline_creation_cache_control   = true,
@@ -805,6 +806,13 @@ VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceFeatures2(
          features->formatA4B4G4R4 = true;
          break;
       }
+      case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
+         VkPhysicalDeviceInlineUniformBlockFeatures *features =
+            (VkPhysicalDeviceInlineUniformBlockFeatures*)ext;
+         features->inlineUniformBlock = true;
+         features->descriptorBindingInlineUniformBlockUpdateAfterBind = true;
+         break;
+      }
       case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: 
{
          VkPhysicalDeviceCustomBorderColorFeaturesEXT *features =
             (VkPhysicalDeviceCustomBorderColorFeaturesEXT *)ext;
@@ -1087,6 +1095,16 @@ VKAPI_ATTR void VKAPI_CALL 
lvp_GetPhysicalDeviceProperties2(
                                         PIPE_CAP_RASTERIZER_SUBPIXEL_BITS);
          break;
       }
+      case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
+         VkPhysicalDeviceInlineUniformBlockProperties *properties =
+            (VkPhysicalDeviceInlineUniformBlockProperties *)ext;
+         properties->maxInlineUniformBlockSize = 
MAX_DESCRIPTOR_UNIFORM_BLOCK_SIZE;
+         properties->maxPerStageDescriptorInlineUniformBlocks = 
MAX_PER_STAGE_DESCRIPTOR_UNIFORM_BLOCKS;
+         properties->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 
MAX_PER_STAGE_DESCRIPTOR_UNIFORM_BLOCKS;
+         properties->maxDescriptorSetInlineUniformBlocks = 
MAX_PER_STAGE_DESCRIPTOR_UNIFORM_BLOCKS;
+         properties->maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 
MAX_PER_STAGE_DESCRIPTOR_UNIFORM_BLOCKS;
+         break;
+      }
       case 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
          VkPhysicalDeviceExternalMemoryHostPropertiesEXT *properties =
             (VkPhysicalDeviceExternalMemoryHostPropertiesEXT *)ext;

Reply via email to