3118 Commits

Author SHA1 Message Date
Bill Hollings
3d7f996f6a
Merge pull request #1918 from billhollings/accumulate-render-stages
Accumulate render stages when a resource is used by multiple descriptor bindings.
2023-05-23 16:55:51 -04:00
Bill Hollings
b863ecef4d Accumulate render stages when a resource is used by multiple descriptor bindings. 2023-05-23 13:13:19 -04:00
Bill Hollings
a832e3805a
Merge pull request #1916 from billhollings/sdk-1.3.250
Update dependency libraries to match Vulkan SDK 1.3.250.
2023-05-23 11:06:02 -04:00
Bill Hollings
c231c90dd4 Update dependency libraries to match Vulkan SDK 1.3.250.
- Update Whats New document.
2023-05-22 20:00:14 -04:00
Bill Hollings
1a386e0493
Merge pull request #1913 from italomandara/update-spirv-cross-revision
Update SPIRV-Cross revision to fix explicit LOD workaround regression
2023-05-21 07:19:58 -04:00
Italo Mandara
0125e5b739 Revert "Allow to disable Explicit LOD Workaround"
This reverts commit 6f3a2b709fbfcfdf7dc077b80b12f02463cc07b1.
2023-05-21 00:27:16 +01:00
Italo Mandara
6c633a7a18 update SPIRV-Cross revision to include explicit LOD workaround regression fix 2023-05-21 00:26:44 +01:00
Bill Hollings
b3ae0f48d0
Merge pull request #1911 from etang-cw/NoAbortOnCompilationFailure
Check if shader compiled before adding it to a pipeline
2023-05-18 11:47:46 -04:00
Evan Tang
75b4d26fbc Check if shader compiled before adding it to a pipeline
Prevents Metal from aborting when you try to set a null function on the descriptor
2023-05-17 15:47:47 -05:00
Bill Hollings
ae0ee6a012
Merge pull request #1908 from billhollings/fix-deviceUUID
Populate deviceUUID from MTLDevice location and peer group info.
2023-05-17 15:09:46 -04:00
Bill Hollings
665ef6df13 Improve support for deviceUUID and deviceLUID.
- MTLDevice registryID is not constant across OS reboots,
  which is not conformant with deviceUUID requirements.
- Replace with combination of MTLDevice location, locationNumber,
  peerGroupID, and peerIndex, which should define uniqueness,
  and should be constant across OS reboots.
- Populate deviceLUID from MTLDevice registryID.
2023-05-17 14:50:48 -04:00
Bill Hollings
6111aabc8f
Merge pull request #1910 from billhollings/fix-ts-qp
Do not fail on request for timestamp query pool that is too large.
2023-05-17 10:50:23 -04:00
Bill Hollings
d29092ab78 Do not fail on request for timestamp query pool that is too large.
- Report error, but do not fail on request for timestamp query pool
  that is too large for MTLCounterSampleBuffer.
- Change reported error to VK_ERROR_OUT_OF_DEVICE_MEMORY and clarify
  text of error reported when timestamp query pool is too large.
- Clarify error reported for occlusion query pool errors (unrelated).
2023-05-16 17:26:26 -04:00
Bill Hollings
44c3063439
Merge pull request #1906 from billhollings/ensure-present-time
Ensure swapchain image presented time is always populated when requested.
2023-05-15 19:09:40 -04:00
Bill Hollings
65ce195a6f Ensure swapchain image presented time is always populated when requested.
If Metal reports zero presentedTime, and desired presentation
time has not been set by app, use the current time.
2023-05-15 18:47:22 -04:00
Bill Hollings
9c55ef3116
Merge pull request #1905 from billhollings/id-unsupp-dvc-feat-flags
Identify each unsupported device feature flag that the app attempts to enable.
2023-05-15 15:49:45 -04:00
Bill Hollings
4893f78b29 Identify each unsupported device feature flag that the app attempts to be enable.
- Make MVKDevice::enableFeatures() functions into templates to pass struct type.
- Add mvkGetAddressOfFirstMember() to retrieve the address of the first member of
  a struct, taking into consideration whether the struct has a Vulkan pNext member.
- Add mvk::getTypeName() and mvk::getOrdinalSuffix() string functions.
2023-05-15 15:14:30 -04:00
Bill Hollings
7d4f5745f7
Merge pull request #1903 from ChibiDenDen/simulator_feature_discovery_fix
Fix simulator feature discovery
2023-05-13 12:28:07 -04:00
Bill Hollings
9bdc29a5ec
Merge pull request #1902 from etang-cw/FixReorderCtor
Fix reorder-ctor warning
2023-05-13 12:05:40 -04:00
ChibiDenDen
0139b95849 Fix simulator feature discovery
Fix depth clamp and texture swizzle feature discovery on simulator builds

