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: Transform feedback #1943

Draft
wants to merge 60 commits into
base: main
Choose a base branch
from

Commits on Feb 3, 2023

  1. 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 Feb 3, 2023
    Configuration menu
    Copy the full SHA
    301d384 View commit details
    Browse the repository at this point in the history
  2. Work around problems with explicit LoD with arrayed depth images on A…

    …pple Silicon.
    
    Use an explicit gradient to make it sample the correct level.
    
    Update SPIRV-Cross to pull in the change needed for this.
    cdavis5e committed Feb 3, 2023
    Configuration menu
    Copy the full SHA
    d010c61 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2023

  1. Merged in sample-dref-lod-array-workaround (pull request KhronosGroup#5)

    Work around problems with explicit LoD with arrayed depth images on Apple Silicon.
    
    Approved-by: Steven Winston
    cdavis5e committed Feb 4, 2023
    Configuration menu
    Copy the full SHA
    0e5e28a View commit details
    Browse the repository at this point in the history

Commits on May 18, 2023

  1. add in CMake build capability

    gpx1000 committed May 18, 2023
    Configuration menu
    Copy the full SHA
    1c5cc7a View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2023

  1. 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 6, 2023
    Configuration menu
    Copy the full SHA
    ac64308 View commit details
    Browse the repository at this point in the history
  2. Merged in shader-demote-to-helper (pull request KhronosGroup#6)

    Advertise the VK_EXT_shader_demote_to_helper_invocation extension.
    cdavis5e committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    8aa8bfc View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2023

  1. Configuration menu
    Copy the full SHA
    11aba7b View commit details
    Browse the repository at this point in the history
  2. Merge branch 'transform_feedback'

    # Conflicts:
    #	Docs/MoltenVK_Runtime_UserGuide.md
    #	MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h
    #	MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
    #	MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm
    #	MoltenVK/MoltenVK/Layers/MVKExtensions.def
    gpx1000 committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    c00d168 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8450aa6 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2023

  1. Merge remote-tracking branch 'origin/master'

    # Conflicts:
    #	Docs/MoltenVK_Runtime_UserGuide.md
    #	MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
    #	MoltenVK/MoltenVK/Layers/MVKExtensions.def
    gpx1000 committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    56fa3b5 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'master' into transform_feedback

    # Conflicts:
    #	MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h
    #	MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm
    gpx1000 committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    dcd5873 View commit details
    Browse the repository at this point in the history
  3. make CMake work for all build types and fix the merge conflicts by up…

    …dating from upstream/main.
    gpx1000 committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    07bd3b0 View commit details
    Browse the repository at this point in the history
  4. 1.) remove Query path as it is optional. We might add it in at a late…

    …r time.
    
    2.) remove validation from the driver layer.
    gpx1000 committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    48c2a9c View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2023

  1. Configuration menu
    Copy the full SHA
    482c19a View commit details
    Browse the repository at this point in the history
  2. address rest of comments.

    gpx1000 committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    c262cc4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    39a9082 View commit details
    Browse the repository at this point in the history
  4. fix building

    gpx1000 committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    df3cd19 View commit details
    Browse the repository at this point in the history
  5. Add methods to map transform feedback bindings to Metal bindings.

    Leave some room for XFB buffers and the argument buffers by limiting
    maximum vertex input bindings to 16.
    cdavis5e committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    2489c0c View commit details
    Browse the repository at this point in the history
  6. Working together with Chip

    gpx1000 committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    f935aff View commit details
    Browse the repository at this point in the history
  7. Working together with Chip

    gpx1000 committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    942b5bf View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    4cf27c6 View commit details
    Browse the repository at this point in the history
  9. Merge branch 'transform_feedback' into transform_feedback_public

    # Conflicts:
    #	Docs/MoltenVK_Runtime_UserGuide.md
    #	ExternalRevisions/SPIRV-Cross_repo_revision
    #	MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
    #	MoltenVK/MoltenVK/Layers/MVKExtensions.def
    gpx1000 committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    bb1ddf6 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2023

  1. Update SPIRV-Cross_repo_revision

    reverting the revision change.
    gpx1000 authored Jun 20, 2023
    Configuration menu
    Copy the full SHA
    8d131f2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    17f5dc5 View commit details
    Browse the repository at this point in the history
  3. Merge remote-tracking branch 'upstream/transform_feedback_public' int…

    …o transform_feedback_public
    
    # Conflicts:
    #	ExternalRevisions/SPIRV-Cross_repo_revision
    gpx1000 committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    a7771ab View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2d7cc1f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    50830de View commit details
    Browse the repository at this point in the history
  6. Merge remote-tracking branch 'upstream/transform_feedback_public' int…

    …o transform_feedback_public
    gpx1000 committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    af071d3 View commit details
    Browse the repository at this point in the history
  7. mystery merge error fix

    gpx1000 committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    fc3c263 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2023

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

