Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Geometry shaders #1815

Open
wants to merge 134 commits into
base: geometry-shaders
Choose a base branch
from
Open

Commits on Apr 4, 2023

  1. Configuration menu
    Copy the full SHA
    6f3a2b7 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1861 from italomandara/allow-disable-…

    …explicit-lod-workaround
    
    Allow to disable Explicit LOD Workaround for Apple silicon.
    billhollings authored Apr 4, 2023
    Configuration menu
    Copy the full SHA
    912b2ed View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2023

  1. Several simple maintenance fixes.

    - Fix memory leak when waiting on timeline semaphores.
    - For correctness, set VkPhysicalDeviceLimits::lineWidthGranularity to 1.
    - Update MoltenVK to version 1.2.4.
    - Update Whats_New.md document with recent changes.
    billhollings committed Apr 12, 2023
    Configuration menu
    Copy the full SHA
    5183856 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1865 from billhollings/timeline-semap…

    …hore-mem-leak
    
    Several simple maintenance fixes.
    billhollings authored Apr 12, 2023
    Configuration menu
    Copy the full SHA
    1d213e5 View commit details
    Browse the repository at this point in the history
  3. Support BC compression on iOS/tvOS, where available.

    - Add MVK_XCODE_14_3 macro to compile for iOS/tvOS 16.4 and above.
    - Add support for BC compression on iOS/tvOS 16.4 and above where supported.
    - Consolidate MVKPixelFormats::modifyMTLFormatCapabilities(mtlDev)
      and centralize querying MTLDevice format methods for all platforms.
    billhollings committed Apr 12, 2023
    Configuration menu
    Copy the full SHA
    5092330 View commit details
    Browse the repository at this point in the history
  4. Replace references to macOS 10.16 with 11.0, and standardize use

    of whitespace in MVKPixelFormats::modifyMTLFormatCapabilities().
    billhollings committed Apr 12, 2023
    Configuration menu
    Copy the full SHA
    b0e6df6 View commit details
    Browse the repository at this point in the history
  5. Merge pull request KhronosGroup#1866 from billhollings/ios-support-bc…

    …-compression
    
    Support BC compression on iOS/tvOS, where available.
    billhollings authored Apr 12, 2023
    Configuration menu
    Copy the full SHA
    f99ea66 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2023

  1. Ensure shaders using PhysicalStorageBufferAddresses encode the associ…

    …ated MTLBuffer.
    
    - MVKDevice track VkBuffers marked with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT.
    - Add SPIRVToMSLConversionResultInfo::usesPhysicalStorageBufferAddressesCapability
      to detect and track shaders that use PhysicalStorageBufferAddresses capability,
      and track such shader stages within pipeline.
    - MVKResourcesCommandEncoderState encode usage of VkBuffers marked with
      VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT when pipeline uses
      PhysicalStorageBufferAddresses capability.
    - Rename MVKResourcesCommandEncoderState::encodeArgumentBufferResourceUsage()
      to encodeResourceUsage().
    - MVKDevice move some functions to public scope and remove friend classes.
    - MVKDeviceMemory ensure _vkMemAllocFlags is always initialized (unrelated).
    - Rename MVKFoundation template method contains() to mvkContains() (unrelated).
    billhollings committed Apr 14, 2023
    Configuration menu
    Copy the full SHA
    13e8103 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2023

  1. Merge pull request KhronosGroup#1868 from billhollings/gpu-addr-buff-use

    Ensure shaders using PhysicalStorageBufferAddresses encode the associated MTLBuffer.
    billhollings authored Apr 15, 2023
    Configuration menu
    Copy the full SHA
    5cbeaaa View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2023

  1. Configuration menu
    Copy the full SHA
    fc8e818 View commit details
    Browse the repository at this point in the history
  2. 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).
    billhollings committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    4aa2b6d View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2023

  1. 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.
    billhollings committed Apr 26, 2023
    Configuration menu
    Copy the full SHA
    abb12a5 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1877 from billhollings/pipeline-compr…

    …ess-older-os-fix
    
    Disable pipeline cache compression prior to macOS 10.15 and iOS/tvOS 13.0
    billhollings authored Apr 26, 2023
    Configuration menu
    Copy the full SHA
    331cea9 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2023

  1. Clear attachments support separate depth and stencil attachments.

    - Also rename kMVKCachedColorAttachmentCount to kMVKMaxColorAttachmentCount and
      kMVKCachedViewportScissorCount to kMVKMaxViewportScissorCount and (unrelated)
    billhollings committed Apr 27, 2023
    Configuration menu
    Copy the full SHA
    fd6b973 View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2023

  1. Merge pull request KhronosGroup#1878 from billhollings/dyn-rend-separ…

    …ate-depth-stencil
    
    Support separate depth and stencil attachments during dynamic rendering
    billhollings authored Apr 28, 2023
    Configuration menu
    Copy the full SHA
    e50cb32 View commit details
    Browse the repository at this point in the history

Commits on May 1, 2023

  1. 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.
    billhollings committed May 1, 2023
    Configuration menu
    Copy the full SHA
    937b0bf View commit details
    Browse the repository at this point in the history

Commits on May 3, 2023

  1. 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).
    billhollings committed May 3, 2023
    Configuration menu
    Copy the full SHA
    f33e718 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1881 from billhollings/deprecate-VK_M…

    …VK_moltenvk-extension
    
    Deprecate the obsolete and non-standard VK_MVK_moltenvk extension.
    billhollings authored May 3, 2023
    Configuration menu
    Copy the full SHA
    d2f57fc View commit details
    Browse the repository at this point in the history

