mirror of
https://github.com/ZDoom/zdoom-macos-deps.git
synced 2024-12-03 17:02:02 +00:00
deps: update moltenvk to 1.2.6
This commit is contained in:
parent
9e38666b87
commit
c017193111
4 changed files with 90 additions and 36 deletions
52
deps/moltenvk/include/MoltenVK/mvk_config.h
vendored
52
deps/moltenvk/include/MoltenVK/mvk_config.h
vendored
|
@ -45,13 +45,13 @@ extern "C" {
|
|||
*/
|
||||
#define MVK_VERSION_MAJOR 1
|
||||
#define MVK_VERSION_MINOR 2
|
||||
#define MVK_VERSION_PATCH 5
|
||||
#define MVK_VERSION_PATCH 6
|
||||
|
||||
#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)
|
||||
|
||||
|
||||
#define MVK_CONFIGURATION_API_VERSION 37
|
||||
#define MVK_CONFIGURATION_API_VERSION 38
|
||||
|
||||
/** Identifies the level of logging MoltenVK should be limited to outputting. */
|
||||
typedef enum MVKConfigLogLevel {
|
||||
|
@ -138,10 +138,11 @@ typedef enum MVKConfigCompressionAlgorithm {
|
|||
|
||||
/** Identifies the style of activity performance logging to use. */
|
||||
typedef enum MVKConfigActivityPerformanceLoggingStyle {
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT = 0, /**< Repeatedly log performance after a configured number of frames. */
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_IMMEDIATE = 1, /**< Log immediately after each performance measurement. */
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_DEVICE_LIFETIME = 2, /**< Log at the end of the VkDevice lifetime. This is useful for one-shot apps such as testing frameworks. */
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_MAX_ENUM = 0x7FFFFFFF,
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT = 0, /**< Repeatedly log performance after a configured number of frames. */
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_IMMEDIATE = 1, /**< Log immediately after each performance measurement. */
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_DEVICE_LIFETIME = 2, /**< Log at the end of the VkDevice lifetime. This is useful for one-shot apps such as testing frameworks. */
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_DEVICE_LIFETIME_ACCUMULATE = 3, /**< Log at the end of the VkDevice lifetime, but continue to accumulate across mulitiple VkDevices throughout the app process. This is useful for testing frameworks that create many VkDevices serially. */
|
||||
MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_MAX_ENUM = 0x7FFFFFFF,
|
||||
} MVKConfigActivityPerformanceLoggingStyle;
|
||||
|
||||
/**
|
||||
|
@ -190,7 +191,7 @@ typedef struct {
|
|||
* and the changed value will immediately effect subsequent MoltenVK behaviour.
|
||||
*
|
||||
* The initial value or this parameter is set by the
|
||||
* MVK_DEBUG
|
||||
* MVK_CONFIG_DEBUG
|
||||
* runtime environment variable or MoltenVK compile-time build setting.
|
||||
* If neither is set, the value of this parameter is false if MoltenVK was
|
||||
* built in Release mode, and true if MoltenVK was built in Debug mode.
|
||||
|
@ -786,6 +787,8 @@ typedef struct {
|
|||
/**
|
||||
* Controls when MoltenVK should log activity performance events.
|
||||
*
|
||||
* The performanceTracking parameter must also be enabled.
|
||||
*
|
||||
* The value of this parameter must be changed before creating a VkDevice,
|
||||
* for the change to take effect.
|
||||
*
|
||||
|
@ -916,6 +919,9 @@ typedef struct {
|
|||
/**
|
||||
* Maximize the concurrent executing compilation tasks.
|
||||
*
|
||||
* The value of this parameter must be changed before creating a VkInstance,
|
||||
* for the change to take effect.
|
||||
*
|
||||
* The initial value or this parameter is set by the
|
||||
* MVK_CONFIG_SHOULD_MAXIMIZE_CONCURRENT_COMPILATION
|
||||
* runtime environment variable or MoltenVK compile-time build setting.
|
||||
|
@ -923,6 +929,38 @@ typedef struct {
|
|||
*/
|
||||
VkBool32 shouldMaximizeConcurrentCompilation;
|
||||
|
||||
/**
|
||||
* This parameter is ignored on Apple Silicon devices.
|
||||
*
|
||||
* Non-Apple GPUs can have a dynamic timestamp period, which varies over time according to GPU
|
||||
* workload. Depending on how often the app samples the VkPhysicalDeviceLimits::timestampPeriod
|
||||
* value using vkGetPhysicalDeviceProperties(), the app may want up-to-date, but potentially
|
||||
* volatile values, or it may find average values more useful.
|
||||
*
|
||||
* The value of this parameter sets the alpha (A) value of a simple lowpass filter
|
||||
* on the timestampPeriod value, of the form:
|
||||
*
|
||||
* TPout = (1 - A)TPout + (A * TPin)
|
||||
*
|
||||
* The alpha value can be set to a float between 0.0 and 1.0. Values of alpha closer to
|
||||
* 0.0 cause the value of timestampPeriod to vary slowly over time and be less volatile,
|
||||
* and values of alpha closer to 1.0 cause the value of timestampPeriod to vary quickly
|
||||
* and be more volatile.
|
||||
*
|
||||
* Apps that query the timestampPeriod value infrequently will prefer low volatility, whereas
|
||||
* apps that query frequently may prefer higher volatility, to track more recent changes.
|
||||
*
|
||||
* The value of this parameter can be changed at any time, and will affect subsequent queries.
|
||||
*
|
||||
* The initial value or this parameter is set by the
|
||||
* MVK_CONFIG_TIMESTAMP_PERIOD_LOWPASS_ALPHA
|
||||
* runtime environment variable or MoltenVK compile-time build setting.
|
||||
* If neither is set, this parameter is set to 1.0 by default,
|
||||
* indicating that the timestampPeriod will vary relatively slowly,
|
||||
* with the expectation that the app is querying this value infrequently.
|
||||
*/
|
||||
float timestampPeriodLowPassAlpha;
|
||||
|
||||
} MVKConfiguration;
|
||||
|
||||
|
||||
|
|
11
deps/moltenvk/include/MoltenVK/mvk_datatypes.h
vendored
11
deps/moltenvk/include/MoltenVK/mvk_datatypes.h
vendored
|
@ -383,6 +383,9 @@ MTLViewport mvkMTLViewportFromVkViewport(VkViewport vkViewport);
|
|||
/** Returns the Metal MTLScissorRect corresponding to the specified Vulkan VkRect2D. */
|
||||
MTLScissorRect mvkMTLScissorRectFromVkRect2D(VkRect2D vkRect);
|
||||
|
||||
/** Returns the Vulkan VkRect2D corresponding to the specified Metal MTLScissorRect. */
|
||||
VkRect2D mvkVkRect2DFromMTLScissorRect(MTLScissorRect mtlScissorRect);
|
||||
|
||||
/** Returns the Metal MTLCompareFunction corresponding to the specified Vulkan VkCompareOp, */
|
||||
MTLCompareFunction mvkMTLCompareFunctionFromVkCompareOp(VkCompareOp vkOp);
|
||||
|
||||
|
@ -414,13 +417,13 @@ MTLWinding mvkMTLWindingFromSpvExecutionMode(uint32_t spvMode);
|
|||
MTLTessellationPartitionMode mvkMTLTessellationPartitionModeFromSpvExecutionMode(uint32_t spvMode);
|
||||
|
||||
/**
|
||||
* Returns the combination of Metal MTLRenderStage bits corresponding to the specified Vulkan VkPiplineStageFlags,
|
||||
* Returns the combination of Metal MTLRenderStage bits corresponding to the specified Vulkan VkPipelineStageFlags2,
|
||||
* taking into consideration whether the barrier is to be placed before or after the specified pipeline stages.
|
||||
*/
|
||||
MTLRenderStages mvkMTLRenderStagesFromVkPipelineStageFlags(VkPipelineStageFlags vkStages, bool placeBarrierBefore);
|
||||
MTLRenderStages mvkMTLRenderStagesFromVkPipelineStageFlags(VkPipelineStageFlags2 vkStages, bool placeBarrierBefore);
|
||||
|
||||
/** Returns the combination of Metal MTLBarrierScope bits corresponding to the specified Vulkan VkAccessFlags. */
|
||||
MTLBarrierScope mvkMTLBarrierScopeFromVkAccessFlags(VkAccessFlags vkAccess);
|
||||
/** Returns the combination of Metal MTLBarrierScope bits corresponding to the specified Vulkan VkAccessFlags2. */
|
||||
MTLBarrierScope mvkMTLBarrierScopeFromVkAccessFlags(VkAccessFlags2 vkAccess);
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Geometry conversions
|
||||
|
|
63
deps/moltenvk/include/MoltenVK/mvk_private_api.h
vendored
63
deps/moltenvk/include/MoltenVK/mvk_private_api.h
vendored
|
@ -44,7 +44,7 @@ typedef unsigned long MTLArgumentBuffersTier;
|
|||
*/
|
||||
|
||||
|
||||
#define MVK_PRIVATE_API_VERSION 37
|
||||
#define MVK_PRIVATE_API_VERSION 38
|
||||
|
||||
|
||||
/** Identifies the type of rounding Metal uses for float to integer conversions in particular calculatons. */
|
||||
|
@ -151,47 +151,59 @@ typedef struct {
|
|||
MTLArgumentBuffersTier argumentBuffersTier; /**< The argument buffer tier available on this device, as a Metal enumeration. */
|
||||
VkBool32 needsSampleDrefLodArrayWorkaround; /**< If true, sampling from arrayed depth images with explicit LoD is broken and needs a workaround. */
|
||||
VkDeviceSize hostMemoryPageSize; /**< The size of a page of host memory on this platform. */
|
||||
VkBool32 dynamicVertexStride; /**< If true, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE is supported. */
|
||||
} MVKPhysicalDeviceMetalFeatures;
|
||||
|
||||
/** MoltenVK performance of a particular type of activity. */
|
||||
/**
|
||||
* MoltenVK performance of a particular type of activity.
|
||||
* Durations are recorded in milliseconds. Memory sizes are recorded in kilobytes.
|
||||
*/
|
||||
typedef struct {
|
||||
uint32_t count; /**< The number of activities of this type. */
|
||||
double latestDuration; /**< The latest (most recent) duration of the activity, in milliseconds. */
|
||||
double averageDuration; /**< The average duration of the activity, in milliseconds. */
|
||||
double minimumDuration; /**< The minimum duration of the activity, in milliseconds. */
|
||||
double maximumDuration; /**< The maximum duration of the activity, in milliseconds. */
|
||||
uint32_t count; /**< The number of activities of this type. */
|
||||
double latest; /**< The latest (most recent) value of the activity. */
|
||||
double average; /**< The average value of the activity. */
|
||||
double minimum; /**< The minimum value of the activity. */
|
||||
double maximum; /**< The maximum value of the activity. */
|
||||
} MVKPerformanceTracker;
|
||||
|
||||
/** MoltenVK performance of shader compilation activities. */
|
||||
typedef struct {
|
||||
MVKPerformanceTracker hashShaderCode; /** Create a hash from the incoming shader code. */
|
||||
MVKPerformanceTracker spirvToMSL; /** Convert SPIR-V to MSL source code. */
|
||||
MVKPerformanceTracker mslCompile; /** Compile MSL source code into a MTLLibrary. */
|
||||
MVKPerformanceTracker mslLoad; /** Load pre-compiled MSL code into a MTLLibrary. */
|
||||
MVKPerformanceTracker mslCompress; /** Compress MSL source code after compiling a MTLLibrary, to hold it in a pipeline cache. */
|
||||
MVKPerformanceTracker mslDecompress; /** Decompress MSL source code to write the MSL when serializing a pipeline cache. */
|
||||
MVKPerformanceTracker shaderLibraryFromCache; /** Retrieve a shader library from the cache, lazily creating it if needed. */
|
||||
MVKPerformanceTracker functionRetrieval; /** Retrieve a MTLFunction from a MTLLibrary. */
|
||||
MVKPerformanceTracker functionSpecialization; /** Specialize a retrieved MTLFunction. */
|
||||
MVKPerformanceTracker pipelineCompile; /** Compile MTLFunctions into a pipeline. */
|
||||
MVKPerformanceTracker glslToSPRIV; /** Convert GLSL to SPIR-V code. */
|
||||
MVKPerformanceTracker hashShaderCode; /** Create a hash from the incoming shader code, in milliseconds. */
|
||||
MVKPerformanceTracker spirvToMSL; /** Convert SPIR-V to MSL source code, in milliseconds. */
|
||||
MVKPerformanceTracker mslCompile; /** Compile MSL source code into a MTLLibrary, in milliseconds. */
|
||||
MVKPerformanceTracker mslLoad; /** Load pre-compiled MSL code into a MTLLibrary, in milliseconds. */
|
||||
MVKPerformanceTracker mslCompress; /** Compress MSL source code after compiling a MTLLibrary, to hold it in a pipeline cache, in milliseconds. */
|
||||
MVKPerformanceTracker mslDecompress; /** Decompress MSL source code to write the MSL when serializing a pipeline cache, in milliseconds. */
|
||||
MVKPerformanceTracker shaderLibraryFromCache; /** Retrieve a shader library from the cache, lazily creating it if needed, in milliseconds. */
|
||||
MVKPerformanceTracker functionRetrieval; /** Retrieve a MTLFunction from a MTLLibrary, in milliseconds. */
|
||||
MVKPerformanceTracker functionSpecialization; /** Specialize a retrieved MTLFunction, in milliseconds. */
|
||||
MVKPerformanceTracker pipelineCompile; /** Compile MTLFunctions into a pipeline, in milliseconds. */
|
||||
MVKPerformanceTracker glslToSPRIV; /** Convert GLSL to SPIR-V code, in milliseconds. */
|
||||
} MVKShaderCompilationPerformance;
|
||||
|
||||
/** MoltenVK performance of pipeline cache activities. */
|
||||
typedef struct {
|
||||
MVKPerformanceTracker sizePipelineCache; /** Calculate the size of cache data required to write MSL to pipeline cache data stream. */
|
||||
MVKPerformanceTracker writePipelineCache; /** Write MSL to pipeline cache data stream. */
|
||||
MVKPerformanceTracker readPipelineCache; /** Read MSL from pipeline cache data stream. */
|
||||
MVKPerformanceTracker sizePipelineCache; /** Calculate the size of cache data required to write MSL to pipeline cache data stream, in milliseconds. */
|
||||
MVKPerformanceTracker writePipelineCache; /** Write MSL to pipeline cache data stream, in milliseconds. */
|
||||
MVKPerformanceTracker readPipelineCache; /** Read MSL from pipeline cache data stream, in milliseconds. */
|
||||
} MVKPipelineCachePerformance;
|
||||
|
||||
/** MoltenVK performance of queue activities. */
|
||||
typedef struct {
|
||||
MVKPerformanceTracker mtlQueueAccess; /** Create an MTLCommandQueue or access an existing cached instance. */
|
||||
MVKPerformanceTracker mtlCommandBufferCompletion; /** Completion of a MTLCommandBuffer on the GPU, from commit to completion callback. */
|
||||
MVKPerformanceTracker nextCAMetalDrawable; /** Retrieve next CAMetalDrawable from CAMetalLayer during presentation. */
|
||||
MVKPerformanceTracker frameInterval; /** Frame presentation interval (1000/FPS). */
|
||||
MVKPerformanceTracker retrieveMTLCommandBuffer; /** Retrieve a MTLCommandBuffer from a MTLQueue, in milliseconds. */
|
||||
MVKPerformanceTracker commandBufferEncoding; /** Encode a single VkCommandBuffer to a MTLCommandBuffer (excludes MTLCommandBuffer encoding from configured immediate prefilling), in milliseconds. */
|
||||
MVKPerformanceTracker submitCommandBuffers; /** Submit and encode all VkCommandBuffers in a vkQueueSubmit() operation to MTLCommandBuffers (including both prefilled and deferred encoding), in milliseconds. */
|
||||
MVKPerformanceTracker mtlCommandBufferExecution; /** Execute a MTLCommandBuffer on the GPU, from commit to completion callback, in milliseconds. */
|
||||
MVKPerformanceTracker retrieveCAMetalDrawable; /** Retrieve next CAMetalDrawable from a CAMetalLayer, in milliseconds. */
|
||||
MVKPerformanceTracker presentSwapchains; /** Present the swapchains in a vkQueuePresentKHR() on the GPU, from commit to presentation callback, in milliseconds. */
|
||||
MVKPerformanceTracker frameInterval; /** Frame presentation interval (1000/FPS), in milliseconds. */
|
||||
} MVKQueuePerformance;
|
||||
|
||||
/** MoltenVK performance of device activities. */
|
||||
typedef struct {
|
||||
MVKPerformanceTracker gpuMemoryAllocated; /** GPU memory allocated, in kilobytes. */
|
||||
} MVKDevicePerformance;
|
||||
|
||||
/**
|
||||
* MoltenVK performance. You can retrieve a copy of this structure using the vkGetPerformanceStatisticsMVK() function.
|
||||
*
|
||||
|
@ -209,6 +221,7 @@ typedef struct {
|
|||
MVKShaderCompilationPerformance shaderCompilation; /** Shader compilations activities. */
|
||||
MVKPipelineCachePerformance pipelineCache; /** Pipeline cache activities. */
|
||||
MVKQueuePerformance queue; /** Queue activities. */
|
||||
MVKDevicePerformance device; /** Device activities. */
|
||||
} MVKPerformanceStatistics;
|
||||
|
||||
|
||||
|
|
BIN
deps/moltenvk/lib/libMoltenVK-static.a
vendored
BIN
deps/moltenvk/lib/libMoltenVK-static.a
vendored
Binary file not shown.
Loading…
Reference in a new issue