Commits on Jul 17, 2023

  1. Add missing handling of VK_EXT_transform_feedback nuts and bolts.

    Fix the formatting of some added parts to be more consistent with the
    rest of MoltenVK.
    cdavis5e committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    b5bcb0f View commit details
    Browse the repository at this point in the history
  2. Remove extraneous if-branch.

    Since the vertex shader will be writing directly to the transform
    feedback buffers, it occurs to me that no copying at all is necessary.
    cdavis5e committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    01d6c1c View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2023

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

Commits on Sep 22, 2023

  1. Checkpoint for transform feedback support.

    Sets up the pipeline to have two stages and compiles the vertex shader
    as a compute shader, but doesn't yet generate the passthrough vertex
    shader.
    cdavis5e committed Sep 22, 2023
    Configuration menu
    Copy the full SHA
    1bbfd3e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c4977ad View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2023

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

Commits on Oct 9, 2023

  1. Ridiculously small checkpoint with very little to show for it.

    What the heck is wrong with me...?
    cdavis5e committed Oct 9, 2023
    Configuration menu
    Copy the full SHA
    7f21588 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2023

  1. Grab outputs from the vertex shader in preparation for generating the…

    … pass-through shader.
    cdavis5e committed Oct 11, 2023
    Configuration menu
    Copy the full SHA
    d112c8d View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2023

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

Commits on Oct 20, 2023

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

Commits on Oct 23, 2023

  1. Add a little bit more reflection data for transform feedback.

    Still broken. In particular, it doesn't handle structs or arrays
    properly. Arrays need an offset added to the XFB offset for each
    element. Structs aren't handled at all.
    cdavis5e committed Oct 23, 2023
    Configuration menu
    Copy the full SHA
    804fd9f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    92ea5ca View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2023

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

Commits on Oct 27, 2023

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

Commits on Oct 31, 2023

  1. Sort vertex shader outputs.

    Sort captured outputs by offset. Sort others by output location.
    cdavis5e committed Oct 31, 2023
    Configuration menu
    Copy the full SHA
    38c6533 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2023

  1. Emit the buffer structs.

    cdavis5e committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    9422cbc View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2023

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

Commits on Nov 7, 2023

  1. Emit padding for the buffer stride.

    Use packed types if the offset isn't aligned.
    cdavis5e committed Nov 7, 2023
    Configuration menu
    Copy the full SHA
    d46b781 View commit details
    Browse the repository at this point in the history
  2. Remove redundant helper.

    cdavis5e committed Nov 7, 2023
    Configuration menu
    Copy the full SHA
    9976745 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2023

  1. Handle clip/cull distances properly.

    We still need to emit the array of clip distances for the rasterizer;
    this is just for the fragment shader interface.
    cdavis5e committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    a4a7ac9 View commit details
    Browse the repository at this point in the history
  2. Also emit clip distance array to the rasterizer.

    Fix clip/cull distance attribute for the fragment shader interface.
    cdavis5e committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    0e6d694 View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2023

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

Commits on Nov 16, 2023

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

Commits on Nov 17, 2023

  1. Configuration menu
    Copy the full SHA
    c6e3d88 View commit details
    Browse the repository at this point in the history
  2. Reserve buffer slots for the transform feedback buffers.

    Make sure SPIRV-Cross knows about them.
    cdavis5e committed Nov 17, 2023
    Configuration menu
    Copy the full SHA
    c0581f4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0fb9f33 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    159ee5f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ba12429 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2023

  1. Fix broken build.

    cdavis5e committed Nov 18, 2023
    Configuration menu
    Copy the full SHA
    b604f13 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2023

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