diff --git a/deps/moltenvk/include/MoltenVK/mvk_config.h b/deps/moltenvk/include/MoltenVK/mvk_config.h index 26a0cbbc..93576324 100644 --- a/deps/moltenvk/include/MoltenVK/mvk_config.h +++ b/deps/moltenvk/include/MoltenVK/mvk_config.h @@ -32,7 +32,7 @@ extern "C" { /** * This header is obsolete and deprecated, and is provided for legacy compatibility only. * - * To configure MoltenVK, use one of the following mechanisms, + * To configure MoltenVK, use one of the following mechanisms, * as documented in MoltenVK_Configuration_Parameters.md: * * - The standard Vulkan VK_EXT_layer_settings extension (layer name "MoltenVK"). diff --git a/deps/moltenvk/include/MoltenVK/mvk_private_api.h b/deps/moltenvk/include/MoltenVK/mvk_private_api.h index de1cdc9c..f98e101d 100644 --- a/deps/moltenvk/include/MoltenVK/mvk_private_api.h +++ b/deps/moltenvk/include/MoltenVK/mvk_private_api.h @@ -44,7 +44,7 @@ typedef unsigned long MTLArgumentBuffersTier; */ -#define MVK_PRIVATE_API_VERSION 41 +#define MVK_PRIVATE_API_VERSION 42 #pragma mark - @@ -64,7 +64,7 @@ typedef unsigned long MTLArgumentBuffersTier; */ #define MVK_VERSION_MAJOR 1 #define MVK_VERSION_MINOR 2 -#define MVK_VERSION_PATCH 9 +#define MVK_VERSION_PATCH 10 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) @@ -124,9 +124,10 @@ typedef enum MVKConfigTraceVulkanCalls { /** Identifies the scope for Metal to run an automatic GPU capture for diagnostic debugging purposes. */ typedef enum MVKConfigAutoGPUCaptureScope { - MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_NONE = 0, /**< No automatic GPU capture. */ - MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_DEVICE = 1, /**< Automatically capture all GPU activity during the lifetime of a VkDevice. */ - MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_FRAME = 2, /**< Automatically capture all GPU activity during the rendering and presentation of the first frame. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_NONE = 0, /**< No automatic GPU capture. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_DEVICE = 1, /**< Automatically capture all GPU activity during the lifetime of a VkDevice. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_FRAME = 2, /**< Automatically capture all GPU activity during the rendering and presentation of the first frame. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_ON_DEMAND = 3, /**< Capture all GPU activity when signaled on a temporary named pipe. */ MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_MAX_ENUM = 0x7FFFFFFF } MVKConfigAutoGPUCaptureScope; @@ -139,14 +140,6 @@ typedef enum MVKConfigAdvertiseExtensionBits { } MVKConfigAdvertiseExtensionBits; typedef VkFlags MVKConfigAdvertiseExtensions; -/** Identifies the use of Metal Argument Buffers. */ -typedef enum MVKUseMetalArgumentBuffers { - MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_NEVER = 0, /**< Don't use Metal Argument Buffers. */ - MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_ALWAYS = 1, /**< Use Metal Argument Buffers for all pipelines. */ - MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_DESCRIPTOR_INDEXING = 2, /**< Use Metal Argument Buffers only if VK_EXT_descriptor_indexing extension is enabled. */ - MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_MAX_ENUM = 0x7FFFFFFF -} MVKUseMetalArgumentBuffers; - /** Identifies the Metal functionality used to support Vulkan semaphore functionality (VkSemaphore). */ typedef enum MVKVkSemaphoreSupportStyle { MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE = 0, /**< Limit Vulkan to a single queue, with no explicit semaphore synchronization, and use Metal's implicit guarantees that all operations submitted to a queue will give the same result as if they had been run in submission order. */ @@ -239,7 +232,7 @@ typedef struct { uint32_t apiVersionToAdvertise; /**< MVK_CONFIG_API_VERSION_TO_ADVERTISE */ MVKConfigAdvertiseExtensions advertiseExtensions; /**< MVK_CONFIG_ADVERTISE_EXTENSIONS */ VkBool32 resumeLostDevice; /**< MVK_CONFIG_RESUME_LOST_DEVICE */ - MVKUseMetalArgumentBuffers useMetalArgumentBuffers; /**< MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS */ + VkBool32 useMetalArgumentBuffers; /**< MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS */ MVKConfigCompressionAlgorithm shaderSourceCompressionAlgorithm; /**< MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM */ VkBool32 shouldMaximizeConcurrentCompilation; /**< MVK_CONFIG_SHOULD_MAXIMIZE_CONCURRENT_COMPILATION */ float timestampPeriodLowPassAlpha; /**< MVK_CONFIG_TIMESTAMP_PERIOD_LOWPASS_ALPHA */ @@ -351,8 +344,8 @@ typedef struct { uint32_t minSubgroupSize; /**< The minimum number of threads in a SIMD-group. */ VkBool32 textureBarriers; /**< If true, texture barriers are supported within Metal render passes. Deprecated. Will always be false on all platforms. */ VkBool32 tileBasedDeferredRendering; /**< If true, this device uses tile-based deferred rendering. */ - VkBool32 argumentBuffers; /**< If true, Metal argument buffers are supported. */ - VkBool32 descriptorSetArgumentBuffers; /**< If true, a Metal argument buffer can be assigned to a descriptor set, and used on any pipeline and pipeline stage. If false, a different Metal argument buffer must be used for each pipeline-stage/descriptor-set combination. */ + VkBool32 argumentBuffers; /**< If true, Metal argument buffers are supported on the platform. */ + VkBool32 descriptorSetArgumentBuffers; /**< If true, Metal argument buffers can be used for descriptor sets. */ MVKFloatRounding clearColorFloatRounding; /**< Identifies the type of rounding Metal uses for MTLClearColor float to integer conversions. */ MVKCounterSamplingFlags counterSamplingPoints; /**< Identifies the points where pipeline GPU counter sampling may occur. */ VkBool32 programmableSamplePositions; /**< If true, programmable MSAA sample positions are supported. */ @@ -363,6 +356,7 @@ typedef struct { VkBool32 dynamicVertexStride; /**< If true, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE is supported. */ VkBool32 needsCubeGradWorkaround; /**< If true, sampling from cube textures with explicit gradients is broken and needs a workaround. */ VkBool32 nativeTextureAtomics; /**< If true, atomic operations on textures are supported natively. */ + VkBool32 needsArgumentBufferEncoders; /**< If true, Metal argument buffer encoders are needed to populate argument buffer content. */ } MVKPhysicalDeviceMetalFeatures; diff --git a/deps/moltenvk/lib/libMoltenVK-static.a b/deps/moltenvk/lib/libMoltenVK-static.a index 5ea430d0..4b132832 100644 Binary files a/deps/moltenvk/lib/libMoltenVK-static.a and b/deps/moltenvk/lib/libMoltenVK-static.a differ