Both of these features are not supported by the iphone simulator
and leads to crashes when used
2023-05-12 23:41:46 +03:00
Evan Tang
47ce47ad4c Fix reorder-ctor warning 2023-05-12 14:10:14 -05:00
Bill Hollings
734a185170
Merge pull request #1898 from etang-cw/PushBindPoint
Respect the bind point supplied to vkCmdBindDescriptorSets / vkCmdPushDescriptorSets
2023-05-12 14:42:26 -04:00
Bill Hollings
d3b64c8c53
Merge pull request #1900 from Steveice10/release-workflow-patch
Make the GitHub Actions release workflow more lenient.
2023-05-12 14:13:19 -04:00
Evan Tang
1b6750bef8 Respect the bind point supplied to vkCmdBindDescriptorSets 2023-05-12 13:00:06 -05:00
Steveice10
9c72022ac3
Make the GitHub Actions release workflow more lenient. 2023-05-12 10:11:11 -07:00
Bill Hollings
c893a0380a
Merge pull request #1897 from Steveice10/main
Update release action artifact glob.
2023-05-11 13:38:40 -04:00
Steveice10
0618c43070 Update release action artifact glob. 2023-05-10 23:18:05 -07:00
Bill Hollings
dd5faf2135
Merge pull request #1896 from billhollings/ci-reduce-artifact-sizes
GitHub CI streamline uploaded artifact sizes.
2023-05-10 17:47:13 -04:00
Bill Hollings
3247bd465d GitHub CI streamline uploaded artifact sizes.
- Reinstate per-platform upload artifacts.
- Don't upload shader converter binaries.
2023-05-10 17:27:08 -04:00
Bill Hollings
5bce402a6f
Merge pull request #1895 from Steveice10/main
Add GitHub Actions workflow for automatically creating releases.
2023-05-10 16:03:16 -04:00
Steveice10
f19ac2c03d Add GitHub Actions workflow for automatically creating releases. 2023-05-09 20:50:03 -07:00
Bill Hollings
fbaba84b32
Merge pull request #1893 from billhollings/ci-improvements
GitHub CI improvements.
2023-05-09 11:34:11 -04:00
Bill Hollings
ab5429b18c GitHub CI improvements.
- Build one universal build, instead of per-platform.
- Upload this single build artifact to GitHub.
- Upgrade to v3 of action dependencies to remove Node.js deprecation warnings.
- Avoid use of deprecated set-output GitHub action command.
- Use macOS 13 and Xcode 14.3.
- README.md document access to binary artifacts.
2023-05-09 00:12:16 -04:00
Bill Hollings
dfc0af84aa
Merge pull request #1890 from billhollings/fix-display-timing-race-condition
Fix race condition when updating values in VkPastPresentationTimingGOOGLE.
2023-05-05 17:57:40 -04:00
Bill Hollings
9e466699e5 Fix race condition when updating values in VkPastPresentationTimingGOOGLE.
- MVKPresentableSwapchainImage::presentCAMetalDrawable() and
  addPresentedHandler() pass MVKImagePresentInfo by value instead
  of reference, to avoid callbacks colliding with tracked
  MVKImagePresentInfos being cleared when
  MVKQueuePresentSurfaceSubmission is destroyed after it is run.
2023-05-05 14:45:43 -04:00
Bill Hollings
af9544d4a5
Merge pull request #1889 from billhollings/rmv-config2
Remove vkGetMoltenVKConfiguration2MVK() and vkSetMoltenVKConfiguration2MVK()
2023-05-05 12:33:40 -04:00
Bill Hollings
cde220a277 Remove vkGetMoltenVKConfiguration2MVK() and vkSetMoltenVKConfiguration2MVK().
Also undeprecate the original vkGet/SetMoltenVKConfigurationMVK().

In expectation of the upcoming VK_EXT_layer_settings extension, it is felt that
adding these additional functions at this time would be confusing to app devs.
2023-05-05 11:41:06 -04:00
Bill Hollings
cfa0ed2812
Merge pull request #1886 from billhollings/reinstate-mvk-extn
Reinstate VK_MVK_moltenvk extension and add simplified config functions.
2023-05-04 12:31:07 -04:00
Bill Hollings
3db62a1d7b Reinstate VK_MVK_moltenvk extension and add simplified config functions.
- Reinstate VK_MVK_moltenvk extension, but log warning message when it is enabled.
- Add vkGetMoltenVKConfiguration2MVK() and vkSetMoltenVKConfiguration2MVK()
  to set config without passing a dummy VkInstance, and deprecate
  vkGetMoltenVKConfigurationMVK() and vkSetMoltenVKConfigurationMVK().
