spb/forge Public MIT
Forge — LLM training from scratch in pure C++20 + Metal on Apple Silicon.
C++ 61.2%
C 23%
Python 7.6%
TeX 7.2%
CMake 1.1%
1//-------------------------------------------------------------------------------------------------------------------------------------------------------------2//3// Metal/MTLRenderPipeline.hpp4//5// Copyright 2020-2025 Apple Inc.6//7// Licensed under the Apache License, Version 2.0 (the "License");8// you may not use this file except in compliance with the License.9// You may obtain a copy of the License at10//11// http://www.apache.org/licenses/LICENSE-2.012//13// Unless required by applicable law or agreed to in writing, software14// distributed under the License is distributed on an "AS IS" BASIS,15// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.16// See the License for the specific language governing permissions and17// limitations under the License.18//19//-------------------------------------------------------------------------------------------------------------------------------------------------------------2021#pragma once2223#include "../Foundation/Foundation.hpp"24#include "MTLAllocation.hpp"25#include "MTLDefines.hpp"26#include "MTLHeaderBridge.hpp"27#include "MTLPipeline.hpp"28#include "MTLPixelFormat.hpp"29#include "MTLPrivate.hpp"30#include "MTLRenderCommandEncoder.hpp"31#include "MTLTypes.hpp"3233namespace MTL34{35class Device;36class Function;37class FunctionHandle;38class IntersectionFunctionTable;39class IntersectionFunctionTableDescriptor;40class LinkedFunctions;41class LogicalToPhysicalColorAttachmentMap;42class MeshRenderPipelineDescriptor;43class PipelineBufferDescriptorArray;44class RenderPipelineColorAttachmentDescriptor;45class RenderPipelineColorAttachmentDescriptorArray;46class RenderPipelineDescriptor;47class RenderPipelineFunctionsDescriptor;48class RenderPipelineReflection;49class RenderPipelineState;50class TileRenderPipelineColorAttachmentDescriptor;51class TileRenderPipelineColorAttachmentDescriptorArray;52class TileRenderPipelineDescriptor;53class VertexDescriptor;54class VisibleFunctionTable;55class VisibleFunctionTableDescriptor;5657}58namespace MTL459{60class BinaryFunction;61class PipelineDescriptor;62class RenderPipelineBinaryFunctionsDescriptor;6364}65namespace MTL66{67_MTL_ENUM(NS::UInteger, BlendFactor) {68 BlendFactorZero = 0,69 BlendFactorOne = 1,70 BlendFactorSourceColor = 2,71 BlendFactorOneMinusSourceColor = 3,72 BlendFactorSourceAlpha = 4,73 BlendFactorOneMinusSourceAlpha = 5,74 BlendFactorDestinationColor = 6,75 BlendFactorOneMinusDestinationColor = 7,76 BlendFactorDestinationAlpha = 8,77 BlendFactorOneMinusDestinationAlpha = 9,78 BlendFactorSourceAlphaSaturated = 10,79 BlendFactorBlendColor = 11,80 BlendFactorOneMinusBlendColor = 12,81 BlendFactorBlendAlpha = 13,82 BlendFactorOneMinusBlendAlpha = 14,83 BlendFactorSource1Color = 15,84 BlendFactorOneMinusSource1Color = 16,85 BlendFactorSource1Alpha = 17,86 BlendFactorOneMinusSource1Alpha = 18,87 BlendFactorUnspecialized = 19,88};8990_MTL_ENUM(NS::UInteger, BlendOperation) {91 BlendOperationAdd = 0,92 BlendOperationSubtract = 1,93 BlendOperationReverseSubtract = 2,94 BlendOperationMin = 3,95 BlendOperationMax = 4,96 BlendOperationUnspecialized = 5,97};9899_MTL_ENUM(NS::UInteger, PrimitiveTopologyClass) {100 PrimitiveTopologyClassUnspecified = 0,101 PrimitiveTopologyClassPoint = 1,102 PrimitiveTopologyClassLine = 2,103 PrimitiveTopologyClassTriangle = 3,104};105106_MTL_ENUM(NS::UInteger, TessellationPartitionMode) {107 TessellationPartitionModePow2 = 0,108 TessellationPartitionModeInteger = 1,109 TessellationPartitionModeFractionalOdd = 2,110 TessellationPartitionModeFractionalEven = 3,111};112113_MTL_ENUM(NS::UInteger, TessellationFactorStepFunction) {114 TessellationFactorStepFunctionConstant = 0,115 TessellationFactorStepFunctionPerPatch = 1,116 TessellationFactorStepFunctionPerInstance = 2,117 TessellationFactorStepFunctionPerPatchAndPerInstance = 3,118};119120_MTL_ENUM(NS::UInteger, TessellationFactorFormat) {121 TessellationFactorFormatHalf = 0,122};123124_MTL_ENUM(NS::UInteger, TessellationControlPointIndexType) {125 TessellationControlPointIndexTypeNone = 0,126 TessellationControlPointIndexTypeUInt16 = 1,127 TessellationControlPointIndexTypeUInt32 = 2,128};129130_MTL_OPTIONS(NS::UInteger, ColorWriteMask) {131 ColorWriteMaskNone = 0,132 ColorWriteMaskRed = 1 << 3,133 ColorWriteMaskGreen = 1 << 2,134 ColorWriteMaskBlue = 1 << 1,135 ColorWriteMaskAlpha = 1,136 ColorWriteMaskAll = 15,137 ColorWriteMaskUnspecialized = 1 << 4,138};139140class RenderPipelineColorAttachmentDescriptor : public NS::Copying<RenderPipelineColorAttachmentDescriptor>141{142public:143 static RenderPipelineColorAttachmentDescriptor* alloc();144145 BlendOperation alphaBlendOperation() const;146147 [[deprecated("please use isBlendingEnabled instead")]]148 bool blendingEnabled() const;149150 BlendFactor destinationAlphaBlendFactor() const;151152 BlendFactor destinationRGBBlendFactor() const;153154 RenderPipelineColorAttachmentDescriptor* init();155156 bool isBlendingEnabled() const;157158 PixelFormat pixelFormat() const;159160 BlendOperation rgbBlendOperation() const;161162 void setAlphaBlendOperation(MTL::BlendOperation alphaBlendOperation);163164 void setBlendingEnabled(bool blendingEnabled);165166 void setDestinationAlphaBlendFactor(MTL::BlendFactor destinationAlphaBlendFactor);167168 void setDestinationRGBBlendFactor(MTL::BlendFactor destinationRGBBlendFactor);169170 void setPixelFormat(MTL::PixelFormat pixelFormat);171172 void setRgbBlendOperation(MTL::BlendOperation rgbBlendOperation);173174 void setSourceAlphaBlendFactor(MTL::BlendFactor sourceAlphaBlendFactor);175176 void setSourceRGBBlendFactor(MTL::BlendFactor sourceRGBBlendFactor);177178 void setWriteMask(MTL::ColorWriteMask writeMask);179180 BlendFactor sourceAlphaBlendFactor() const;181182 BlendFactor sourceRGBBlendFactor() const;183184 ColorWriteMask writeMask() const;185};186class LogicalToPhysicalColorAttachmentMap : public NS::Copying<LogicalToPhysicalColorAttachmentMap>187{188public:189 static LogicalToPhysicalColorAttachmentMap* alloc();190191 NS::UInteger getPhysicalIndex(NS::UInteger logicalIndex);192193 LogicalToPhysicalColorAttachmentMap* init();194195 void reset();196197 void setPhysicalIndex(NS::UInteger physicalIndex, NS::UInteger logicalIndex);198};199class RenderPipelineReflection : public NS::Referencing<RenderPipelineReflection>200{201public:202 static RenderPipelineReflection* alloc();203204 NS::Array* fragmentArguments() const;205206 NS::Array* fragmentBindings() const;207208 RenderPipelineReflection* init();209210 NS::Array* meshBindings() const;211212 NS::Array* objectBindings() const;213214 NS::Array* tileArguments() const;215216 NS::Array* tileBindings() const;217218 NS::Array* vertexArguments() const;219220 NS::Array* vertexBindings() const;221};222class RenderPipelineDescriptor : public NS::Copying<RenderPipelineDescriptor>223{224public:225 static RenderPipelineDescriptor* alloc();226227 [[deprecated("please use isAlphaToCoverageEnabled instead")]]228 bool alphaToCoverageEnabled() const;229230 [[deprecated("please use isAlphaToOneEnabled instead")]]231 bool alphaToOneEnabled() const;232233 NS::Array* binaryArchives() const;234235 RenderPipelineColorAttachmentDescriptorArray* colorAttachments() const;236237 PixelFormat depthAttachmentPixelFormat() const;238239 PipelineBufferDescriptorArray* fragmentBuffers() const;240241 Function* fragmentFunction() const;242243 LinkedFunctions* fragmentLinkedFunctions() const;244245 NS::Array* fragmentPreloadedLibraries() const;246247 RenderPipelineDescriptor* init();248249 PrimitiveTopologyClass inputPrimitiveTopology() const;250251 bool isAlphaToCoverageEnabled() const;252253 bool isAlphaToOneEnabled() const;254255 bool isRasterizationEnabled() const;256257 bool isTessellationFactorScaleEnabled() const;258259 NS::String* label() const;260261 NS::UInteger maxFragmentCallStackDepth() const;262263 NS::UInteger maxTessellationFactor() const;264265 NS::UInteger maxVertexAmplificationCount() const;266267 NS::UInteger maxVertexCallStackDepth() const;268269 NS::UInteger rasterSampleCount() const;270271 [[deprecated("please use isRasterizationEnabled instead")]]272 bool rasterizationEnabled() const;273274 void reset();275276 NS::UInteger sampleCount() const;277278 void setAlphaToCoverageEnabled(bool alphaToCoverageEnabled);279280 void setAlphaToOneEnabled(bool alphaToOneEnabled);281282 void setBinaryArchives(const NS::Array* binaryArchives);283284 void setDepthAttachmentPixelFormat(MTL::PixelFormat depthAttachmentPixelFormat);285286 void setFragmentFunction(const MTL::Function* fragmentFunction);287288 void setFragmentLinkedFunctions(const MTL::LinkedFunctions* fragmentLinkedFunctions);289290 void setFragmentPreloadedLibraries(const NS::Array* fragmentPreloadedLibraries);291292 void setInputPrimitiveTopology(MTL::PrimitiveTopologyClass inputPrimitiveTopology);293294 void setLabel(const NS::String* label);295296 void setMaxFragmentCallStackDepth(NS::UInteger maxFragmentCallStackDepth);297298 void setMaxTessellationFactor(NS::UInteger maxTessellationFactor);299300 void setMaxVertexAmplificationCount(NS::UInteger maxVertexAmplificationCount);301302 void setMaxVertexCallStackDepth(NS::UInteger maxVertexCallStackDepth);303304 void setRasterSampleCount(NS::UInteger rasterSampleCount);305306 void setRasterizationEnabled(bool rasterizationEnabled);307308 void setSampleCount(NS::UInteger sampleCount);309310 void setShaderValidation(MTL::ShaderValidation shaderValidation);311312 void setStencilAttachmentPixelFormat(MTL::PixelFormat stencilAttachmentPixelFormat);313314 void setSupportAddingFragmentBinaryFunctions(bool supportAddingFragmentBinaryFunctions);315316 void setSupportAddingVertexBinaryFunctions(bool supportAddingVertexBinaryFunctions);317318 void setSupportIndirectCommandBuffers(bool supportIndirectCommandBuffers);319320 void setTessellationControlPointIndexType(MTL::TessellationControlPointIndexType tessellationControlPointIndexType);321322 void setTessellationFactorFormat(MTL::TessellationFactorFormat tessellationFactorFormat);323324 void setTessellationFactorScaleEnabled(bool tessellationFactorScaleEnabled);325326 void setTessellationFactorStepFunction(MTL::TessellationFactorStepFunction tessellationFactorStepFunction);327328 void setTessellationOutputWindingOrder(MTL::Winding tessellationOutputWindingOrder);329330 void setTessellationPartitionMode(MTL::TessellationPartitionMode tessellationPartitionMode);331332 void setVertexDescriptor(const MTL::VertexDescriptor* vertexDescriptor);333334 void setVertexFunction(const MTL::Function* vertexFunction);335336 void setVertexLinkedFunctions(const MTL::LinkedFunctions* vertexLinkedFunctions);337338 void setVertexPreloadedLibraries(const NS::Array* vertexPreloadedLibraries);339340 ShaderValidation shaderValidation() const;341342 PixelFormat stencilAttachmentPixelFormat() const;343344 bool supportAddingFragmentBinaryFunctions() const;345346 bool supportAddingVertexBinaryFunctions() const;347348 bool supportIndirectCommandBuffers() const;349350 TessellationControlPointIndexType tessellationControlPointIndexType() const;351352 TessellationFactorFormat tessellationFactorFormat() const;353354 [[deprecated("please use isTessellationFactorScaleEnabled instead")]]355 bool tessellationFactorScaleEnabled() const;356357 TessellationFactorStepFunction tessellationFactorStepFunction() const;358359 Winding tessellationOutputWindingOrder() const;360361 TessellationPartitionMode tessellationPartitionMode() const;362363 PipelineBufferDescriptorArray* vertexBuffers() const;364365 VertexDescriptor* vertexDescriptor() const;366367 Function* vertexFunction() const;368369 LinkedFunctions* vertexLinkedFunctions() const;370371 NS::Array* vertexPreloadedLibraries() const;372};373class RenderPipelineFunctionsDescriptor : public NS::Copying<RenderPipelineFunctionsDescriptor>374{375public:376 static RenderPipelineFunctionsDescriptor* alloc();377378 NS::Array* fragmentAdditionalBinaryFunctions() const;379380 RenderPipelineFunctionsDescriptor* init();381382 void setFragmentAdditionalBinaryFunctions(const NS::Array* fragmentAdditionalBinaryFunctions);383384 void setTileAdditionalBinaryFunctions(const NS::Array* tileAdditionalBinaryFunctions);385386 void setVertexAdditionalBinaryFunctions(const NS::Array* vertexAdditionalBinaryFunctions);387388 NS::Array* tileAdditionalBinaryFunctions() const;389390 NS::Array* vertexAdditionalBinaryFunctions() const;391};392class RenderPipelineState : public NS::Referencing<RenderPipelineState, Allocation>393{394public:395 Device* device() const;396397 FunctionHandle* functionHandle(const NS::String* name, MTL::RenderStages stage);398 FunctionHandle* functionHandle(const MTL4::BinaryFunction* function, MTL::RenderStages stage);399 FunctionHandle* functionHandle(const MTL::Function* function, MTL::RenderStages stage);400401 ResourceID gpuResourceID() const;402403 NS::UInteger imageblockMemoryLength(MTL::Size imageblockDimensions);404405 NS::UInteger imageblockSampleLength() const;406407 NS::String* label() const;408409 NS::UInteger maxTotalThreadgroupsPerMeshGrid() const;410411 NS::UInteger maxTotalThreadsPerMeshThreadgroup() const;412413 NS::UInteger maxTotalThreadsPerObjectThreadgroup() const;414415 NS::UInteger maxTotalThreadsPerThreadgroup() const;416417 NS::UInteger meshThreadExecutionWidth() const;418419 IntersectionFunctionTable* newIntersectionFunctionTable(const MTL::IntersectionFunctionTableDescriptor* descriptor, MTL::RenderStages stage);420421 MTL4::PipelineDescriptor* newRenderPipelineDescriptor();422423 RenderPipelineState* newRenderPipelineState(const MTL4::RenderPipelineBinaryFunctionsDescriptor* binaryFunctionsDescriptor, NS::Error** error);424 RenderPipelineState* newRenderPipelineState(const MTL::RenderPipelineFunctionsDescriptor* additionalBinaryFunctions, NS::Error** error);425426 VisibleFunctionTable* newVisibleFunctionTable(const MTL::VisibleFunctionTableDescriptor* descriptor, MTL::RenderStages stage);427428 NS::UInteger objectThreadExecutionWidth() const;429430 RenderPipelineReflection* reflection() const;431432 Size requiredThreadsPerMeshThreadgroup() const;433434 Size requiredThreadsPerObjectThreadgroup() const;435436 Size requiredThreadsPerTileThreadgroup() const;437438 ShaderValidation shaderValidation() const;439440 bool supportIndirectCommandBuffers() const;441442 bool threadgroupSizeMatchesTileSize() const;443};444class RenderPipelineColorAttachmentDescriptorArray : public NS::Referencing<RenderPipelineColorAttachmentDescriptorArray>445{446public:447 static RenderPipelineColorAttachmentDescriptorArray* alloc();448449 RenderPipelineColorAttachmentDescriptorArray* init();450451 RenderPipelineColorAttachmentDescriptor* object(NS::UInteger attachmentIndex);452 void setObject(const MTL::RenderPipelineColorAttachmentDescriptor* attachment, NS::UInteger attachmentIndex);453};454class TileRenderPipelineColorAttachmentDescriptor : public NS::Copying<TileRenderPipelineColorAttachmentDescriptor>455{456public:457 static TileRenderPipelineColorAttachmentDescriptor* alloc();458459 TileRenderPipelineColorAttachmentDescriptor* init();460461 PixelFormat pixelFormat() const;462 void setPixelFormat(MTL::PixelFormat pixelFormat);463};464class TileRenderPipelineColorAttachmentDescriptorArray : public NS::Referencing<TileRenderPipelineColorAttachmentDescriptorArray>465{466public:467 static TileRenderPipelineColorAttachmentDescriptorArray* alloc();468469 TileRenderPipelineColorAttachmentDescriptorArray* init();470471 TileRenderPipelineColorAttachmentDescriptor* object(NS::UInteger attachmentIndex);472 void setObject(const MTL::TileRenderPipelineColorAttachmentDescriptor* attachment, NS::UInteger attachmentIndex);473};474class TileRenderPipelineDescriptor : public NS::Copying<TileRenderPipelineDescriptor>475{476public:477 static TileRenderPipelineDescriptor* alloc();478479 NS::Array* binaryArchives() const;480481 TileRenderPipelineColorAttachmentDescriptorArray* colorAttachments() const;482483 TileRenderPipelineDescriptor* init();484485 NS::String* label() const;486487 LinkedFunctions* linkedFunctions() const;488489 NS::UInteger maxCallStackDepth() const;490491 NS::UInteger maxTotalThreadsPerThreadgroup() const;492493 NS::Array* preloadedLibraries() const;494495 NS::UInteger rasterSampleCount() const;496497 Size requiredThreadsPerThreadgroup() const;498499 void reset();500501 void setBinaryArchives(const NS::Array* binaryArchives);502503 void setLabel(const NS::String* label);504505 void setLinkedFunctions(const MTL::LinkedFunctions* linkedFunctions);506507 void setMaxCallStackDepth(NS::UInteger maxCallStackDepth);508509 void setMaxTotalThreadsPerThreadgroup(NS::UInteger maxTotalThreadsPerThreadgroup);510511 void setPreloadedLibraries(const NS::Array* preloadedLibraries);512513 void setRasterSampleCount(NS::UInteger rasterSampleCount);514515 void setRequiredThreadsPerThreadgroup(MTL::Size requiredThreadsPerThreadgroup);516517 void setShaderValidation(MTL::ShaderValidation shaderValidation);518519 void setSupportAddingBinaryFunctions(bool supportAddingBinaryFunctions);520521 void setThreadgroupSizeMatchesTileSize(bool threadgroupSizeMatchesTileSize);522523 void setTileFunction(const MTL::Function* tileFunction);524525 ShaderValidation shaderValidation() const;526527 bool supportAddingBinaryFunctions() const;528529 bool threadgroupSizeMatchesTileSize() const;530531 PipelineBufferDescriptorArray* tileBuffers() const;532533 Function* tileFunction() const;534};535class MeshRenderPipelineDescriptor : public NS::Copying<MeshRenderPipelineDescriptor>536{537public:538 static MeshRenderPipelineDescriptor* alloc();539540 [[deprecated("please use isAlphaToCoverageEnabled instead")]]541 bool alphaToCoverageEnabled() const;542543 [[deprecated("please use isAlphaToOneEnabled instead")]]544 bool alphaToOneEnabled() const;545546 NS::Array* binaryArchives() const;547548 RenderPipelineColorAttachmentDescriptorArray* colorAttachments() const;549550 PixelFormat depthAttachmentPixelFormat() const;551552 PipelineBufferDescriptorArray* fragmentBuffers() const;553554 Function* fragmentFunction() const;555556 LinkedFunctions* fragmentLinkedFunctions() const;557558 MeshRenderPipelineDescriptor* init();559560 bool isAlphaToCoverageEnabled() const;561562 bool isAlphaToOneEnabled() const;563564 bool isRasterizationEnabled() const;565566 NS::String* label() const;567568 NS::UInteger maxTotalThreadgroupsPerMeshGrid() const;569570 NS::UInteger maxTotalThreadsPerMeshThreadgroup() const;571572 NS::UInteger maxTotalThreadsPerObjectThreadgroup() const;573574 NS::UInteger maxVertexAmplificationCount() const;575576 PipelineBufferDescriptorArray* meshBuffers() const;577578 Function* meshFunction() const;579580 LinkedFunctions* meshLinkedFunctions() const;581582 bool meshThreadgroupSizeIsMultipleOfThreadExecutionWidth() const;583584 PipelineBufferDescriptorArray* objectBuffers() const;585586 Function* objectFunction() const;587588 LinkedFunctions* objectLinkedFunctions() const;589590 bool objectThreadgroupSizeIsMultipleOfThreadExecutionWidth() const;591592 NS::UInteger payloadMemoryLength() const;593594 NS::UInteger rasterSampleCount() const;595596 [[deprecated("please use isRasterizationEnabled instead")]]597 bool rasterizationEnabled() const;598599 Size requiredThreadsPerMeshThreadgroup() const;600601 Size requiredThreadsPerObjectThreadgroup() const;602603 void reset();604605 void setAlphaToCoverageEnabled(bool alphaToCoverageEnabled);606607 void setAlphaToOneEnabled(bool alphaToOneEnabled);608609 void setBinaryArchives(const NS::Array* binaryArchives);610611 void setDepthAttachmentPixelFormat(MTL::PixelFormat depthAttachmentPixelFormat);612613 void setFragmentFunction(const MTL::Function* fragmentFunction);614615 void setFragmentLinkedFunctions(const MTL::LinkedFunctions* fragmentLinkedFunctions);616617 void setLabel(const NS::String* label);618619 void setMaxTotalThreadgroupsPerMeshGrid(NS::UInteger maxTotalThreadgroupsPerMeshGrid);620621 void setMaxTotalThreadsPerMeshThreadgroup(NS::UInteger maxTotalThreadsPerMeshThreadgroup);622623 void setMaxTotalThreadsPerObjectThreadgroup(NS::UInteger maxTotalThreadsPerObjectThreadgroup);624625 void setMaxVertexAmplificationCount(NS::UInteger maxVertexAmplificationCount);626627 void setMeshFunction(const MTL::Function* meshFunction);628629 void setMeshLinkedFunctions(const MTL::LinkedFunctions* meshLinkedFunctions);630631 void setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth(bool meshThreadgroupSizeIsMultipleOfThreadExecutionWidth);632633 void setObjectFunction(const MTL::Function* objectFunction);634635 void setObjectLinkedFunctions(const MTL::LinkedFunctions* objectLinkedFunctions);636637 void setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth(bool objectThreadgroupSizeIsMultipleOfThreadExecutionWidth);638639 void setPayloadMemoryLength(NS::UInteger payloadMemoryLength);640641 void setRasterSampleCount(NS::UInteger rasterSampleCount);642643 void setRasterizationEnabled(bool rasterizationEnabled);644645 void setRequiredThreadsPerMeshThreadgroup(MTL::Size requiredThreadsPerMeshThreadgroup);646647 void setRequiredThreadsPerObjectThreadgroup(MTL::Size requiredThreadsPerObjectThreadgroup);648649 void setShaderValidation(MTL::ShaderValidation shaderValidation);650651 void setStencilAttachmentPixelFormat(MTL::PixelFormat stencilAttachmentPixelFormat);652653 void setSupportIndirectCommandBuffers(bool supportIndirectCommandBuffers);654655 ShaderValidation shaderValidation() const;656657 PixelFormat stencilAttachmentPixelFormat() const;658659 bool supportIndirectCommandBuffers() const;660};661662}663_MTL_INLINE MTL::RenderPipelineColorAttachmentDescriptor* MTL::RenderPipelineColorAttachmentDescriptor::alloc()664{665 return NS::Object::alloc<MTL::RenderPipelineColorAttachmentDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPipelineColorAttachmentDescriptor));666}667668_MTL_INLINE MTL::BlendOperation MTL::RenderPipelineColorAttachmentDescriptor::alphaBlendOperation() const669{670 return Object::sendMessage<MTL::BlendOperation>(this, _MTL_PRIVATE_SEL(alphaBlendOperation));671}672673_MTL_INLINE bool MTL::RenderPipelineColorAttachmentDescriptor::blendingEnabled() const674{675 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isBlendingEnabled));676}677678_MTL_INLINE MTL::BlendFactor MTL::RenderPipelineColorAttachmentDescriptor::destinationAlphaBlendFactor() const679{680 return Object::sendMessage<MTL::BlendFactor>(this, _MTL_PRIVATE_SEL(destinationAlphaBlendFactor));681}682683_MTL_INLINE MTL::BlendFactor MTL::RenderPipelineColorAttachmentDescriptor::destinationRGBBlendFactor() const684{685 return Object::sendMessage<MTL::BlendFactor>(this, _MTL_PRIVATE_SEL(destinationRGBBlendFactor));686}687688_MTL_INLINE MTL::RenderPipelineColorAttachmentDescriptor* MTL::RenderPipelineColorAttachmentDescriptor::init()689{690 return NS::Object::init<MTL::RenderPipelineColorAttachmentDescriptor>();691}692693_MTL_INLINE bool MTL::RenderPipelineColorAttachmentDescriptor::isBlendingEnabled() const694{695 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isBlendingEnabled));696}697698_MTL_INLINE MTL::PixelFormat MTL::RenderPipelineColorAttachmentDescriptor::pixelFormat() const699{700 return Object::sendMessage<MTL::PixelFormat>(this, _MTL_PRIVATE_SEL(pixelFormat));701}702703_MTL_INLINE MTL::BlendOperation MTL::RenderPipelineColorAttachmentDescriptor::rgbBlendOperation() const704{705 return Object::sendMessage<MTL::BlendOperation>(this, _MTL_PRIVATE_SEL(rgbBlendOperation));706}707708_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setAlphaBlendOperation(MTL::BlendOperation alphaBlendOperation)709{710 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setAlphaBlendOperation_), alphaBlendOperation);711}712713_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setBlendingEnabled(bool blendingEnabled)714{715 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBlendingEnabled_), blendingEnabled);716}717718_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setDestinationAlphaBlendFactor(MTL::BlendFactor destinationAlphaBlendFactor)719{720 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDestinationAlphaBlendFactor_), destinationAlphaBlendFactor);721}722723_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setDestinationRGBBlendFactor(MTL::BlendFactor destinationRGBBlendFactor)724{725 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDestinationRGBBlendFactor_), destinationRGBBlendFactor);726}727728_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setPixelFormat(MTL::PixelFormat pixelFormat)729{730 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPixelFormat_), pixelFormat);731}732733_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setRgbBlendOperation(MTL::BlendOperation rgbBlendOperation)734{735 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRgbBlendOperation_), rgbBlendOperation);736}737738_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setSourceAlphaBlendFactor(MTL::BlendFactor sourceAlphaBlendFactor)739{740 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSourceAlphaBlendFactor_), sourceAlphaBlendFactor);741}742743_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setSourceRGBBlendFactor(MTL::BlendFactor sourceRGBBlendFactor)744{745 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSourceRGBBlendFactor_), sourceRGBBlendFactor);746}747748_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptor::setWriteMask(MTL::ColorWriteMask writeMask)749{750 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setWriteMask_), writeMask);751}752753_MTL_INLINE MTL::BlendFactor MTL::RenderPipelineColorAttachmentDescriptor::sourceAlphaBlendFactor() const754{755 return Object::sendMessage<MTL::BlendFactor>(this, _MTL_PRIVATE_SEL(sourceAlphaBlendFactor));756}757758_MTL_INLINE MTL::BlendFactor MTL::RenderPipelineColorAttachmentDescriptor::sourceRGBBlendFactor() const759{760 return Object::sendMessage<MTL::BlendFactor>(this, _MTL_PRIVATE_SEL(sourceRGBBlendFactor));761}762763_MTL_INLINE MTL::ColorWriteMask MTL::RenderPipelineColorAttachmentDescriptor::writeMask() const764{765 return Object::sendMessage<MTL::ColorWriteMask>(this, _MTL_PRIVATE_SEL(writeMask));766}767768_MTL_INLINE MTL::LogicalToPhysicalColorAttachmentMap* MTL::LogicalToPhysicalColorAttachmentMap::alloc()769{770 return NS::Object::alloc<MTL::LogicalToPhysicalColorAttachmentMap>(_MTL_PRIVATE_CLS(MTLLogicalToPhysicalColorAttachmentMap));771}772773_MTL_INLINE NS::UInteger MTL::LogicalToPhysicalColorAttachmentMap::getPhysicalIndex(NS::UInteger logicalIndex)774{775 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(getPhysicalIndexForLogicalIndex_), logicalIndex);776}777778_MTL_INLINE MTL::LogicalToPhysicalColorAttachmentMap* MTL::LogicalToPhysicalColorAttachmentMap::init()779{780 return NS::Object::init<MTL::LogicalToPhysicalColorAttachmentMap>();781}782783_MTL_INLINE void MTL::LogicalToPhysicalColorAttachmentMap::reset()784{785 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(reset));786}787788_MTL_INLINE void MTL::LogicalToPhysicalColorAttachmentMap::setPhysicalIndex(NS::UInteger physicalIndex, NS::UInteger logicalIndex)789{790 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPhysicalIndex_forLogicalIndex_), physicalIndex, logicalIndex);791}792793_MTL_INLINE MTL::RenderPipelineReflection* MTL::RenderPipelineReflection::alloc()794{795 return NS::Object::alloc<MTL::RenderPipelineReflection>(_MTL_PRIVATE_CLS(MTLRenderPipelineReflection));796}797798_MTL_INLINE NS::Array* MTL::RenderPipelineReflection::fragmentArguments() const799{800 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(fragmentArguments));801}802803_MTL_INLINE NS::Array* MTL::RenderPipelineReflection::fragmentBindings() const804{805 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(fragmentBindings));806}807808_MTL_INLINE MTL::RenderPipelineReflection* MTL::RenderPipelineReflection::init()809{810 return NS::Object::init<MTL::RenderPipelineReflection>();811}812813_MTL_INLINE NS::Array* MTL::RenderPipelineReflection::meshBindings() const814{815 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(meshBindings));816}817818_MTL_INLINE NS::Array* MTL::RenderPipelineReflection::objectBindings() const819{820 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(objectBindings));821}822823_MTL_INLINE NS::Array* MTL::RenderPipelineReflection::tileArguments() const824{825 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(tileArguments));826}827828_MTL_INLINE NS::Array* MTL::RenderPipelineReflection::tileBindings() const829{830 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(tileBindings));831}832833_MTL_INLINE NS::Array* MTL::RenderPipelineReflection::vertexArguments() const834{835 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(vertexArguments));836}837838_MTL_INLINE NS::Array* MTL::RenderPipelineReflection::vertexBindings() const839{840 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(vertexBindings));841}842843_MTL_INLINE MTL::RenderPipelineDescriptor* MTL::RenderPipelineDescriptor::alloc()844{845 return NS::Object::alloc<MTL::RenderPipelineDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPipelineDescriptor));846}847848_MTL_INLINE bool MTL::RenderPipelineDescriptor::alphaToCoverageEnabled() const849{850 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isAlphaToCoverageEnabled));851}852853_MTL_INLINE bool MTL::RenderPipelineDescriptor::alphaToOneEnabled() const854{855 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isAlphaToOneEnabled));856}857858_MTL_INLINE NS::Array* MTL::RenderPipelineDescriptor::binaryArchives() const859{860 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(binaryArchives));861}862863_MTL_INLINE MTL::RenderPipelineColorAttachmentDescriptorArray* MTL::RenderPipelineDescriptor::colorAttachments() const864{865 return Object::sendMessage<MTL::RenderPipelineColorAttachmentDescriptorArray*>(this, _MTL_PRIVATE_SEL(colorAttachments));866}867868_MTL_INLINE MTL::PixelFormat MTL::RenderPipelineDescriptor::depthAttachmentPixelFormat() const869{870 return Object::sendMessage<MTL::PixelFormat>(this, _MTL_PRIVATE_SEL(depthAttachmentPixelFormat));871}872873_MTL_INLINE MTL::PipelineBufferDescriptorArray* MTL::RenderPipelineDescriptor::fragmentBuffers() const874{875 return Object::sendMessage<MTL::PipelineBufferDescriptorArray*>(this, _MTL_PRIVATE_SEL(fragmentBuffers));876}877878_MTL_INLINE MTL::Function* MTL::RenderPipelineDescriptor::fragmentFunction() const879{880 return Object::sendMessage<MTL::Function*>(this, _MTL_PRIVATE_SEL(fragmentFunction));881}882883_MTL_INLINE MTL::LinkedFunctions* MTL::RenderPipelineDescriptor::fragmentLinkedFunctions() const884{885 return Object::sendMessage<MTL::LinkedFunctions*>(this, _MTL_PRIVATE_SEL(fragmentLinkedFunctions));886}887888_MTL_INLINE NS::Array* MTL::RenderPipelineDescriptor::fragmentPreloadedLibraries() const889{890 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(fragmentPreloadedLibraries));891}892893_MTL_INLINE MTL::RenderPipelineDescriptor* MTL::RenderPipelineDescriptor::init()894{895 return NS::Object::init<MTL::RenderPipelineDescriptor>();896}897898_MTL_INLINE MTL::PrimitiveTopologyClass MTL::RenderPipelineDescriptor::inputPrimitiveTopology() const899{900 return Object::sendMessage<MTL::PrimitiveTopologyClass>(this, _MTL_PRIVATE_SEL(inputPrimitiveTopology));901}902903_MTL_INLINE bool MTL::RenderPipelineDescriptor::isAlphaToCoverageEnabled() const904{905 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isAlphaToCoverageEnabled));906}907908_MTL_INLINE bool MTL::RenderPipelineDescriptor::isAlphaToOneEnabled() const909{910 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isAlphaToOneEnabled));911}912913_MTL_INLINE bool MTL::RenderPipelineDescriptor::isRasterizationEnabled() const914{915 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isRasterizationEnabled));916}917918_MTL_INLINE bool MTL::RenderPipelineDescriptor::isTessellationFactorScaleEnabled() const919{920 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isTessellationFactorScaleEnabled));921}922923_MTL_INLINE NS::String* MTL::RenderPipelineDescriptor::label() const924{925 return Object::sendMessage<NS::String*>(this, _MTL_PRIVATE_SEL(label));926}927928_MTL_INLINE NS::UInteger MTL::RenderPipelineDescriptor::maxFragmentCallStackDepth() const929{930 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxFragmentCallStackDepth));931}932933_MTL_INLINE NS::UInteger MTL::RenderPipelineDescriptor::maxTessellationFactor() const934{935 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTessellationFactor));936}937938_MTL_INLINE NS::UInteger MTL::RenderPipelineDescriptor::maxVertexAmplificationCount() const939{940 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxVertexAmplificationCount));941}942943_MTL_INLINE NS::UInteger MTL::RenderPipelineDescriptor::maxVertexCallStackDepth() const944{945 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxVertexCallStackDepth));946}947948_MTL_INLINE NS::UInteger MTL::RenderPipelineDescriptor::rasterSampleCount() const949{950 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(rasterSampleCount));951}952953_MTL_INLINE bool MTL::RenderPipelineDescriptor::rasterizationEnabled() const954{955 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isRasterizationEnabled));956}957958_MTL_INLINE void MTL::RenderPipelineDescriptor::reset()959{960 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(reset));961}962963_MTL_INLINE NS::UInteger MTL::RenderPipelineDescriptor::sampleCount() const964{965 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(sampleCount));966}967968_MTL_INLINE void MTL::RenderPipelineDescriptor::setAlphaToCoverageEnabled(bool alphaToCoverageEnabled)969{970 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setAlphaToCoverageEnabled_), alphaToCoverageEnabled);971}972973_MTL_INLINE void MTL::RenderPipelineDescriptor::setAlphaToOneEnabled(bool alphaToOneEnabled)974{975 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setAlphaToOneEnabled_), alphaToOneEnabled);976}977978_MTL_INLINE void MTL::RenderPipelineDescriptor::setBinaryArchives(const NS::Array* binaryArchives)979{980 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBinaryArchives_), binaryArchives);981}982983_MTL_INLINE void MTL::RenderPipelineDescriptor::setDepthAttachmentPixelFormat(MTL::PixelFormat depthAttachmentPixelFormat)984{985 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthAttachmentPixelFormat_), depthAttachmentPixelFormat);986}987988_MTL_INLINE void MTL::RenderPipelineDescriptor::setFragmentFunction(const MTL::Function* fragmentFunction)989{990 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentFunction_), fragmentFunction);991}992993_MTL_INLINE void MTL::RenderPipelineDescriptor::setFragmentLinkedFunctions(const MTL::LinkedFunctions* fragmentLinkedFunctions)994{995 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentLinkedFunctions_), fragmentLinkedFunctions);996}997998_MTL_INLINE void MTL::RenderPipelineDescriptor::setFragmentPreloadedLibraries(const NS::Array* fragmentPreloadedLibraries)999{1000 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentPreloadedLibraries_), fragmentPreloadedLibraries);1001}10021003_MTL_INLINE void MTL::RenderPipelineDescriptor::setInputPrimitiveTopology(MTL::PrimitiveTopologyClass inputPrimitiveTopology)1004{1005 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInputPrimitiveTopology_), inputPrimitiveTopology);1006}10071008_MTL_INLINE void MTL::RenderPipelineDescriptor::setLabel(const NS::String* label)1009{1010 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLabel_), label);1011}10121013_MTL_INLINE void MTL::RenderPipelineDescriptor::setMaxFragmentCallStackDepth(NS::UInteger maxFragmentCallStackDepth)1014{1015 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxFragmentCallStackDepth_), maxFragmentCallStackDepth);1016}10171018_MTL_INLINE void MTL::RenderPipelineDescriptor::setMaxTessellationFactor(NS::UInteger maxTessellationFactor)1019{1020 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxTessellationFactor_), maxTessellationFactor);1021}10221023_MTL_INLINE void MTL::RenderPipelineDescriptor::setMaxVertexAmplificationCount(NS::UInteger maxVertexAmplificationCount)1024{1025 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxVertexAmplificationCount_), maxVertexAmplificationCount);1026}10271028_MTL_INLINE void MTL::RenderPipelineDescriptor::setMaxVertexCallStackDepth(NS::UInteger maxVertexCallStackDepth)1029{1030 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxVertexCallStackDepth_), maxVertexCallStackDepth);1031}10321033_MTL_INLINE void MTL::RenderPipelineDescriptor::setRasterSampleCount(NS::UInteger rasterSampleCount)1034{1035 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRasterSampleCount_), rasterSampleCount);1036}10371038_MTL_INLINE void MTL::RenderPipelineDescriptor::setRasterizationEnabled(bool rasterizationEnabled)1039{1040 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRasterizationEnabled_), rasterizationEnabled);1041}10421043_MTL_INLINE void MTL::RenderPipelineDescriptor::setSampleCount(NS::UInteger sampleCount)1044{1045 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSampleCount_), sampleCount);1046}10471048_MTL_INLINE void MTL::RenderPipelineDescriptor::setShaderValidation(MTL::ShaderValidation shaderValidation)1049{1050 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setShaderValidation_), shaderValidation);1051}10521053_MTL_INLINE void MTL::RenderPipelineDescriptor::setStencilAttachmentPixelFormat(MTL::PixelFormat stencilAttachmentPixelFormat)1054{1055 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStencilAttachmentPixelFormat_), stencilAttachmentPixelFormat);1056}10571058_MTL_INLINE void MTL::RenderPipelineDescriptor::setSupportAddingFragmentBinaryFunctions(bool supportAddingFragmentBinaryFunctions)1059{1060 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSupportAddingFragmentBinaryFunctions_), supportAddingFragmentBinaryFunctions);1061}10621063_MTL_INLINE void MTL::RenderPipelineDescriptor::setSupportAddingVertexBinaryFunctions(bool supportAddingVertexBinaryFunctions)1064{1065 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSupportAddingVertexBinaryFunctions_), supportAddingVertexBinaryFunctions);1066}10671068_MTL_INLINE void MTL::RenderPipelineDescriptor::setSupportIndirectCommandBuffers(bool supportIndirectCommandBuffers)1069{1070 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSupportIndirectCommandBuffers_), supportIndirectCommandBuffers);1071}10721073_MTL_INLINE void MTL::RenderPipelineDescriptor::setTessellationControlPointIndexType(MTL::TessellationControlPointIndexType tessellationControlPointIndexType)1074{1075 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTessellationControlPointIndexType_), tessellationControlPointIndexType);1076}10771078_MTL_INLINE void MTL::RenderPipelineDescriptor::setTessellationFactorFormat(MTL::TessellationFactorFormat tessellationFactorFormat)1079{1080 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTessellationFactorFormat_), tessellationFactorFormat);1081}10821083_MTL_INLINE void MTL::RenderPipelineDescriptor::setTessellationFactorScaleEnabled(bool tessellationFactorScaleEnabled)1084{1085 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTessellationFactorScaleEnabled_), tessellationFactorScaleEnabled);1086}10871088_MTL_INLINE void MTL::RenderPipelineDescriptor::setTessellationFactorStepFunction(MTL::TessellationFactorStepFunction tessellationFactorStepFunction)1089{1090 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTessellationFactorStepFunction_), tessellationFactorStepFunction);1091}10921093_MTL_INLINE void MTL::RenderPipelineDescriptor::setTessellationOutputWindingOrder(MTL::Winding tessellationOutputWindingOrder)1094{1095 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTessellationOutputWindingOrder_), tessellationOutputWindingOrder);1096}10971098_MTL_INLINE void MTL::RenderPipelineDescriptor::setTessellationPartitionMode(MTL::TessellationPartitionMode tessellationPartitionMode)1099{1100 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTessellationPartitionMode_), tessellationPartitionMode);1101}11021103_MTL_INLINE void MTL::RenderPipelineDescriptor::setVertexDescriptor(const MTL::VertexDescriptor* vertexDescriptor)1104{1105 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexDescriptor_), vertexDescriptor);1106}11071108_MTL_INLINE void MTL::RenderPipelineDescriptor::setVertexFunction(const MTL::Function* vertexFunction)1109{1110 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexFunction_), vertexFunction);1111}11121113_MTL_INLINE void MTL::RenderPipelineDescriptor::setVertexLinkedFunctions(const MTL::LinkedFunctions* vertexLinkedFunctions)1114{1115 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexLinkedFunctions_), vertexLinkedFunctions);1116}11171118_MTL_INLINE void MTL::RenderPipelineDescriptor::setVertexPreloadedLibraries(const NS::Array* vertexPreloadedLibraries)1119{1120 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexPreloadedLibraries_), vertexPreloadedLibraries);1121}11221123_MTL_INLINE MTL::ShaderValidation MTL::RenderPipelineDescriptor::shaderValidation() const1124{1125 return Object::sendMessage<MTL::ShaderValidation>(this, _MTL_PRIVATE_SEL(shaderValidation));1126}11271128_MTL_INLINE MTL::PixelFormat MTL::RenderPipelineDescriptor::stencilAttachmentPixelFormat() const1129{1130 return Object::sendMessage<MTL::PixelFormat>(this, _MTL_PRIVATE_SEL(stencilAttachmentPixelFormat));1131}11321133_MTL_INLINE bool MTL::RenderPipelineDescriptor::supportAddingFragmentBinaryFunctions() const1134{1135 return Object::sendMessageSafe<bool>(this, _MTL_PRIVATE_SEL(supportAddingFragmentBinaryFunctions));1136}11371138_MTL_INLINE bool MTL::RenderPipelineDescriptor::supportAddingVertexBinaryFunctions() const1139{1140 return Object::sendMessageSafe<bool>(this, _MTL_PRIVATE_SEL(supportAddingVertexBinaryFunctions));1141}11421143_MTL_INLINE bool MTL::RenderPipelineDescriptor::supportIndirectCommandBuffers() const1144{1145 return Object::sendMessageSafe<bool>(this, _MTL_PRIVATE_SEL(supportIndirectCommandBuffers));1146}11471148_MTL_INLINE MTL::TessellationControlPointIndexType MTL::RenderPipelineDescriptor::tessellationControlPointIndexType() const1149{1150 return Object::sendMessage<MTL::TessellationControlPointIndexType>(this, _MTL_PRIVATE_SEL(tessellationControlPointIndexType));1151}11521153_MTL_INLINE MTL::TessellationFactorFormat MTL::RenderPipelineDescriptor::tessellationFactorFormat() const1154{1155 return Object::sendMessage<MTL::TessellationFactorFormat>(this, _MTL_PRIVATE_SEL(tessellationFactorFormat));1156}11571158_MTL_INLINE bool MTL::RenderPipelineDescriptor::tessellationFactorScaleEnabled() const1159{1160 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isTessellationFactorScaleEnabled));1161}11621163_MTL_INLINE MTL::TessellationFactorStepFunction MTL::RenderPipelineDescriptor::tessellationFactorStepFunction() const1164{1165 return Object::sendMessage<MTL::TessellationFactorStepFunction>(this, _MTL_PRIVATE_SEL(tessellationFactorStepFunction));1166}11671168_MTL_INLINE MTL::Winding MTL::RenderPipelineDescriptor::tessellationOutputWindingOrder() const1169{1170 return Object::sendMessage<MTL::Winding>(this, _MTL_PRIVATE_SEL(tessellationOutputWindingOrder));1171}11721173_MTL_INLINE MTL::TessellationPartitionMode MTL::RenderPipelineDescriptor::tessellationPartitionMode() const1174{1175 return Object::sendMessage<MTL::TessellationPartitionMode>(this, _MTL_PRIVATE_SEL(tessellationPartitionMode));1176}11771178_MTL_INLINE MTL::PipelineBufferDescriptorArray* MTL::RenderPipelineDescriptor::vertexBuffers() const1179{1180 return Object::sendMessage<MTL::PipelineBufferDescriptorArray*>(this, _MTL_PRIVATE_SEL(vertexBuffers));1181}11821183_MTL_INLINE MTL::VertexDescriptor* MTL::RenderPipelineDescriptor::vertexDescriptor() const1184{1185 return Object::sendMessage<MTL::VertexDescriptor*>(this, _MTL_PRIVATE_SEL(vertexDescriptor));1186}11871188_MTL_INLINE MTL::Function* MTL::RenderPipelineDescriptor::vertexFunction() const1189{1190 return Object::sendMessage<MTL::Function*>(this, _MTL_PRIVATE_SEL(vertexFunction));1191}11921193_MTL_INLINE MTL::LinkedFunctions* MTL::RenderPipelineDescriptor::vertexLinkedFunctions() const1194{1195 return Object::sendMessage<MTL::LinkedFunctions*>(this, _MTL_PRIVATE_SEL(vertexLinkedFunctions));1196}11971198_MTL_INLINE NS::Array* MTL::RenderPipelineDescriptor::vertexPreloadedLibraries() const1199{1200 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(vertexPreloadedLibraries));1201}12021203_MTL_INLINE MTL::RenderPipelineFunctionsDescriptor* MTL::RenderPipelineFunctionsDescriptor::alloc()1204{1205 return NS::Object::alloc<MTL::RenderPipelineFunctionsDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPipelineFunctionsDescriptor));1206}12071208_MTL_INLINE NS::Array* MTL::RenderPipelineFunctionsDescriptor::fragmentAdditionalBinaryFunctions() const1209{1210 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(fragmentAdditionalBinaryFunctions));1211}12121213_MTL_INLINE MTL::RenderPipelineFunctionsDescriptor* MTL::RenderPipelineFunctionsDescriptor::init()1214{1215 return NS::Object::init<MTL::RenderPipelineFunctionsDescriptor>();1216}12171218_MTL_INLINE void MTL::RenderPipelineFunctionsDescriptor::setFragmentAdditionalBinaryFunctions(const NS::Array* fragmentAdditionalBinaryFunctions)1219{1220 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentAdditionalBinaryFunctions_), fragmentAdditionalBinaryFunctions);1221}12221223_MTL_INLINE void MTL::RenderPipelineFunctionsDescriptor::setTileAdditionalBinaryFunctions(const NS::Array* tileAdditionalBinaryFunctions)1224{1225 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileAdditionalBinaryFunctions_), tileAdditionalBinaryFunctions);1226}12271228_MTL_INLINE void MTL::RenderPipelineFunctionsDescriptor::setVertexAdditionalBinaryFunctions(const NS::Array* vertexAdditionalBinaryFunctions)1229{1230 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexAdditionalBinaryFunctions_), vertexAdditionalBinaryFunctions);1231}12321233_MTL_INLINE NS::Array* MTL::RenderPipelineFunctionsDescriptor::tileAdditionalBinaryFunctions() const1234{1235 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(tileAdditionalBinaryFunctions));1236}12371238_MTL_INLINE NS::Array* MTL::RenderPipelineFunctionsDescriptor::vertexAdditionalBinaryFunctions() const1239{1240 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(vertexAdditionalBinaryFunctions));1241}12421243_MTL_INLINE MTL::Device* MTL::RenderPipelineState::device() const1244{1245 return Object::sendMessage<MTL::Device*>(this, _MTL_PRIVATE_SEL(device));1246}12471248_MTL_INLINE MTL::FunctionHandle* MTL::RenderPipelineState::functionHandle(const NS::String* name, MTL::RenderStages stage)1249{1250 return Object::sendMessage<MTL::FunctionHandle*>(this, _MTL_PRIVATE_SEL(functionHandleWithName_stage_), name, stage);1251}12521253_MTL_INLINE MTL::FunctionHandle* MTL::RenderPipelineState::functionHandle(const MTL4::BinaryFunction* function, MTL::RenderStages stage)1254{1255 return Object::sendMessage<MTL::FunctionHandle*>(this, _MTL_PRIVATE_SEL(functionHandleWithBinaryFunction_stage_), function, stage);1256}12571258_MTL_INLINE MTL::FunctionHandle* MTL::RenderPipelineState::functionHandle(const MTL::Function* function, MTL::RenderStages stage)1259{1260 return Object::sendMessage<MTL::FunctionHandle*>(this, _MTL_PRIVATE_SEL(functionHandleWithFunction_stage_), function, stage);1261}12621263_MTL_INLINE MTL::ResourceID MTL::RenderPipelineState::gpuResourceID() const1264{1265 return Object::sendMessage<MTL::ResourceID>(this, _MTL_PRIVATE_SEL(gpuResourceID));1266}12671268_MTL_INLINE NS::UInteger MTL::RenderPipelineState::imageblockMemoryLength(MTL::Size imageblockDimensions)1269{1270 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(imageblockMemoryLengthForDimensions_), imageblockDimensions);1271}12721273_MTL_INLINE NS::UInteger MTL::RenderPipelineState::imageblockSampleLength() const1274{1275 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(imageblockSampleLength));1276}12771278_MTL_INLINE NS::String* MTL::RenderPipelineState::label() const1279{1280 return Object::sendMessage<NS::String*>(this, _MTL_PRIVATE_SEL(label));1281}12821283_MTL_INLINE NS::UInteger MTL::RenderPipelineState::maxTotalThreadgroupsPerMeshGrid() const1284{1285 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTotalThreadgroupsPerMeshGrid));1286}12871288_MTL_INLINE NS::UInteger MTL::RenderPipelineState::maxTotalThreadsPerMeshThreadgroup() const1289{1290 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTotalThreadsPerMeshThreadgroup));1291}12921293_MTL_INLINE NS::UInteger MTL::RenderPipelineState::maxTotalThreadsPerObjectThreadgroup() const1294{1295 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTotalThreadsPerObjectThreadgroup));1296}12971298_MTL_INLINE NS::UInteger MTL::RenderPipelineState::maxTotalThreadsPerThreadgroup() const1299{1300 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTotalThreadsPerThreadgroup));1301}13021303_MTL_INLINE NS::UInteger MTL::RenderPipelineState::meshThreadExecutionWidth() const1304{1305 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(meshThreadExecutionWidth));1306}13071308_MTL_INLINE MTL::IntersectionFunctionTable* MTL::RenderPipelineState::newIntersectionFunctionTable(const MTL::IntersectionFunctionTableDescriptor* descriptor, MTL::RenderStages stage)1309{1310 return Object::sendMessage<MTL::IntersectionFunctionTable*>(this, _MTL_PRIVATE_SEL(newIntersectionFunctionTableWithDescriptor_stage_), descriptor, stage);1311}13121313_MTL_INLINE MTL4::PipelineDescriptor* MTL::RenderPipelineState::newRenderPipelineDescriptor()1314{1315 return Object::sendMessage<MTL4::PipelineDescriptor*>(this, _MTL_PRIVATE_SEL(newRenderPipelineDescriptorForSpecialization));1316}13171318_MTL_INLINE MTL::RenderPipelineState* MTL::RenderPipelineState::newRenderPipelineState(const MTL4::RenderPipelineBinaryFunctionsDescriptor* binaryFunctionsDescriptor, NS::Error** error)1319{1320 return Object::sendMessage<MTL::RenderPipelineState*>(this, _MTL_PRIVATE_SEL(newRenderPipelineStateWithBinaryFunctions_error_), binaryFunctionsDescriptor, error);1321}13221323_MTL_INLINE MTL::RenderPipelineState* MTL::RenderPipelineState::newRenderPipelineState(const MTL::RenderPipelineFunctionsDescriptor* additionalBinaryFunctions, NS::Error** error)1324{1325 return Object::sendMessage<MTL::RenderPipelineState*>(this, _MTL_PRIVATE_SEL(newRenderPipelineStateWithAdditionalBinaryFunctions_error_), additionalBinaryFunctions, error);1326}13271328_MTL_INLINE MTL::VisibleFunctionTable* MTL::RenderPipelineState::newVisibleFunctionTable(const MTL::VisibleFunctionTableDescriptor* descriptor, MTL::RenderStages stage)1329{1330 return Object::sendMessage<MTL::VisibleFunctionTable*>(this, _MTL_PRIVATE_SEL(newVisibleFunctionTableWithDescriptor_stage_), descriptor, stage);1331}13321333_MTL_INLINE NS::UInteger MTL::RenderPipelineState::objectThreadExecutionWidth() const1334{1335 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(objectThreadExecutionWidth));1336}13371338_MTL_INLINE MTL::RenderPipelineReflection* MTL::RenderPipelineState::reflection() const1339{1340 return Object::sendMessage<MTL::RenderPipelineReflection*>(this, _MTL_PRIVATE_SEL(reflection));1341}13421343_MTL_INLINE MTL::Size MTL::RenderPipelineState::requiredThreadsPerMeshThreadgroup() const1344{1345 return Object::sendMessage<MTL::Size>(this, _MTL_PRIVATE_SEL(requiredThreadsPerMeshThreadgroup));1346}13471348_MTL_INLINE MTL::Size MTL::RenderPipelineState::requiredThreadsPerObjectThreadgroup() const1349{1350 return Object::sendMessage<MTL::Size>(this, _MTL_PRIVATE_SEL(requiredThreadsPerObjectThreadgroup));1351}13521353_MTL_INLINE MTL::Size MTL::RenderPipelineState::requiredThreadsPerTileThreadgroup() const1354{1355 return Object::sendMessage<MTL::Size>(this, _MTL_PRIVATE_SEL(requiredThreadsPerTileThreadgroup));1356}13571358_MTL_INLINE MTL::ShaderValidation MTL::RenderPipelineState::shaderValidation() const1359{1360 return Object::sendMessage<MTL::ShaderValidation>(this, _MTL_PRIVATE_SEL(shaderValidation));1361}13621363_MTL_INLINE bool MTL::RenderPipelineState::supportIndirectCommandBuffers() const1364{1365 return Object::sendMessageSafe<bool>(this, _MTL_PRIVATE_SEL(supportIndirectCommandBuffers));1366}13671368_MTL_INLINE bool MTL::RenderPipelineState::threadgroupSizeMatchesTileSize() const1369{1370 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(threadgroupSizeMatchesTileSize));1371}13721373_MTL_INLINE MTL::RenderPipelineColorAttachmentDescriptorArray* MTL::RenderPipelineColorAttachmentDescriptorArray::alloc()1374{1375 return NS::Object::alloc<MTL::RenderPipelineColorAttachmentDescriptorArray>(_MTL_PRIVATE_CLS(MTLRenderPipelineColorAttachmentDescriptorArray));1376}13771378_MTL_INLINE MTL::RenderPipelineColorAttachmentDescriptorArray* MTL::RenderPipelineColorAttachmentDescriptorArray::init()1379{1380 return NS::Object::init<MTL::RenderPipelineColorAttachmentDescriptorArray>();1381}13821383_MTL_INLINE MTL::RenderPipelineColorAttachmentDescriptor* MTL::RenderPipelineColorAttachmentDescriptorArray::object(NS::UInteger attachmentIndex)1384{1385 return Object::sendMessage<MTL::RenderPipelineColorAttachmentDescriptor*>(this, _MTL_PRIVATE_SEL(objectAtIndexedSubscript_), attachmentIndex);1386}13871388_MTL_INLINE void MTL::RenderPipelineColorAttachmentDescriptorArray::setObject(const MTL::RenderPipelineColorAttachmentDescriptor* attachment, NS::UInteger attachmentIndex)1389{1390 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObject_atIndexedSubscript_), attachment, attachmentIndex);1391}13921393_MTL_INLINE MTL::TileRenderPipelineColorAttachmentDescriptor* MTL::TileRenderPipelineColorAttachmentDescriptor::alloc()1394{1395 return NS::Object::alloc<MTL::TileRenderPipelineColorAttachmentDescriptor>(_MTL_PRIVATE_CLS(MTLTileRenderPipelineColorAttachmentDescriptor));1396}13971398_MTL_INLINE MTL::TileRenderPipelineColorAttachmentDescriptor* MTL::TileRenderPipelineColorAttachmentDescriptor::init()1399{1400 return NS::Object::init<MTL::TileRenderPipelineColorAttachmentDescriptor>();1401}14021403_MTL_INLINE MTL::PixelFormat MTL::TileRenderPipelineColorAttachmentDescriptor::pixelFormat() const1404{1405 return Object::sendMessage<MTL::PixelFormat>(this, _MTL_PRIVATE_SEL(pixelFormat));1406}14071408_MTL_INLINE void MTL::TileRenderPipelineColorAttachmentDescriptor::setPixelFormat(MTL::PixelFormat pixelFormat)1409{1410 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPixelFormat_), pixelFormat);1411}14121413_MTL_INLINE MTL::TileRenderPipelineColorAttachmentDescriptorArray* MTL::TileRenderPipelineColorAttachmentDescriptorArray::alloc()1414{1415 return NS::Object::alloc<MTL::TileRenderPipelineColorAttachmentDescriptorArray>(_MTL_PRIVATE_CLS(MTLTileRenderPipelineColorAttachmentDescriptorArray));1416}14171418_MTL_INLINE MTL::TileRenderPipelineColorAttachmentDescriptorArray* MTL::TileRenderPipelineColorAttachmentDescriptorArray::init()1419{1420 return NS::Object::init<MTL::TileRenderPipelineColorAttachmentDescriptorArray>();1421}14221423_MTL_INLINE MTL::TileRenderPipelineColorAttachmentDescriptor* MTL::TileRenderPipelineColorAttachmentDescriptorArray::object(NS::UInteger attachmentIndex)1424{1425 return Object::sendMessage<MTL::TileRenderPipelineColorAttachmentDescriptor*>(this, _MTL_PRIVATE_SEL(objectAtIndexedSubscript_), attachmentIndex);1426}14271428_MTL_INLINE void MTL::TileRenderPipelineColorAttachmentDescriptorArray::setObject(const MTL::TileRenderPipelineColorAttachmentDescriptor* attachment, NS::UInteger attachmentIndex)1429{1430 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObject_atIndexedSubscript_), attachment, attachmentIndex);1431}14321433_MTL_INLINE MTL::TileRenderPipelineDescriptor* MTL::TileRenderPipelineDescriptor::alloc()1434{1435 return NS::Object::alloc<MTL::TileRenderPipelineDescriptor>(_MTL_PRIVATE_CLS(MTLTileRenderPipelineDescriptor));1436}14371438_MTL_INLINE NS::Array* MTL::TileRenderPipelineDescriptor::binaryArchives() const1439{1440 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(binaryArchives));1441}14421443_MTL_INLINE MTL::TileRenderPipelineColorAttachmentDescriptorArray* MTL::TileRenderPipelineDescriptor::colorAttachments() const1444{1445 return Object::sendMessage<MTL::TileRenderPipelineColorAttachmentDescriptorArray*>(this, _MTL_PRIVATE_SEL(colorAttachments));1446}14471448_MTL_INLINE MTL::TileRenderPipelineDescriptor* MTL::TileRenderPipelineDescriptor::init()1449{1450 return NS::Object::init<MTL::TileRenderPipelineDescriptor>();1451}14521453_MTL_INLINE NS::String* MTL::TileRenderPipelineDescriptor::label() const1454{1455 return Object::sendMessage<NS::String*>(this, _MTL_PRIVATE_SEL(label));1456}14571458_MTL_INLINE MTL::LinkedFunctions* MTL::TileRenderPipelineDescriptor::linkedFunctions() const1459{1460 return Object::sendMessage<MTL::LinkedFunctions*>(this, _MTL_PRIVATE_SEL(linkedFunctions));1461}14621463_MTL_INLINE NS::UInteger MTL::TileRenderPipelineDescriptor::maxCallStackDepth() const1464{1465 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxCallStackDepth));1466}14671468_MTL_INLINE NS::UInteger MTL::TileRenderPipelineDescriptor::maxTotalThreadsPerThreadgroup() const1469{1470 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTotalThreadsPerThreadgroup));1471}14721473_MTL_INLINE NS::Array* MTL::TileRenderPipelineDescriptor::preloadedLibraries() const1474{1475 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(preloadedLibraries));1476}14771478_MTL_INLINE NS::UInteger MTL::TileRenderPipelineDescriptor::rasterSampleCount() const1479{1480 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(rasterSampleCount));1481}14821483_MTL_INLINE MTL::Size MTL::TileRenderPipelineDescriptor::requiredThreadsPerThreadgroup() const1484{1485 return Object::sendMessage<MTL::Size>(this, _MTL_PRIVATE_SEL(requiredThreadsPerThreadgroup));1486}14871488_MTL_INLINE void MTL::TileRenderPipelineDescriptor::reset()1489{1490 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(reset));1491}14921493_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setBinaryArchives(const NS::Array* binaryArchives)1494{1495 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBinaryArchives_), binaryArchives);1496}14971498_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setLabel(const NS::String* label)1499{1500 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLabel_), label);1501}15021503_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setLinkedFunctions(const MTL::LinkedFunctions* linkedFunctions)1504{1505 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLinkedFunctions_), linkedFunctions);1506}15071508_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setMaxCallStackDepth(NS::UInteger maxCallStackDepth)1509{1510 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxCallStackDepth_), maxCallStackDepth);1511}15121513_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setMaxTotalThreadsPerThreadgroup(NS::UInteger maxTotalThreadsPerThreadgroup)1514{1515 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxTotalThreadsPerThreadgroup_), maxTotalThreadsPerThreadgroup);1516}15171518_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setPreloadedLibraries(const NS::Array* preloadedLibraries)1519{1520 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPreloadedLibraries_), preloadedLibraries);1521}15221523_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setRasterSampleCount(NS::UInteger rasterSampleCount)1524{1525 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRasterSampleCount_), rasterSampleCount);1526}15271528_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setRequiredThreadsPerThreadgroup(MTL::Size requiredThreadsPerThreadgroup)1529{1530 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRequiredThreadsPerThreadgroup_), requiredThreadsPerThreadgroup);1531}15321533_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setShaderValidation(MTL::ShaderValidation shaderValidation)1534{1535 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setShaderValidation_), shaderValidation);1536}15371538_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setSupportAddingBinaryFunctions(bool supportAddingBinaryFunctions)1539{1540 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSupportAddingBinaryFunctions_), supportAddingBinaryFunctions);1541}15421543_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setThreadgroupSizeMatchesTileSize(bool threadgroupSizeMatchesTileSize)1544{1545 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setThreadgroupSizeMatchesTileSize_), threadgroupSizeMatchesTileSize);1546}15471548_MTL_INLINE void MTL::TileRenderPipelineDescriptor::setTileFunction(const MTL::Function* tileFunction)1549{1550 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileFunction_), tileFunction);1551}15521553_MTL_INLINE MTL::ShaderValidation MTL::TileRenderPipelineDescriptor::shaderValidation() const1554{1555 return Object::sendMessage<MTL::ShaderValidation>(this, _MTL_PRIVATE_SEL(shaderValidation));1556}15571558_MTL_INLINE bool MTL::TileRenderPipelineDescriptor::supportAddingBinaryFunctions() const1559{1560 return Object::sendMessageSafe<bool>(this, _MTL_PRIVATE_SEL(supportAddingBinaryFunctions));1561}15621563_MTL_INLINE bool MTL::TileRenderPipelineDescriptor::threadgroupSizeMatchesTileSize() const1564{1565 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(threadgroupSizeMatchesTileSize));1566}15671568_MTL_INLINE MTL::PipelineBufferDescriptorArray* MTL::TileRenderPipelineDescriptor::tileBuffers() const1569{1570 return Object::sendMessage<MTL::PipelineBufferDescriptorArray*>(this, _MTL_PRIVATE_SEL(tileBuffers));1571}15721573_MTL_INLINE MTL::Function* MTL::TileRenderPipelineDescriptor::tileFunction() const1574{1575 return Object::sendMessage<MTL::Function*>(this, _MTL_PRIVATE_SEL(tileFunction));1576}15771578_MTL_INLINE MTL::MeshRenderPipelineDescriptor* MTL::MeshRenderPipelineDescriptor::alloc()1579{1580 return NS::Object::alloc<MTL::MeshRenderPipelineDescriptor>(_MTL_PRIVATE_CLS(MTLMeshRenderPipelineDescriptor));1581}15821583_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::alphaToCoverageEnabled() const1584{1585 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isAlphaToCoverageEnabled));1586}15871588_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::alphaToOneEnabled() const1589{1590 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isAlphaToOneEnabled));1591}15921593_MTL_INLINE NS::Array* MTL::MeshRenderPipelineDescriptor::binaryArchives() const1594{1595 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(binaryArchives));1596}15971598_MTL_INLINE MTL::RenderPipelineColorAttachmentDescriptorArray* MTL::MeshRenderPipelineDescriptor::colorAttachments() const1599{1600 return Object::sendMessage<MTL::RenderPipelineColorAttachmentDescriptorArray*>(this, _MTL_PRIVATE_SEL(colorAttachments));1601}16021603_MTL_INLINE MTL::PixelFormat MTL::MeshRenderPipelineDescriptor::depthAttachmentPixelFormat() const1604{1605 return Object::sendMessage<MTL::PixelFormat>(this, _MTL_PRIVATE_SEL(depthAttachmentPixelFormat));1606}16071608_MTL_INLINE MTL::PipelineBufferDescriptorArray* MTL::MeshRenderPipelineDescriptor::fragmentBuffers() const1609{1610 return Object::sendMessage<MTL::PipelineBufferDescriptorArray*>(this, _MTL_PRIVATE_SEL(fragmentBuffers));1611}16121613_MTL_INLINE MTL::Function* MTL::MeshRenderPipelineDescriptor::fragmentFunction() const1614{1615 return Object::sendMessage<MTL::Function*>(this, _MTL_PRIVATE_SEL(fragmentFunction));1616}16171618_MTL_INLINE MTL::LinkedFunctions* MTL::MeshRenderPipelineDescriptor::fragmentLinkedFunctions() const1619{1620 return Object::sendMessage<MTL::LinkedFunctions*>(this, _MTL_PRIVATE_SEL(fragmentLinkedFunctions));1621}16221623_MTL_INLINE MTL::MeshRenderPipelineDescriptor* MTL::MeshRenderPipelineDescriptor::init()1624{1625 return NS::Object::init<MTL::MeshRenderPipelineDescriptor>();1626}16271628_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::isAlphaToCoverageEnabled() const1629{1630 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isAlphaToCoverageEnabled));1631}16321633_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::isAlphaToOneEnabled() const1634{1635 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isAlphaToOneEnabled));1636}16371638_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::isRasterizationEnabled() const1639{1640 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isRasterizationEnabled));1641}16421643_MTL_INLINE NS::String* MTL::MeshRenderPipelineDescriptor::label() const1644{1645 return Object::sendMessage<NS::String*>(this, _MTL_PRIVATE_SEL(label));1646}16471648_MTL_INLINE NS::UInteger MTL::MeshRenderPipelineDescriptor::maxTotalThreadgroupsPerMeshGrid() const1649{1650 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTotalThreadgroupsPerMeshGrid));1651}16521653_MTL_INLINE NS::UInteger MTL::MeshRenderPipelineDescriptor::maxTotalThreadsPerMeshThreadgroup() const1654{1655 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTotalThreadsPerMeshThreadgroup));1656}16571658_MTL_INLINE NS::UInteger MTL::MeshRenderPipelineDescriptor::maxTotalThreadsPerObjectThreadgroup() const1659{1660 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxTotalThreadsPerObjectThreadgroup));1661}16621663_MTL_INLINE NS::UInteger MTL::MeshRenderPipelineDescriptor::maxVertexAmplificationCount() const1664{1665 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxVertexAmplificationCount));1666}16671668_MTL_INLINE MTL::PipelineBufferDescriptorArray* MTL::MeshRenderPipelineDescriptor::meshBuffers() const1669{1670 return Object::sendMessage<MTL::PipelineBufferDescriptorArray*>(this, _MTL_PRIVATE_SEL(meshBuffers));1671}16721673_MTL_INLINE MTL::Function* MTL::MeshRenderPipelineDescriptor::meshFunction() const1674{1675 return Object::sendMessage<MTL::Function*>(this, _MTL_PRIVATE_SEL(meshFunction));1676}16771678_MTL_INLINE MTL::LinkedFunctions* MTL::MeshRenderPipelineDescriptor::meshLinkedFunctions() const1679{1680 return Object::sendMessage<MTL::LinkedFunctions*>(this, _MTL_PRIVATE_SEL(meshLinkedFunctions));1681}16821683_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::meshThreadgroupSizeIsMultipleOfThreadExecutionWidth() const1684{1685 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(meshThreadgroupSizeIsMultipleOfThreadExecutionWidth));1686}16871688_MTL_INLINE MTL::PipelineBufferDescriptorArray* MTL::MeshRenderPipelineDescriptor::objectBuffers() const1689{1690 return Object::sendMessage<MTL::PipelineBufferDescriptorArray*>(this, _MTL_PRIVATE_SEL(objectBuffers));1691}16921693_MTL_INLINE MTL::Function* MTL::MeshRenderPipelineDescriptor::objectFunction() const1694{1695 return Object::sendMessage<MTL::Function*>(this, _MTL_PRIVATE_SEL(objectFunction));1696}16971698_MTL_INLINE MTL::LinkedFunctions* MTL::MeshRenderPipelineDescriptor::objectLinkedFunctions() const1699{1700 return Object::sendMessage<MTL::LinkedFunctions*>(this, _MTL_PRIVATE_SEL(objectLinkedFunctions));1701}17021703_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::objectThreadgroupSizeIsMultipleOfThreadExecutionWidth() const1704{1705 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(objectThreadgroupSizeIsMultipleOfThreadExecutionWidth));1706}17071708_MTL_INLINE NS::UInteger MTL::MeshRenderPipelineDescriptor::payloadMemoryLength() const1709{1710 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(payloadMemoryLength));1711}17121713_MTL_INLINE NS::UInteger MTL::MeshRenderPipelineDescriptor::rasterSampleCount() const1714{1715 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(rasterSampleCount));1716}17171718_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::rasterizationEnabled() const1719{1720 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(isRasterizationEnabled));1721}17221723_MTL_INLINE MTL::Size MTL::MeshRenderPipelineDescriptor::requiredThreadsPerMeshThreadgroup() const1724{1725 return Object::sendMessage<MTL::Size>(this, _MTL_PRIVATE_SEL(requiredThreadsPerMeshThreadgroup));1726}17271728_MTL_INLINE MTL::Size MTL::MeshRenderPipelineDescriptor::requiredThreadsPerObjectThreadgroup() const1729{1730 return Object::sendMessage<MTL::Size>(this, _MTL_PRIVATE_SEL(requiredThreadsPerObjectThreadgroup));1731}17321733_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::reset()1734{1735 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(reset));1736}17371738_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setAlphaToCoverageEnabled(bool alphaToCoverageEnabled)1739{1740 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setAlphaToCoverageEnabled_), alphaToCoverageEnabled);1741}17421743_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setAlphaToOneEnabled(bool alphaToOneEnabled)1744{1745 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setAlphaToOneEnabled_), alphaToOneEnabled);1746}17471748_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setBinaryArchives(const NS::Array* binaryArchives)1749{1750 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBinaryArchives_), binaryArchives);1751}17521753_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setDepthAttachmentPixelFormat(MTL::PixelFormat depthAttachmentPixelFormat)1754{1755 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthAttachmentPixelFormat_), depthAttachmentPixelFormat);1756}17571758_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setFragmentFunction(const MTL::Function* fragmentFunction)1759{1760 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentFunction_), fragmentFunction);1761}17621763_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setFragmentLinkedFunctions(const MTL::LinkedFunctions* fragmentLinkedFunctions)1764{1765 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentLinkedFunctions_), fragmentLinkedFunctions);1766}17671768_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setLabel(const NS::String* label)1769{1770 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLabel_), label);1771}17721773_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setMaxTotalThreadgroupsPerMeshGrid(NS::UInteger maxTotalThreadgroupsPerMeshGrid)1774{1775 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxTotalThreadgroupsPerMeshGrid_), maxTotalThreadgroupsPerMeshGrid);1776}17771778_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setMaxTotalThreadsPerMeshThreadgroup(NS::UInteger maxTotalThreadsPerMeshThreadgroup)1779{1780 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxTotalThreadsPerMeshThreadgroup_), maxTotalThreadsPerMeshThreadgroup);1781}17821783_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setMaxTotalThreadsPerObjectThreadgroup(NS::UInteger maxTotalThreadsPerObjectThreadgroup)1784{1785 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxTotalThreadsPerObjectThreadgroup_), maxTotalThreadsPerObjectThreadgroup);1786}17871788_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setMaxVertexAmplificationCount(NS::UInteger maxVertexAmplificationCount)1789{1790 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxVertexAmplificationCount_), maxVertexAmplificationCount);1791}17921793_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setMeshFunction(const MTL::Function* meshFunction)1794{1795 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshFunction_), meshFunction);1796}17971798_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setMeshLinkedFunctions(const MTL::LinkedFunctions* meshLinkedFunctions)1799{1800 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshLinkedFunctions_), meshLinkedFunctions);1801}18021803_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth(bool meshThreadgroupSizeIsMultipleOfThreadExecutionWidth)1804{1805 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth_), meshThreadgroupSizeIsMultipleOfThreadExecutionWidth);1806}18071808_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setObjectFunction(const MTL::Function* objectFunction)1809{1810 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectFunction_), objectFunction);1811}18121813_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setObjectLinkedFunctions(const MTL::LinkedFunctions* objectLinkedFunctions)1814{1815 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectLinkedFunctions_), objectLinkedFunctions);1816}18171818_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth(bool objectThreadgroupSizeIsMultipleOfThreadExecutionWidth)1819{1820 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth_), objectThreadgroupSizeIsMultipleOfThreadExecutionWidth);1821}18221823_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setPayloadMemoryLength(NS::UInteger payloadMemoryLength)1824{1825 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPayloadMemoryLength_), payloadMemoryLength);1826}18271828_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setRasterSampleCount(NS::UInteger rasterSampleCount)1829{1830 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRasterSampleCount_), rasterSampleCount);1831}18321833_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setRasterizationEnabled(bool rasterizationEnabled)1834{1835 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRasterizationEnabled_), rasterizationEnabled);1836}18371838_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setRequiredThreadsPerMeshThreadgroup(MTL::Size requiredThreadsPerMeshThreadgroup)1839{1840 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRequiredThreadsPerMeshThreadgroup_), requiredThreadsPerMeshThreadgroup);1841}18421843_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setRequiredThreadsPerObjectThreadgroup(MTL::Size requiredThreadsPerObjectThreadgroup)1844{1845 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRequiredThreadsPerObjectThreadgroup_), requiredThreadsPerObjectThreadgroup);1846}18471848_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setShaderValidation(MTL::ShaderValidation shaderValidation)1849{1850 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setShaderValidation_), shaderValidation);1851}18521853_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setStencilAttachmentPixelFormat(MTL::PixelFormat stencilAttachmentPixelFormat)1854{1855 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStencilAttachmentPixelFormat_), stencilAttachmentPixelFormat);1856}18571858_MTL_INLINE void MTL::MeshRenderPipelineDescriptor::setSupportIndirectCommandBuffers(bool supportIndirectCommandBuffers)1859{1860 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSupportIndirectCommandBuffers_), supportIndirectCommandBuffers);1861}18621863_MTL_INLINE MTL::ShaderValidation MTL::MeshRenderPipelineDescriptor::shaderValidation() const1864{1865 return Object::sendMessage<MTL::ShaderValidation>(this, _MTL_PRIVATE_SEL(shaderValidation));1866}18671868_MTL_INLINE MTL::PixelFormat MTL::MeshRenderPipelineDescriptor::stencilAttachmentPixelFormat() const1869{1870 return Object::sendMessage<MTL::PixelFormat>(this, _MTL_PRIVATE_SEL(stencilAttachmentPixelFormat));1871}18721873_MTL_INLINE bool MTL::MeshRenderPipelineDescriptor::supportIndirectCommandBuffers() const1874{1875 return Object::sendMessageSafe<bool>(this, _MTL_PRIVATE_SEL(supportIndirectCommandBuffers));1876}1877