Skip to content

Commit

Permalink
Merge pull request #1431 from billhollings/SDK-1.2.189
Browse files Browse the repository at this point in the history
Update library dependencies to match Vulkan SDK 1.2.189.
  • Loading branch information
billhollings authored Aug 30, 2021
2 parents f5dd310 + bb7af64 commit c1d0332
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 6 deletions.
9 changes: 8 additions & 1 deletion Docs/Whats_New.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,30 @@ Released 2021/08/30
- Vulkan timestamp query pools use Metal GPU counters when available.
- Support resolving attachments with formats that Metal does not natively resolve.
- Support stencil-only partial attachment clearing.
- Support alpha-to-coverage without a color attachment.
- Fix issue where swapchain images were acquired out of order under heavy load.
- Fix issue with `vkCmdBlitImage()` from compressed textures.
- Fix incorrect translation of clear color values on Apple Silicon.
- Fix swizzle of depth and stencil values into RGBA (`float4`) variable in shaders.
- Fix occasional crash when swizzling used but shader swizzling not enabled.
- Fix pipeline barriers not working inside self-dependent subpasses on Apple GPUs.
- Fix GPU race condition when clearing a renderpass input attachment on Apple GPUs.
- Disable `VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT` for
`VK_FORMAT_E5B9G9R9_UFLOAT_PACK32` on macOS Apple Silicon.
- Support alpha-to-coverage without a color attachment.
- Fix execution order of `encodeBindings` for `bufferBindings`.
- Properly ignore non-null pipeline creation pointers that should be ignored.
- Add queue and queue family indices to `MTLCommandBuffer` label.
- Update `VK_MVK_MOLTENVK_SPEC_VERSION` to `32`.
- Update to latest SPIRV-Cross version:
- MSL: Adjust `gl_SampleMaskIn` for sample-shading and/or fixed sample mask.
- MSL: Remove redundant path for `SampleMask`.
- MSL: Fix setting `SPIRVCrossDecorationInterpolantComponentExpr` decoration.
- MSL: Support row-major transpose when storing matrix from constant RHS matrix.
- MSL: Fix casting in constant expressions with different sizes.
- MSL: Fix duplicate `gl_Position` outputs when `gl_Position` defined but unused.
- MSL: Simplify `spvSubgroupBallot()`.
- MSL: Consider that function/private variables can be block-like.
- Track temporary access for `OpArrayLength` result.



Expand Down
2 changes: 1 addition & 1 deletion ExternalRevisions/Vulkan-Headers_repo_revision
Original file line number Diff line number Diff line change
@@ -1 +1 @@
37164a5726f7e6113810f9557903a117498421cf
c5b7a2fa18750e435e91e06a50cdc5451c5b9abd
2 changes: 1 addition & 1 deletion ExternalRevisions/Vulkan-Tools_repo_revision
Original file line number Diff line number Diff line change
@@ -1 +1 @@
dbd221b2bc7acbfe993be40fbfbf4f4a0a1ed816
58051062663477240484c8904459762ad544ba18
2 changes: 1 addition & 1 deletion ExternalRevisions/glslang_repo_revision
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ae2a562936cc8504c9ef2757cceaff163147834f
2fb89a0072ae7316af1c856f22663fde4928128a
8 changes: 6 additions & 2 deletions MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm
Original file line number Diff line number Diff line change
Expand Up @@ -781,7 +781,7 @@
// Metal stage GPU counters need to be configured in a Metal render, compute, or BLIT encoder, meaning that the
// Metal encoder needs to know about any Vulkan timestamp commands that will be executed during the execution
// of a renderpass, or set of Vulkan dispatch or BLIT commands. In addition, there are a very small number of
// staged timestamps (4) that can be tracked in any single render, compute, or BLIT pass, meaning a renderpass
// staged timestamps that can be tracked in any single render, compute, or BLIT pass, meaning a renderpass
// that timestamped after each of many draw calls, would not be trackable. Finally, stage counters are only
// available on tile-based GPU's, which means draw or dispatch calls cannot be individually timestamped.
// We avoid dealing with all this complexity and mismatch between how Vulkan and Metal stage counters operate
Expand All @@ -795,8 +795,12 @@

// With each BLIT pass, consume as many outstanding timestamp queries as possible.
// Attach an query result to each of the available sample buffer attachments in the BLIT pass descriptor.
// MTLMaxBlitPassSampleBuffers was defined in the Metal API as 4, but according to Apple, will be removed
// in Xcode 13 as inaccurate for all platforms. Leave this value at 1 until we can figure out how to
// accurately determine the length of sampleBufferAttachments on each platform.
uint32_t maxMTLBlitPassSampleBuffers = 1; // Was MTLMaxBlitPassSampleBuffers API definition
auto* bpDesc = [[[MTLBlitPassDescriptor alloc] init] autorelease];
for (uint32_t attIdx = 0; attIdx < MTLMaxBlitPassSampleBuffers && qIdx < qCnt; attIdx++, qIdx++) {
for (uint32_t attIdx = 0; attIdx < maxMTLBlitPassSampleBuffers && qIdx < qCnt; attIdx++, qIdx++) {
auto* sbAttDesc = bpDesc.sampleBufferAttachments[attIdx];
auto& tsQry = _timestampStageCounterQueries[qIdx];

Expand Down
Binary file modified Templates/spirv-tools/build.zip
Binary file not shown.

0 comments on commit c1d0332

Please sign in to comment.