Commits on May 4, 2023

  1. 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.
    billhollings committed May 4, 2023
    Configuration menu
    Copy the full SHA
    789d432 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1885 from billhollings/fix-mtl-valid-…

    …err-depth-swizzle
    
    Avoid Metal validation warning when depth component swizzled away
    billhollings authored May 4, 2023
    Configuration menu
    Copy the full SHA
    53a4eb2 View commit details
    Browse the repository at this point in the history
  3. 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().
    billhollings committed May 4, 2023
    Configuration menu
    Copy the full SHA
    3db62a1 View commit details
    Browse the repository at this point in the history
  4. Merge pull request KhronosGroup#1886 from billhollings/reinstate-mvk-…

    …extn
    
    Reinstate VK_MVK_moltenvk extension and add simplified config functions.
    billhollings authored May 4, 2023
    Configuration menu
    Copy the full SHA
    cfa0ed2 View commit details
    Browse the repository at this point in the history

Commits on May 5, 2023

  1. Remove vkGetMoltenVKConfiguration2MVK() and vkSetMoltenVKConfiguratio…

    …n2MVK().
    
    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.
    billhollings committed May 5, 2023
    Configuration menu
    Copy the full SHA
    cde220a View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1889 from billhollings/rmv-config2

    Remove vkGetMoltenVKConfiguration2MVK() and vkSetMoltenVKConfiguration2MVK()
    billhollings authored May 5, 2023
    Configuration menu
    Copy the full SHA
    af9544d View commit details
    Browse the repository at this point in the history
  3. Fix race condition when updating values in VkPastPresentationTimingGO…

    …OGLE.
    
    - 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.
    billhollings committed May 5, 2023
    Configuration menu
    Copy the full SHA
    9e46669 View commit details
    Browse the repository at this point in the history
  4. Merge pull request KhronosGroup#1890 from billhollings/fix-display-ti…

    …ming-race-condition
    
    Fix race condition when updating values in VkPastPresentationTimingGOOGLE.
    billhollings authored May 5, 2023
    Configuration menu
    Copy the full SHA
    dfc0af8 View commit details
    Browse the repository at this point in the history

Commits on May 9, 2023

  1. 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.
    billhollings committed May 9, 2023
    Configuration menu
    Copy the full SHA
    ab5429b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fbaba84 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2023

  1. Add GitHub Actions workflow for automatically creating releases.

    Steveice10 authored and Steveice10 committed May 10, 2023
    Configuration menu
    Copy the full SHA
    f19ac2c View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1895 from Steveice10/main

    Add GitHub Actions workflow for automatically creating releases.
    billhollings authored May 10, 2023
    Configuration menu
    Copy the full SHA
    5bce402 View commit details
    Browse the repository at this point in the history
  3. GitHub CI streamline uploaded artifact sizes.

    - Reinstate per-platform upload artifacts.
    - Don't upload shader converter binaries.
    billhollings committed May 10, 2023
    Configuration menu
    Copy the full SHA
    3247bd4 View commit details
    Browse the repository at this point in the history
  4. Merge pull request KhronosGroup#1896 from billhollings/ci-reduce-arti…

    …fact-sizes
    
    GitHub CI streamline uploaded artifact sizes.
    billhollings authored May 10, 2023
    Configuration menu
    Copy the full SHA
    dd5faf2 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2023

  1. Update release action artifact glob.

    Steveice10 authored and Steveice10 committed May 11, 2023
    Configuration menu
    Copy the full SHA
    0618c43 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1897 from Steveice10/main

    Update release action artifact glob.
    billhollings authored May 11, 2023
    Configuration menu
    Copy the full SHA
    c893a03 View commit details
    Browse the repository at this point in the history

Commits on May 12, 2023

  1. Configuration menu
    Copy the full SHA
    9c72022 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1b6750b View commit details
    Browse the repository at this point in the history
  3. Merge pull request KhronosGroup#1900 from Steveice10/release-workflow…

    …-patch
    
    Make the GitHub Actions release workflow more lenient.
    billhollings authored May 12, 2023
    Configuration menu
    Copy the full SHA
    d3b64c8 View commit details
    Browse the repository at this point in the history
  4. Merge pull request KhronosGroup#1898 from etang-cw/PushBindPoint

    Respect the bind point supplied to vkCmdBindDescriptorSets / vkCmdPushDescriptorSets
    billhollings authored May 12, 2023
    Configuration menu
    Copy the full SHA
    734a185 View commit details
    Browse the repository at this point in the history
  5. Fix reorder-ctor warning

    etang-cw committed May 12, 2023
    Configuration menu
    Copy the full SHA
    47ce47a View commit details
    Browse the repository at this point in the history
  6. 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
    ChibiDenDen committed May 12, 2023
    Configuration menu
    Copy the full SHA
    0139b95 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2023

  1. Merge pull request KhronosGroup#1902 from etang-cw/FixReorderCtor

    Fix reorder-ctor warning
    billhollings authored May 13, 2023
    Configuration menu
    Copy the full SHA
    9bdc29a View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1903 from ChibiDenDen/simulator_featu…

    …re_discovery_fix
    
    Fix simulator feature discovery
    billhollings authored May 13, 2023
    Configuration menu
    Copy the full SHA
    7d4f574 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2023

  1. Identify each unsupported device feature flag that the app attempts t…

    …o 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.
    billhollings committed May 15, 2023
    Configuration menu
    Copy the full SHA
    4893f78 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1905 from billhollings/id-unsupp-dvc-…

    …feat-flags
    
    Identify each unsupported device feature flag that the app attempts to enable.
    billhollings authored May 15, 2023
    Configuration menu
    Copy the full SHA
    9c55ef3 View commit details
    Browse the repository at this point in the history
  3. Ensure swapchain image presented time is always populated when reques…

    …ted.
    
    If Metal reports zero presentedTime, and desired presentation
    time has not been set by app, use the current time.
    billhollings committed May 15, 2023
    Configuration menu
    Copy the full SHA
    65ce195 View commit details
    Browse the repository at this point in the history
  4. Merge pull request KhronosGroup#1906 from billhollings/ensure-present…

    …-time
    
    Ensure swapchain image presented time is always populated when requested.
    billhollings authored May 15, 2023
    Configuration menu
    Copy the full SHA
    44c3063 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2023

  1. 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).
    billhollings committed May 16, 2023
    Configuration menu
    Copy the full SHA
    d29092a View commit details
    Browse the repository at this point in the history