2023-05-04 11:08:16 -04:00
Bill Hollings
53a4eb26f2
Merge pull request #1885 from billhollings/fix-mtl-valid-err-depth-swizzle
Avoid Metal validation warning when depth component swizzled away
2023-05-04 00:01:19 -04:00
Bill Hollings
789d432156 Avoid Metal validation warning when depth component swizzled away.
- Set Metal depth store action to MTLStoreActionDontCare when
  depth attachment exists, but depth component has been swizzled away.
2023-05-03 22:39:35 -04:00
Bill Hollings
d2f57fc554
Merge pull request #1881 from billhollings/deprecate-VK_MVK_moltenvk-extension
Deprecate the obsolete and non-standard VK_MVK_moltenvk extension.
2023-05-03 12:46:37 -04:00
Bill Hollings
f33e718da4 Expose pointers to functions from removed VK_MVK_moltenvk extension.
- MVKInstance reorganize list of entry points for visual clarity (unrelated).
- Fixes to deprecation documentation (unrelated).
- mvkStringsAreEqual() add small performance optimization (unrelated).
2023-05-03 10:15:53 -04:00
Bill Hollings
937b0bf943 Deprecate the obsolete and non-standard VK_MVK_moltenvk extension.
The VK_MVK_moltenvk extension has never been brought inside Vulkan, and
the functions have never been supported by the Vulkan Loader and Layers.
Most of the functionality has long been replaced by the official
VK_metal_objects extension.

- Remove VK_MVK_moltenvk as an advertised extension.
- Refactor vk_mvk_moltenvk.h header file into separate headers files:
    - mvk_config.h - Valid public config functions
    - mvk_private_api.h - Valid development debugging functions used with care
    - mvk_deprecated_api.h - Formally deprecated functions.
- Retain skeleton vk_mvk_moltenvk.h header file for legacy compatibility only.
- Update documentation and header comments to explain changes.
2023-05-01 17:30:21 -04:00
Bill Hollings
e50cb32127
Merge pull request #1878 from billhollings/dyn-rend-separate-depth-stencil
Support separate depth and stencil attachments during dynamic rendering
2023-04-28 12:38:29 -04:00
Bill Hollings
fd6b97317d Clear attachments support separate depth and stencil attachments.
- Also rename kMVKCachedColorAttachmentCount to kMVKMaxColorAttachmentCount and
  kMVKCachedViewportScissorCount to kMVKMaxViewportScissorCount and (unrelated)
2023-04-27 13:10:30 -04:00
Bill Hollings
331cea9f08
Merge pull request #1877 from billhollings/pipeline-compress-older-os-fix
Disable pipeline cache compression prior to macOS 10.15 and iOS/tvOS 13.0
2023-04-26 06:53:07 -04:00
Bill Hollings
abb12a5288 Fix Metal validation errors with dynamic rendering.
- MVKPipeline validate depth & stencil formats before setting frag shader depth
  and stencil builtins, and before setting formats in MTLRenderPipelineDescriptor.
- MVKCmdClearAttachments always set depth/stencil format if subpass includes
  a depth or stencil attachment, even if they are not being cleared.
- MVKRenderingAttachmentIterator add synthetic attachment if depth or stencil
  attachment is not provided, but image format supports both depth and stencil.
2023-04-26 06:29:07 -04:00
Bill Hollings
4aa2b6dd9f Support separate depth and stencil attachments during dynamic rendering.
- MVKRenderSubpass add separate getDepthFormat() & getStencilFormat(),
  and isDepthAttachmentUsed() & isStencilAttachmentUsed() and use
  instead of testing pixel format for depth and stencil components.
- Add MVKRenderingAttachmentIterator class to consistently iterate,
  and take actions, on the attachments in VkRenderingInfo to create
  synthetic MVKRenderPass and extract image views and clear colors.
- Remove mvkCreateRenderPass() and mvkCreateFramebuffer() in favor
  of additional constructors, and remove mvkGetDepthStencilFormat() in
  favor of retrieving formats for separate depth and stencil attachments.
- MVKRenderpass constructors reorganize order of adding attachments and
  subpasses, and connecting the two.
- Renmame MVKRenderPassAttachment to MVKAttachmentDescription.
- MVKPipeline reorganize member variables to minimize gaps in content
  and remove unnecessary _isRasterizingDepthStencil member var (unrelated).
2023-04-24 15:23:46 -04:00
Bill Hollings
fc8e8182ee Disable pipeline cache compression prior to macOS 10.15 and iOS/tvOS 13.0. 2023-04-24 15:01:41 -04:00