title: Unknown type name 'MTLResourceID'
body: <p>I am trying to try out the new Metal 3 Apple Sample Code but I get an error in the <a href="https://developer.apple.com/documentation/metal/metal_sample_code_library/rendering_reflections_in_real_time_using_ray_tracing" rel="nofollow noreferrer">Rendering reflections in real time using ray tracing</a> Project telling me <code>Unknown type name 'MTLResourceID'</code> in the <code>AAPLArgumentBufferTypes.h</code> file, I tried to look into this error and I saw a page on on Apple Developer stating that MTLResource was deprecated so I tried replacing it with the updated code but it did not change anything, this was also a new project so I would not assume that the issue was deprecation, would anybody be able to help me with this?</p>
  <blockquote>
  <p><em>The Error is on line 101</em></p>
  </blockquote>
  <blockquote>
  <p><em>I am on macOS Ventura Beta 7 and Xcode 14</em></p>
  </blockquote>
  <pre><code>/*
  See LICENSE folder for this sample’s licensing information.
  
  Abstract:
  The header that contains the defining types to use in argument buffers.
  */
  #ifndef AAPLArgumentBufferTypes_h
  #define AAPLArgumentBufferTypes_h
  
  #include &quot;AAPLShaderTypes.h&quot;
  
  
  typedef enum AAPLArgumentBufferID
  {
      AAPLArgmentBufferIDGenericsTexcoord,
      AAPLArgmentBufferIDGenericsNormal,
      AAPLArgmentBufferIDGenericsTangent,
      AAPLArgmentBufferIDGenericsBitangent,
  
      AAPLArgmentBufferIDSubmeshIndices,
      AAPLArgmentBufferIDSubmeshMaterials,
  
      AAPLArgmentBufferIDMeshPositions,
      AAPLArgmentBufferIDMeshGenerics,
      AAPLArgmentBufferIDMeshSubmeshes,
  
      AAPLArgmentBufferIDInstanceMesh,
      AAPLArgmentBufferIDInstanceTransform,
  
      AAPLArgmentBufferIDSceneInstances,
      AAPLArgumentBufferIDSceneMeshes
  } AAPLArgumentBufferID;
  
  #if __METAL_VERSION__
  
  #include &lt;metal_stdlib&gt;
  using namespace metal;
  
  struct MeshGenerics
  {
      float2 texcoord  [[ id( AAPLArgmentBufferIDGenericsTexcoord  ) ]];
      half4  normal    [[ id( AAPLArgmentBufferIDGenericsNormal    ) ]];
      half4  tangent   [[ id( AAPLArgmentBufferIDGenericsTangent   ) ]];
      half4  bitangent [[ id( AAPLArgmentBufferIDGenericsBitangent ) ]];
  };
  
  struct Submesh
  {
      // The container mesh stores positions and generic vertex attribute arrays.
      // The submesh stores only indices into these vertex arrays.
      uint32_t shortIndexType [[id(0)]];
  
      // The indices for the container mesh's position and generics arrays.
      constant uint32_t*                                indices   [[ id( AAPLArgmentBufferIDSubmeshIndices   ) ]];
  
      // The fixed size array of material textures.
      array&lt;texture2d&lt;float&gt;, AAPLMaterialTextureCount&gt; materials [[ id( AAPLArgmentBufferIDSubmeshMaterials ) ]];
  };
  
  struct Mesh
  {
      // The arrays of vertices.
      constant packed_float3* positions [[ id( AAPLArgmentBufferIDMeshPositions ) ]];
      constant MeshGenerics* generics   [[ id( AAPLArgmentBufferIDMeshGenerics  ) ]];
  
      // The array of submeshes.
      constant Submesh* submeshes       [[ id( AAPLArgmentBufferIDMeshSubmeshes ) ]];
  };
  
  struct Instance
  {
      // A reference to a single mesh in the meshes array stored in structure `Scene`.
      uint32_t meshIndex [[id(0)]];
      //constant Mesh* pMesh [[ id( AAPLArgmentBufferIDInstanceMesh ) ]];
  
      // The location of the mesh for this instance.
      float4x4 transform [[id(1)]];
  };
  
  struct Scene
  {
      // The array of instances.
      constant Instance* instances [[ id( AAPLArgmentBufferIDSceneInstances ) ]];
      constant Mesh* meshes [[ id( AAPLArgumentBufferIDSceneMeshes )]];
  };
  #else
  
  #include &lt;Metal/Metal.h&gt;
  
  struct Submesh
  {
      // The container mesh stores positions and generic vertex attribute arrays.
      // The submesh stores only indices in these vertex arrays.
  
      uint32_t shortIndexType;
      
      // Indices for the container mesh's position and generics arrays.
      uint64_t indices;
  
      // The fixed size array of material textures.
      MTLResourceID materials[AAPLMaterialTextureCount];
  };
  
  struct Mesh
  {
      // The arrays of vertices.
      uint64_t positions;
      uint64_t generics;
  
      // The array of submeshes.
      uint64_t submeshes;
  };
  
  struct Instance
  {
      // A reference to a single mesh.
      uint32_t meshIndex;
  
      // The location of the mesh for this instance.
      matrix_float4x4 transform;
  };
  
  struct Scene
  {
      // The array of instances.
      uint64_t instances;
      uint64_t meshes;
  };
  
  #endif // __METAL_VERSION__
  
  #endif // ArgumentBufferTypes_h
  
  </code></pre>