Commits on May 17, 2023

  1. Merge pull request KhronosGroup#1910 from billhollings/fix-ts-qp

    Do not fail on request for timestamp query pool that is too large.
    billhollings authored May 17, 2023
    Configuration menu
    Copy the full SHA
    6111aab View commit details
    Browse the repository at this point in the history
  2. 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.
    billhollings committed May 17, 2023
    Configuration menu
    Copy the full SHA
    665ef6d View commit details
    Browse the repository at this point in the history
  3. Merge pull request KhronosGroup#1908 from billhollings/fix-deviceUUID

    Populate deviceUUID from MTLDevice location and peer group info.
    billhollings authored May 17, 2023
    Configuration menu
    Copy the full SHA
    ae0ee6a View commit details
    Browse the repository at this point in the history
  4. 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
    etang-cw committed May 17, 2023
    Configuration menu
    Copy the full SHA
    75b4d26 View commit details
    Browse the repository at this point in the history

Commits on May 18, 2023

  1. Merge pull request KhronosGroup#1911 from etang-cw/NoAbortOnCompilati…

    …onFailure
    
    Check if shader compiled before adding it to a pipeline
    billhollings authored May 18, 2023
    Configuration menu
    Copy the full SHA
    b3ae0f4 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2023

  1. Configuration menu
    Copy the full SHA
    6c633a7 View commit details
    Browse the repository at this point in the history
  2. Revert "Allow to disable Explicit LOD Workaround"

    This reverts commit 6f3a2b7.
    italomandara committed May 20, 2023
    Configuration menu
    Copy the full SHA
    0125e5b View commit details
    Browse the repository at this point in the history

Commits on May 21, 2023

  1. Merge pull request KhronosGroup#1913 from italomandara/update-spirv-c…

    …ross-revision
    
    Update SPIRV-Cross revision to fix explicit LOD workaround regression
    billhollings authored May 21, 2023
    Configuration menu
    Copy the full SHA
    1a386e0 View commit details
    Browse the repository at this point in the history

Commits on May 23, 2023

  1. Update dependency libraries to match Vulkan SDK 1.3.250.

    - Update Whats New document.
    billhollings committed May 23, 2023
    Configuration menu
    Copy the full SHA
    c231c90 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1916 from billhollings/sdk-1.3.250

    Update dependency libraries to match Vulkan SDK 1.3.250.
    billhollings authored May 23, 2023
    Configuration menu
    Copy the full SHA
    a832e38 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b863ece View commit details
    Browse the repository at this point in the history
  4. Merge pull request KhronosGroup#1918 from billhollings/accumulate-ren…

    …der-stages
    
    Accumulate render stages when a resource is used by multiple descriptor bindings.
    billhollings authored May 23, 2023
    Configuration menu
    Copy the full SHA
    3d7f996 View commit details
    Browse the repository at this point in the history
  5. Advertise VK_KHR_depth_stencil_resolve extension on all devices.

    Advertise VK_KHR_depth_stencil_resolve extension on early iOS devices,
    since VK_RESOLVE_MODE_SAMPLE_ZERO_BIT is supported on all devices,
    even if other resolve modes are not, and makes it consistent with
    Vulkan 1.2 mandatory support for VK_RESOLVE_MODE_SAMPLE_ZERO_BIT.
    billhollings committed May 23, 2023
    Configuration menu
    Copy the full SHA
    b26ce32 View commit details
    Browse the repository at this point in the history

Commits on May 24, 2023

  1. Merge pull request KhronosGroup#1920 from billhollings/always-adverti…

    …se-VK_KHR_depth_stencil_resolve
    
    Advertise VK_KHR_depth_stencil_resolve extension on all devices.
    billhollings authored May 24, 2023
    Configuration menu
    Copy the full SHA
    4c6bfbe View commit details
    Browse the repository at this point in the history

Commits on May 26, 2023

  1. Ensure compute encoding state is marked dirty for non-dispatch commands.

    The same compute encoder is used across dispatches and other commands,
    which may override compute state, and end up breaking subsequent dispatches.
    
    - Mark compute encoding state dirty when following commands,
      which use Metal compute encoders, are issued:
      - vkCmdCopyBuffer()
      - vkCmdClearColorImage()
      - vkCmdClearDepthStencilImage()
      - vkCmdFillBuffer()
      - vkCmdCopyQueryPoolResults()
    
    - MVKCommandEncoder move marking compute state dirty from
      endCurrentMetalEncoding() to getMTLComputeEncoder().
    - For efficiency, don't prematurely force end of query copy compute encoder
      used on renderpass end, in case compute dispatches follow.
    
    - Update MoltenVK to 1.2.5 (unrelated).
    billhollings committed May 26, 2023
    Configuration menu
    Copy the full SHA
    83a1811 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1922 from billhollings/fix-comp-enc-s…

    …tate
    
    Ensure compute encoding state is marked dirty for non-dispatch commands.
    billhollings authored May 26, 2023
    Configuration menu
    Copy the full SHA
    2a4e415 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2023

  1. Add support for VK_PRESENT_MODE_IMMEDIATE_KHR to macOS Cube demo.

    - Only log performance stats on FPS logging if logging style is explicitly
      set to MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT (unrelated).
    billhollings committed May 31, 2023
    Configuration menu
    Copy the full SHA
    107be11 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1927 from billhollings/demo-support-i…

    …mmediate-present-mode
    
    Add support for VK_PRESENT_MODE_IMMEDIATE_KHR to macOS Cube demo.
    billhollings authored May 31, 2023
    Configuration menu
    Copy the full SHA
    0332055 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2023

  1. Support VK_PRESENT_MODE_IMMEDIATE_KHR if VkPresentTimeGOOGLE::desired…

    …PresentTime is zero.
    
    - [MTLDrawable presentAtTime:] syncs to display vsync. To support
      VK_PRESENT_MODE_IMMEDIATE_KHR while using VkPresentTimeGOOGLE::presentID,
      only call presentAtTime: if VkPresentTimeGOOGLE::desiredPresentTime has
      been explicitly set to a non-zero value.
    - Clarify initially clearing MVKImagePresentInfo to all zeros.
    billhollings committed Jun 5, 2023
    Configuration menu
    Copy the full SHA
    6fb5347 View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2023

  1. Configuration menu
    Copy the full SHA
    3fbde16 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2023

  1. Merge pull request KhronosGroup#1942 from rcombs/spirv-cross-fix

    Update SPIRV-Cross revision to include function constant fix
    billhollings authored Jun 7, 2023
    Configuration menu
    Copy the full SHA
    3690a52 View commit details
    Browse the repository at this point in the history
  2. Advertise the VK_EXT_shader_demote_to_helper_invocation extension.

    As of macOS Big Sur and iOS/tvOS 14, the `discard_fragment()` function
    in MSL is defined to have demote semantics; that is, fragment shader
    output is discarded, but the fragment shader thread continues to run as
    a helper invocation. This is very useful for Direct3D emulation, since
    this is the semantic that HLSL `discard` has.
    
    Signed-off-by: Chip Davis <chip@holochip.com>
    cdavis5e committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    750adca View commit details
    Browse the repository at this point in the history
  3. Merge pull request KhronosGroup#1935 from cdavis5e/shader-demote-to-h…

    …elper
    
    Advertise the VK_EXT_shader_demote_to_helper_invocation extension.
    billhollings authored Jun 7, 2023
    Configuration menu
    Copy the full SHA
    4974860 View commit details
    Browse the repository at this point in the history
  4. Merge pull request KhronosGroup#1936 from billhollings/present-imm-mo…

    …de-unless-present-time
    
    Support VK_PRESENT_MODE_IMMEDIATE_KHR if VkPresentTimeGOOGLE::desiredPresentTime is zero.
    billhollings authored Jun 7, 2023
    Configuration menu
    Copy the full SHA
    4949c34 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2023

  1. Allows maximizing the concurrent executing compilation tasks.

    https://developer.apple.com/videos/play/wwdc2023/10127/?time=540
    On an M1 Pro Macbook Pro 16" maximumConcurrentCompilationTaskCount goes from 2 to 8
    RaafatAkkad committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    e724357 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1944 from RaafatAkkad/main

    Allows maximizing the concurrent executing compilation tasks.
    billhollings authored Jun 14, 2023
    Configuration menu
    Copy the full SHA
    bdbf9ab View commit details
    Browse the repository at this point in the history
  3. Allow both renderPass and VkPipelineRenderingCreateInfo to be missing.

    This avoids crashes in CTS when creating a graphics pipeline.
    billhollings committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    b94553d View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. Merge pull request KhronosGroup#1946 from billhollings/no-rendpass-no…

    …-dyn-rend-info
    
    Allow both renderPass and VkPipelineRenderingCreateInfo to be missing.
    billhollings authored Jun 15, 2023
    Configuration menu
    Copy the full SHA
    4a9bf78 View commit details
    Browse the repository at this point in the history
  2. Don't call MTLCreateSystemDefaultDevice() on every swapchain creation.

    - When forcing the window system to use the same high-power GPU as the app,
      move the call to MTLCreateSystemDefaultDevice() to MVKDevice constructor,
      instead of MVKDevice::createSwapchain(), and test whether the
      VK_KHR_swapchain extension is enabled to determine the need to swap GPUs.
    
    - After calling MTLCreateSystemDefaultDevice() the GPU will already be
      the same high-power GPU, so remove attempting to replace the MTLDevice.
    
    - Remove MVKPhysicalDevice::replaceMTLDevice() as no longer used.
    
    - Remove many unnecessary inline declarations in MVKDevice.h (unrelated).
    billhollings committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    425505d View commit details
    Browse the repository at this point in the history
  3. Log more info about SPIR-V to MSL conversion errors.

    Remove unhelpful "Shader module does not contain
    an entry point named 'main0'" error message.
    billhollings committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    e69c249 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2023

  1. Merge pull request KhronosGroup#1951 from billhollings/log-shdr-conv-…

    …err-info
    
    Log more info about SPIR-V to MSL conversion errors.
    billhollings authored Jun 16, 2023
    Configuration menu
    Copy the full SHA
    78f3e1e View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1949 from billhollings/swap-system-GP…

    …U-fix
    
    Don't call MTLCreateSystemDefaultDevice() on every swapchain creation.
    billhollings authored Jun 16, 2023
    Configuration menu
    Copy the full SHA
    9356c89 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2023

  1. Implemented Deferred Host Operations

    Implemented deferred host operations in this commit. It was pretty simple with nothing Metal specific. I am a bit concerned on the return types of MVKDeferredOperation::join and about how to store the operation to be executed for later.
    AntarticCoder committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    33cd6f2 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2023

  1. Fixed comments for deferred operations

    Co-authored-by: Chip Davis <cdavis5x@gmail.com>
    AntarticCoder and cdavis5e authored Jun 20, 2023
    Configuration menu
    Copy the full SHA
    ab70871 View commit details
    Browse the repository at this point in the history
  2. Made some fixes for Deferred Operations

    The changes are as follows:
    
    * Moved the code around to fit with the ordering system
    * Added a function to get available cpu cores
    * Renamed variables with _ in front of them
    * Added mutexes and lock guards for the getters and setters of the max concurrency and result variables
    * Made max concurrency dynamic by returning 0 when the operation is finished
    AntarticCoder committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    c0705c8 View commit details
    Browse the repository at this point in the history
  3. Push to Compile MVKSmallVector with void*

    Pushing to Github to compile with Github Actions to see if MVKVectors with void* can work
    AntarticCoder committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    fa19fcc View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2023

  1. C-Style Arrays instead of MVKSmallVector

    This commit changes the MVKSmallVector to a C-Style array because the parameters array will not have to resize, and it seems that a C-Style array is just as capable of doing the job.
    AntarticCoder committed Jun 21, 2023
    Configuration menu
    Copy the full SHA
    e5bfc2d View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2023

  1. Merge pull request KhronosGroup#1954 from AntarticCoder/khr-deferred-…

    …operation
    
    Implemented Deferred Host Operations
    billhollings authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    3e1fb4f View commit details
    Browse the repository at this point in the history
  2. Support the VK_EXT_4444_formats extension.

    This turned out to be a little bit more involved than I had hoped. But,
    with this, we can now use the `VK_FORMAT_A4R4G4B4_UNORM_PACK16` and
    `VK_FORMAT_A4B4G4R4_UNORM_PACK16` formats from shaders, use them as blit
    sources, and even clear them. Storage images and render targets of these
    formats aren't supported, however. To support the latter would require
    the insertion of a swizzle into the fragment shader before returning.
    The former cannot be reasonably supported.
    cdavis5e committed Jun 22, 2023
    Configuration menu
    Copy the full SHA
    5d173d0 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2023

  1. Support building for visionOS

    Note: Internal naming is xrOS, but publicly it should be referred to as visionOS
    ifiddynine committed Jun 23, 2023
    Configuration menu
    Copy the full SHA
    16990ef View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d8b5a7d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a756b8c View commit details
    Browse the repository at this point in the history
  4. Fix build with latest main

    ifiddynine committed Jun 23, 2023
    Configuration menu
    Copy the full SHA
    67814ba View commit details
    Browse the repository at this point in the history
  5. Merge pull request KhronosGroup#1955 from cdavis5e/4444-formats

    Support the `VK_EXT_4444_formats` extension.
    cdavis5e authored Jun 23, 2023
    Configuration menu
    Copy the full SHA
    591eb6b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4540175 View commit details
    Browse the repository at this point in the history
  7. Support the VK_EXT_calibrated_timestamps extension.

    This extension has a direct Metal equivalent in the
    `-[MTLDevice sampleTimestamps:gpuTimestamp:]` method. However, that
    method returns CPU timestamps in the Mach absolute time domain, which is
    *not* that of `CLOCK_MONOTONIC_RAW` but of `CLOCK_UPTIME_RAW`. The
    function that corresponds to `CLOCK_MONOTONIC_RAW` is
    `mach_continuous_time()`. Therefore, this implementation uses the
    `mach_continuous_time()` function for the CPU timestamp. Perhaps we
    should lobby the WG for `VK_TIME_DOMAIN_CLOCK_UPTIME_RAW_EXT`.
    cdavis5e committed Jun 23, 2023
    Configuration menu
    Copy the full SHA
    4e3ac69 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2023

  1. Advertise the VK_KHR_shader_non_semantic_info extension.

    This just provides support for the `SPV_KHR_non_semantic_info`
    extension, which supports extended instruction sets that do not affect
    the semantics of a SPIR-V shader (e.g. debug info). SPIRV-Cross already
    handles these instruction sets, so no additional work is required on our
    part to support this extension.
    cdavis5e committed Jun 24, 2023
    Configuration menu
    Copy the full SHA
    5253e6f View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2023

  1. Merge pull request KhronosGroup#1958 from cdavis5e/calibrated-timestamps

    Support the `VK_EXT_calibrated_timestamps` extension.
    billhollings authored Jun 26, 2023
    Configuration menu
    Copy the full SHA
    714781e View commit details
    Browse the repository at this point in the history
  2. Support VK_EXT_shader_subgroup_ballot and `VK_EXT_shader_subgroup_v…

    …ote`.
    
    Update SPIRV-Cross to pull in the needed support for these extensions.
    cdavis5e committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    b74feb7 View commit details
    Browse the repository at this point in the history
  3. Merge pull request KhronosGroup#1960 from cdavis5e/shader-non-semanti…

    …c-info
    
    Advertise the `VK_KHR_shader_non_semantic_info` extension.
    billhollings authored Jun 26, 2023
    Configuration menu
    Copy the full SHA
    c85507b View commit details
    Browse the repository at this point in the history
  4. Merge pull request KhronosGroup#1961 from cdavis5e/legacy-subgroup

    Support `VK_EXT_shader_subgroup_ballot` and `VK_EXT_shader_subgroup_vote`.
    billhollings authored Jun 26, 2023
    Configuration menu
    Copy the full SHA
    96204ad View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2023

  1. Add support for VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN.

    To reduce complexity and repetitive copy-pasted spaghetti code,
    the design approach here was to implement triangle fan conversion on
    MVKCmdDrawIndexedIndirect, as the most general of the draw commands,
    and then populate and invoke a synthetic MVKCmdDrawIndexedIndirect
    command from the other draw commands.
    
    - Rename pipeline factory shader cmdDrawIndexedIndirectMultiviewConvertBuffers()
      to cmdDrawIndexedIndirectConvertBuffers, and in addition to original support
      for modifying indirect content to support multiview, add support for
      converting triangle fan indirect content and indexes to triangle list.
    - Modify MVKCmdDrawIndexedIndirect to track need to convert triangle fans
      to triangle list, and invoke kernel function when needed.
    - Modify MVKCmdDraw, MVKCmdDrawIndexed, and MVKCmdDrawIndirect to populate
      and invoke a synthetic MVKCmdDrawIndexedIndirect command to convert triangle
      fans to triangle lists.
    - Add pipeline factory shader cmdDrawIndirectPopulateIndexes() to convert
      non-indexed indirect content to indexed indirect content.
    - MVKCmdDrawIndexedIndirect add support for zero divisor vertex buffers
      potentially coming from MVKCmdDraw and MVKCmdDrawIndexed.
    
    - Rename pipeline factory shader cmdDrawIndexedIndirectConvertBuffers()
      to cmdDrawIndexedIndirectTessConvertBuffers() so it will be invoked from
      MVKCommandEncodingPool::getCmdDrawIndirectTessConvertBuffersMTLComputePipelineState()
      (unrelated).
    billhollings committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    e5d3939 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2023

  1. Fix unreachable code in MVKDeferredOperation::join().

    - Fix unreachable code in MVKDeferredOperation::join().
    - Refactor code so deferred functions call back to MVKDeferredOperation
      instance to update current status, and deferred function execution
      returns result of individual thread execution.
    - MVKDeferredOperation use MVKSmallVector for _functionParameters.
    - MVKDeferredOperation use a single mutex lock.
    - Add additional comments explaining design to developers of
      future extensions that use deferred operations.
    billhollings committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    c34bb54 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1964 from billhollings/fix-unreachabl…

    …e-code
    
    Fix unreachable code in MVKDeferredOperation::join().
    billhollings authored Jun 30, 2023
    Configuration menu
    Copy the full SHA
    27f68eb View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2023

  1. Merge pull request KhronosGroup#1962 from billhollings/tri-fans

    Add support for VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN.
    billhollings authored Jul 1, 2023
    Configuration menu
    Copy the full SHA
    41dbd9d View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2023

  1. Added MSL Version 3.1 for switch case

    In this commit, I've added support for Xcode 15, and added a case for MSL version 3.1. I added this because I noticed xcode was throwing some warnings about an unhandled switch case.
    AntarticCoder committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    6bca44c View commit details
    Browse the repository at this point in the history
  2. Completed the support for MSL 3.1 enum

    This commit adds some extra code that was needed to define to MSL 3.1 enum that was not included in the first commit. Based on PR: KhronosGroup#1940
    AntarticCoder committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    056dec8 View commit details
    Browse the repository at this point in the history
  3. Merge pull request KhronosGroup#1966 from AntarticCoder/msl-3-1

    Added Enum for MSL Version 3.1
    billhollings authored Jul 5, 2023
    Configuration menu
    Copy the full SHA
    2db85ea View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. MVKDevice: Don't enable sample LoD depth array workaround for macOS S…

    …onoma and up.
    
    Apple have indicated to me that they have fixed the bug. I've confirmed
    this.
    cdavis5e committed Jul 7, 2023
    Configuration menu
    Copy the full SHA
    21ac744 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2023

  1. Support the VK_KHR_incremental_present extension.

    This extension allows apps to provide a hint to the presentation engine
    indicating which parts of the surface need updating. To provide this
    hint, we call `-[CALayer setNeedsDisplayInRect:]`, which indicates that
    only the given rectangle needs updating.
    
    I'm not sure if this will have any effect, especially if
    `CAMetalLayer.presentsWithTransaction` is `NO`. Luckily for us, this is
    only a hint, and it is permissible for the presentation engine to do
    nothing with the hint.
    
    The tests don't work because they apparently can't handle
    `VK_SUBOPTIMAL_KHR` being returned.
    cdavis5e committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    3914b0f View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1969 from cdavis5e/sonoma-depth-array…

    …-lod
    
    MVKDevice: Don't enable sample LoD depth array workaround for macOS S…
    billhollings authored Jul 10, 2023
    Configuration menu
    Copy the full SHA
    ca8e060 View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2023

  1. Support the VK_EXT_pipeline_creation_feedback extension.

    This provides feedback that indicates:
    * how long it took to compile each shader stage and the pipeline as a
      whole;
    * whether or not the pipeline or any shader stage were found in any
      supplied pipeline cache; and
    * whether or not any supplied base pipeline were used to accelerate
      pipeline creation.
    
    This is similar to the performance statistics that MoltenVK already
    collects.
    
    Since we don't use any supplied base pipeline at all, this
    implementation never sets
    `VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT`. However,
    I've identified several places where we could probably use the base
    pipeline to accelerate pipeline creation. One day, I should probably
    implement that.
    
    Likewise, because we don't yet support using `MTLBinaryArchive`s,
    `VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT` is
    never set on the whole pipeline, though it *is* set for individual
    stages, on the assumption that any shader found in a cache is likely to
    be found in Metal's own implicit cache.
    
    In this implementation, shader stage compilation time includes any time
    needed to build the `MTLComputePipelineState`s needed for vertex and
    tessellation control shaders in tessellated pipelines.
    
    This patch also changes compilation of the vertex stage
    `MTLComputePipelineState`s in tessellated pipelines to be eager instead
    of lazy. We really ought to have been doing this anyway, in order to
    report pipeline failures at creation time instead of draw time. I'm not
    happy, though, that we now pay the cost of all three pipeline states all
    the time, instead of just the ones that are used.
    
    This also gets rid of some fields of `MVKGraphicsPipeline` that were
    only used during pipeline construction, which should save some memory,
    particularly for apps that create lots of pipelines.
    cdavis5e committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    561e14b View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1968 from cdavis5e/pipeline-creation-…

    …feedback
    
    Support the `VK_EXT_pipeline_creation_feedback` extension.
    billhollings authored Jul 11, 2023
    Configuration menu
    Copy the full SHA
    1728f7f View commit details
    Browse the repository at this point in the history
  3. Merge pull request KhronosGroup#1972 from cdavis5e/incremental-present

    Support the `VK_KHR_incremental_present` extension.
    billhollings authored Jul 11, 2023
    Configuration menu
    Copy the full SHA
    dff64e9 View commit details
    Browse the repository at this point in the history
  4. Merge branch 'visionOS' of https://github.com/nginetechnologies/MoltenVK

     into nginetechnologies-visionOS
    billhollings committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    855c7a6 View commit details
    Browse the repository at this point in the history
  5. Fix visionOS build errors and warnings where possible.

    - Remove visionOS from multi-platform builds because it
      requires Xcode 15+ and will abort a multi-platform build.
    - Define TARGET_OS_XR for older SDK's.
    - A number of SDK deprecation warnings remain when building for visionOS.
      These cannot be removed without significant refactoring.
    - Build visionOS dependencies for Release build by default.
    - Fix local variable initialization warning (unrelated).
    billhollings committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    6374d9d View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2023

  1. Merge pull request KhronosGroup#1976 from billhollings/nginetechnolog…

    …ies-visionOS
    
    Support building for visionOS platform
    billhollings authored Jul 12, 2023
    Configuration menu
    Copy the full SHA
    97eb80b View commit details
    Browse the repository at this point in the history
  2. Drop official support for using Xcode 11 to build MoltenVK.

    - Remove Xcode 11 build from GitHub CI.
    - Leave MVK_XCODE_12 guards in place to allow devs to possibly continue to
      attempt to build existing MoltenVK code using Xcode 11, even though it's
      not officially supported. Such devs may have to add their own additional
      MVK_XCODE_12 guards for any Xcode 12 API features added after this change.
    billhollings committed Jul 12, 2023
    Configuration menu
    Copy the full SHA
    f6ba6f2 View commit details
    Browse the repository at this point in the history
  3. Merge pull request KhronosGroup#1977 from billhollings/drop-support-x…

    …code-11
    
    Drop official support for using Xcode 11 to build MoltenVK.
    billhollings authored Jul 12, 2023
    Configuration menu
    Copy the full SHA
    42fa511 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2023

  1. Fix regression caused by KhronosGroup#1922

    Needed to complete fix for KhronosGroup#1874
    
    We can't wait until getMTLComputeEncoder() is called to dirty the state,
    because this call will be avoided by dirty checks themselves.
    Those checks are comparing against leftover and now incorrect state since
    the previous encoder has already ended.
    It needs to be dirtied on encoder end.
    mbechard committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    817038e View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1980 from mbechard/main

    Fix regression caused by KhronosGroup#1922
    billhollings authored Jul 19, 2023
    Configuration menu
    Copy the full SHA
    cf531d0 View commit details
    Browse the repository at this point in the history
  3. Fix bad access regression to prematurely-deallocated MTLFunction.

    When compiling tessellation vertex shaders, MVKGraphicsPipeline
    pass array of MVKMTLFunction instead of MTLFunctions to retain
    MTLFunctions for duration of processing.
    billhollings committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    5294c19 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2023

  1. Merge pull request KhronosGroup#1981 from billhollings/fix-bad-access…

    …-regression
    
    Fix bad access regression to prematurely-deallocated MTLFunction.
    billhollings authored Jul 20, 2023
    Configuration menu
    Copy the full SHA
    d9b32e0 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2023

  1. Don't fetch a submodule if the commit is already known

    This allows rebuilding without an internet connection and avoids random
    build failures on flaky connections.
    stefand committed Jul 28, 2023
    Configuration menu
    Copy the full SHA
    f7e0d7d View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2023

  1. Merge pull request KhronosGroup#1982 from stefand/main

    Don't fetch a submodule if the commit is already known
    billhollings authored Jul 31, 2023
    Configuration menu
    Copy the full SHA
    7cb6096 View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2023

  1. Fix sync delay between calls to vkQueueSubmit() on non-Apple-Silicon …

    …devices.
    
    The [MTLDevice sampleTimestamps:gpuTimestamp:] function turns out to be
    synchronized with other queue activities, and can block GPU execution
    if it is called between MTLCommandBuffer submissions. On non-Apple-Silicon
    devices, it was called before and after every vkQueueSubmit() submission,
    to track the correlation between GPU and CPU timestamps, and was delaying
    the start of GPU work on the next submission (on Apple Silicon, both
    CPU & GPU timestamps are specified in nanoseconds, and the call was bypassed).
    
    Move timestamp correlation from vkQueueSubmit() to
    vkGetPhysicalDeviceProperties(), where it is used to update
    VkPhysicalDeviceLimits::timestampPeriod on non-Apple-Silicon devices.
    
    Delegate MVKPhysicalDevice::getProperties(VkPhysicalDeviceProperties2*)
    to MVKPhysicalDevice::getProperties(VkPhysicalDeviceProperties*), plus
    minimize wasted effort if pNext is empty (unrelated).
    
    Move the declaration of several MVKPhysicalDevice member structs to
    potentially reduce member spacing (unrelated).
    billhollings committed Aug 12, 2023
    Configuration menu
    Copy the full SHA
    dd31587 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2023

  1. Ensure Xcode simulator always uses 256B buffer alignment.

    Xcode simulator always requires 256B buffer alignment, even when running
    on Apple Silicon. Previously, it was assumed that Apple Silicon would use
    it's native 16B buffer alignment.
    billhollings committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    41a5a97 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1992 from billhollings/fix-submit-syn…

    …c-delay
    
    Fix sync delay between calls to vkQueueSubmit() on non-Apple-Silicon devices.
    billhollings authored Aug 14, 2023
    Configuration menu
    Copy the full SHA
    8518a4f View commit details
    Browse the repository at this point in the history
  3. Merge pull request KhronosGroup#1993 from billhollings/fix-sim-buff-a…

    …lign
    
    Ensure Xcode simulator always uses 256B buffer alignment.
    billhollings authored Aug 14, 2023
    Configuration menu
    Copy the full SHA
    47840b9 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2023

  1. Update dependency libraries to match Vulkan SDK 1.3.261.

    - In MoltenVK Xcode projects, set iOS & tvOS deployment targets to 12.0,
      to avoid warnings while building MoltenVK.
    - Add DYLD_LIBRARY_PATH to runcts script, to ensure Vulkan and MoltenVK
      libraries are found during CTS runs.
    - Update Whats_New.md and MoltenVK_Runtime_UserGuide.md documents.
    billhollings committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    4fe8811 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1994 from billhollings/sdk-1.3.261

    Update dependency libraries to match Vulkan SDK 1.3.261.
    billhollings authored Aug 15, 2023
    Configuration menu
    Copy the full SHA
    b3c9f86 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2023

  1. Fix VkPhysicalDeviceLimits::timestampPeriod calculations on Intel GPU.

    - Guard against Intel returning zero values for CPU & GPU timestamps.
    - Apply lowpass filter on timestampPeriod updates, to avoid wild temporary
      changes, particularly at startup before GPU has been really exercised.
    billhollings committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    530bde1 View commit details
    Browse the repository at this point in the history
  2. Merge pull request KhronosGroup#1997 from billhollings/fix-Intel-time…

    …stampPeriod
    
    Fix VkPhysicalDeviceLimits::timestampPeriod calculations on Intel GPU.
    billhollings authored Aug 17, 2023
    Configuration menu
    Copy the full SHA
    02a8c01 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2023

  1. Fix rare case where vertex attribute buffers are not bound to Metal.

    In the rare case where vertex attribute buffers are bound to MVKCommandEncoder,
    are not used by first pipeline, but are used by a subsequent pipeline, and no
    other bindings are changed, the MVKResourcesCommandEncoderState will not appear
    to be dirty to the second pipeline, and the buffer will not be bound to Metal.
    
    When reverting a binding to dirty if it is not used by a pipeline, also revert
    the enclosing MVKResourcesCommandEncoderState to dirty state.
    
    Update MoltenVK to version 1.2.6 (unrelated).
    billhollings committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    7910083 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2023

  1. Merge pull request KhronosGroup#2001 from billhollings/fix-unbound-vt…

    …x-attr-buff
    
    Fix rare case where vertex attribute buffers are not bound to Metal.
    billhollings authored Aug 24, 2023
    Configuration menu
    Copy the full SHA
    fd418aa View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2023

  1. Configuration menu
    Copy the full SHA
    4544e76 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8cbaaa6 View commit details
    Browse the repository at this point in the history