Merge pull request #965 from billhollings/master
Several minor updates: VK_FORMAT_D16_UNORM plus vertex attribute stride test
This commit is contained in:
commit
b4ea11fe2a
@ -72,16 +72,6 @@ extern "C" {
|
||||
# define MVK_OS_SIMULATOR TARGET_OS_SIMULATOR
|
||||
#endif
|
||||
|
||||
/** Building for iOS Simulator. */
|
||||
#ifndef MVK_IOS_SIMULATOR
|
||||
# define MVK_IOS_SIMULATOR (MVK_IOS && MVK_OS_SIMULATOR)
|
||||
#endif
|
||||
|
||||
/** Building for tvOS Simulator. */
|
||||
#ifndef MVK_TVOS_SIMULATOR
|
||||
# define MVK_TVOS_SIMULATOR (MVK_TVOS && MVK_OS_SIMULATOR)
|
||||
#endif
|
||||
|
||||
/** Directive to identify public symbols. */
|
||||
#define MVK_PUBLIC_SYMBOL __attribute__((visibility("default")))
|
||||
|
||||
|
@ -547,7 +547,7 @@
|
||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1150;
|
||||
LastUpgradeCheck = 1160;
|
||||
};
|
||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "API-Samples" */;
|
||||
compatibilityVersion = "Xcode 8.0";
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -287,7 +287,7 @@
|
||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1150;
|
||||
LastUpgradeCheck = 1160;
|
||||
};
|
||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Cube" */;
|
||||
compatibilityVersion = "Xcode 8.0";
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -265,7 +265,7 @@
|
||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1150;
|
||||
LastUpgradeCheck = 1160;
|
||||
};
|
||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Hologram" */;
|
||||
compatibilityVersion = "Xcode 8.0";
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -21,6 +21,7 @@ Released TBD
|
||||
- Add support for extensions:
|
||||
- VK_KHR_sampler_ycbcr_conversion
|
||||
- VK_EXT_robustness2
|
||||
- Add native support for `VK_FORMAT_D16_UNORM` on **_iOS 13.0+_** and **_tvOS 13.0+_**.
|
||||
- Add support for **_tvOS_** platform.
|
||||
- Add support for **_iOS Simulator_** and **_tvOS Simulator_** build destinations.
|
||||
- Cube demo runs on **_tvOS_**, **_iOS Simulator_**, and **_tvOS Simulator_**.
|
||||
@ -30,12 +31,17 @@ Released TBD
|
||||
- Fix issue where mapped host-coherent device memory not updated from image contents on *macOS*.
|
||||
- Fix small memory leak when setting swapchain color space.
|
||||
- Fix new and unexpected App Store failure on newly deprecated color space values.
|
||||
- Include vertex attribute size when testing whether attribute offset exceeds stride.
|
||||
- Add `MVKPhysicalDeviceMetalFeatures::vertexStrideAlignment` to track Metal vertex binding stride alignment.
|
||||
- Remove use of `@available()` directive as it was causing issues in some build environments.
|
||||
- Refactor **MoltenVK** *Xcode* build architectures.
|
||||
- Demo `API-Samples generateSPIRVShaders` no longer builds `MoltenVKShaderController` tool.
|
||||
- Update `VK_MVK_MOLTENVK_SPEC_VERSION` to `27`.
|
||||
- Update to latest SPIRV-Cross version:
|
||||
- MSL: Workaround broken scalar access chain behavior in LLVM IR / AIR
|
||||
|
||||
|
||||
|
||||
MoltenVK 1.0.43
|
||||
---------------
|
||||
|
||||
|
@ -3879,7 +3879,7 @@
|
||||
A9F55D25198BE6A7004EC31B /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1150;
|
||||
LastUpgradeCheck = 1160;
|
||||
ORGANIZATIONNAME = "The Brenwill Workshop Ltd.";
|
||||
TargetAttributes = {
|
||||
2FEA0ADD2490320500EEF3AD = {
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1101,7 +1101,7 @@
|
||||
A9F55D25198BE6A7004EC31B /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1150;
|
||||
LastUpgradeCheck = 1160;
|
||||
ORGANIZATIONNAME = "The Brenwill Workshop Ltd.";
|
||||
TargetAttributes = {
|
||||
A9B8EE091A98D796009C5A02 = {
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -55,7 +55,7 @@ typedef unsigned long MTLLanguageVersion;
|
||||
#define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch))
|
||||
#define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH)
|
||||
|
||||
#define VK_MVK_MOLTENVK_SPEC_VERSION 26
|
||||
#define VK_MVK_MOLTENVK_SPEC_VERSION 27
|
||||
#define VK_MVK_MOLTENVK_EXTENSION_NAME "VK_MVK_moltenvk"
|
||||
|
||||
/**
|
||||
@ -612,6 +612,7 @@ typedef struct {
|
||||
VkDeviceSize pushConstantSizeAlignment; /**< The alignment used internally when allocating memory for push constants. Must be PoT. */
|
||||
uint32_t maxTextureLayers; /**< The maximum number of layers in an array texture. */
|
||||
uint32_t subgroupSize; /**< The number of threads in a SIMD-group. */
|
||||
VkDeviceSize vertexStrideAlignment; /**< The alignment used for the stride of vertex attribute bindings. */
|
||||
} MVKPhysicalDeviceMetalFeatures;
|
||||
|
||||
/** MoltenVK performance of a particular type of activity. */
|
||||
|
@ -97,7 +97,7 @@ VkResult MVKCmdDraw::setContent(MVKCommandBuffer* cmdBuff,
|
||||
|
||||
// Validate
|
||||
if ((_firstInstance != 0) && !(cmdBuff->getDevice()->_pMetalFeatures->baseVertexInstanceDrawing)) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDraw(): The current device does not support drawing with a non-zero base instance.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDraw(): The current device does not support drawing with a non-zero base instance.");
|
||||
}
|
||||
|
||||
cmdBuff->recordDraw(this);
|
||||
@ -288,10 +288,10 @@ VkResult MVKCmdDrawIndexed::setContent(MVKCommandBuffer* cmdBuff,
|
||||
// Validate
|
||||
MVKDevice* mvkDvc = cmdBuff->getDevice();
|
||||
if ((_firstInstance != 0) && !(mvkDvc->_pMetalFeatures->baseVertexInstanceDrawing)) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexed(): The current device does not support drawing with a non-zero base instance.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexed(): The current device does not support drawing with a non-zero base instance.");
|
||||
}
|
||||
if ((_vertexOffset != 0) && !(mvkDvc->_pMetalFeatures->baseVertexInstanceDrawing)) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexed(): The current device does not support drawing with a non-zero base vertex.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexed(): The current device does not support drawing with a non-zero base vertex.");
|
||||
}
|
||||
|
||||
cmdBuff->recordDraw(this);
|
||||
@ -521,7 +521,7 @@ VkResult MVKCmdDrawIndirect::setContent(MVKCommandBuffer* cmdBuff,
|
||||
|
||||
// Validate
|
||||
if ( !(cmdBuff->getDevice()->_pMetalFeatures->indirectDrawing) ) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndirect(): The current device does not support indirect drawing.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndirect(): The current device does not support indirect drawing.");
|
||||
}
|
||||
|
||||
cmdBuff->recordDraw(this);
|
||||
@ -731,7 +731,7 @@ void MVKCmdDrawIndirect::encode(MVKCommandEncoder* cmdEncoder) {
|
||||
indirectBufferOffset: mtlTCIndBuffOfst];
|
||||
#endif
|
||||
#if MVK_TVOS
|
||||
reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexedIndirect(): The current device does not support indirect tessellated drawing.");
|
||||
cmdEncoder->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexedIndirect(): The current device does not support indirect tessellated drawing.");
|
||||
#endif
|
||||
mtlTCIndBuffOfst += sizeof(MTLDrawPatchIndirectArguments);
|
||||
// Mark pipeline, resources, and tess control push constants as dirty
|
||||
@ -770,7 +770,7 @@ VkResult MVKCmdDrawIndexedIndirect::setContent(MVKCommandBuffer* cmdBuff,
|
||||
|
||||
// Validate
|
||||
if ( !(cmdBuff->getDevice()->_pMetalFeatures->indirectDrawing) ) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexedIndirect(): The current device does not support indirect drawing.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexedIndirect(): The current device does not support indirect drawing.");
|
||||
}
|
||||
|
||||
cmdBuff->recordDraw(this);
|
||||
@ -991,7 +991,7 @@ void MVKCmdDrawIndexedIndirect::encode(MVKCommandEncoder* cmdEncoder) {
|
||||
indirectBufferOffset: mtlTCIndBuffOfst];
|
||||
#endif
|
||||
#if MVK_TVOS
|
||||
reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexedIndirect(): The current device does not support indirect tessellated drawing.");
|
||||
cmdEncoder->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdDrawIndexedIndirect(): The current device does not support indirect tessellated drawing.");
|
||||
#endif
|
||||
mtlTCIndBuffOfst += sizeof(MTLDrawPatchIndirectArguments);
|
||||
// Mark pipeline, resources, and tess control push constants as dirty
|
||||
|
@ -181,7 +181,7 @@ VkResult MVKCmdSetLineWidth::setContent(MVKCommandBuffer* cmdBuff,
|
||||
|
||||
// Validate
|
||||
if (_lineWidth != 1.0 || cmdBuff->getDevice()->_enabledFeatures.wideLines) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdSetLineWidth(): The current device does not support wide lines.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdSetLineWidth(): The current device does not support wide lines.");
|
||||
}
|
||||
|
||||
return VK_SUCCESS;
|
||||
@ -240,7 +240,7 @@ VkResult MVKCmdSetDepthBounds::setContent(MVKCommandBuffer* cmdBuff,
|
||||
|
||||
// Validate
|
||||
if (cmdBuff->getDevice()->_enabledFeatures.depthBounds) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdSetDepthBounds(): The current device does not support setting depth bounds.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdSetDepthBounds(): The current device does not support setting depth bounds.");
|
||||
}
|
||||
|
||||
return VK_SUCCESS;
|
||||
|
@ -71,7 +71,7 @@ VkResult MVKCmdCopyImage<N>::setContent(MVKCommandBuffer* cmdBuff,
|
||||
MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats();
|
||||
if ((_dstImage->getSampleCount() != _srcImage->getSampleCount()) ||
|
||||
(pixFmts->getBytesPerBlock(_dstImage->getMTLPixelFormat(dstPlaneIndex)) != pixFmts->getBytesPerBlock(_srcImage->getMTLPixelFormat(srcPlaneIndex)))) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Cannot copy between incompatible formats, such as formats of different pixel sizes, or between images with different sample counts.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Cannot copy between incompatible formats, such as formats of different pixel sizes, or between images with different sample counts.");
|
||||
}
|
||||
|
||||
_vkImageCopies.push_back(vkIR);
|
||||
@ -79,7 +79,7 @@ VkResult MVKCmdCopyImage<N>::setContent(MVKCommandBuffer* cmdBuff,
|
||||
|
||||
// Validate
|
||||
if ((_srcImage->getMTLTextureType() == MTLTextureType3D) != (_dstImage->getMTLTextureType() == MTLTextureType3D)) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Metal does not support copying to or from slices of a 3D texture.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Metal does not support copying to or from slices of a 3D texture.");
|
||||
}
|
||||
|
||||
return VK_SUCCESS;
|
||||
@ -232,7 +232,7 @@ VkResult MVKCmdBlitImage<N>::setContent(MVKCommandBuffer* cmdBuff,
|
||||
if (pixFmts->isDepthFormat(srcMTLPixFmt) || pixFmts->isStencilFormat(srcMTLPixFmt)) {
|
||||
for (auto& vkIB : _vkImageBlits) {
|
||||
if ( !(canCopyFormats(vkIB) && canCopy(vkIB)) ) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdBlitImage(): Scaling or inverting depth/stencil images is not supported.");
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdBlitImage(): Scaling or inverting depth/stencil images is not supported.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -451,7 +451,7 @@ VkResult MVKCmdResolveImage<N>::setContent(MVKCommandBuffer* cmdBuff,
|
||||
// Validate
|
||||
MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats();
|
||||
if ( !mvkAreAllFlagsEnabled(pixFmts->getCapabilities(_dstImage->getMTLPixelFormat(dstPlaneIndex)), kMVKMTLFmtCapsResolve) ) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdResolveImage(): %s cannot be used as a resolve destination on this device.", pixFmts->getName(_dstImage->getVkFormat()));
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdResolveImage(): %s cannot be used as a resolve destination on this device.", pixFmts->getName(_dstImage->getVkFormat()));
|
||||
}
|
||||
|
||||
_vkImageResolves.push_back(vkIR);
|
||||
@ -700,7 +700,7 @@ VkResult MVKCmdBufferImageCopy<N>::setContent(MVKCommandBuffer* cmdBuff,
|
||||
if ( !_image->hasExpectedTexelSize() ) {
|
||||
MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(pRegions[i].imageSubresource.aspectMask));
|
||||
const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer";
|
||||
return reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat()));
|
||||
return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1107,7 +1107,7 @@ VkResult MVKCmdClearImage<N>::setContent(MVKCommandBuffer* cmdBuff,
|
||||
MVKMTLFmtCaps mtlFmtCaps = cmdBuff->getPixelFormats()->getCapabilities(_image->getMTLPixelFormat(planeIndex));
|
||||
if ((isDS && !mvkAreAllFlagsEnabled(mtlFmtCaps, kMVKMTLFmtCapsDSAtt)) ||
|
||||
( !isDS && !mvkAreAllFlagsEnabled(mtlFmtCaps, kMVKMTLFmtCapsColorAtt))) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdClear%sImage(): Format %s cannot be cleared on this device.", (isDS ? "DepthStencil" : "Color"), cmdBuff->getPixelFormats()->getName(_image->getVkFormat()));
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdClear%sImage(): Format %s cannot be cleared on this device.", (isDS ? "DepthStencil" : "Color"), cmdBuff->getPixelFormats()->getName(_image->getVkFormat()));
|
||||
}
|
||||
|
||||
_subresourceRanges.push_back(vkIR);
|
||||
@ -1115,7 +1115,7 @@ VkResult MVKCmdClearImage<N>::setContent(MVKCommandBuffer* cmdBuff,
|
||||
|
||||
// Validate
|
||||
if (_image->getImageType() == VK_IMAGE_TYPE_1D) {
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdClear%sImage(): Native 1D images cannot be cleared on this device. Consider enabling MVK_CONFIG_TEXTURE_1D_AS_2D.", (isDS ? "DepthStencil" : "Color"));
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdClear%sImage(): Native 1D images cannot be cleared on this device. Consider enabling MVK_CONFIG_TEXTURE_1D_AS_2D.", (isDS ? "DepthStencil" : "Color"));
|
||||
}
|
||||
|
||||
return VK_SUCCESS;
|
||||
@ -1230,7 +1230,7 @@ VkResult MVKCmdFillBuffer::setContent(MVKCommandBuffer* cmdBuff,
|
||||
_wordCount = (uint32_t)wdCnt;
|
||||
} else {
|
||||
_wordCount = std::numeric_limits<uint32_t>::max();
|
||||
return reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdFillBuffer(): Buffer fill size must fit into a 32-bit unsigned integer. Fill size %llu is too large.", wdCnt);
|
||||
return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdFillBuffer(): Buffer fill size must fit into a 32-bit unsigned integer. Fill size %llu is too large.", wdCnt);
|
||||
}
|
||||
|
||||
return VK_SUCCESS;
|
||||
|
@ -221,7 +221,7 @@ void MVKPhysicalDevice::getProperties(VkPhysicalDeviceProperties2* properties) {
|
||||
}
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_EXTX: {
|
||||
auto* portabilityProps = (VkPhysicalDevicePortabilitySubsetPropertiesEXTX*)next;
|
||||
portabilityProps->minVertexInputBindingStrideAlignment = 4;
|
||||
portabilityProps->minVertexInputBindingStrideAlignment = (uint32_t)_metalFeatures.vertexStrideAlignment;
|
||||
break;
|
||||
}
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT: {
|
||||
@ -961,6 +961,8 @@ void MVKPhysicalDevice::initMetalFeatures() {
|
||||
_metalFeatures.minSwapchainImageCount = kMVKMinSwapchainImageCount;
|
||||
_metalFeatures.maxSwapchainImageCount = kMVKMaxSwapchainImageCount;
|
||||
|
||||
_metalFeatures.vertexStrideAlignment = 4;
|
||||
|
||||
#if MVK_TVOS
|
||||
_metalFeatures.mslVersionEnum = MTLLanguageVersion1_1;
|
||||
_metalFeatures.maxPerStageTextureCount = 31;
|
||||
|
@ -976,9 +976,10 @@ bool MVKGraphicsPipeline::addVertexInputToPipeline(MTLRenderPipelineDescriptor*
|
||||
if (shaderContext.isVertexBufferUsed(pVKVB->binding)) {
|
||||
|
||||
// Vulkan allows any stride, but Metal only allows multiples of 4.
|
||||
// TODO: We should try to expand the buffer to the required alignment in that case.
|
||||
if ((pVKVB->stride % 4) != 0) {
|
||||
setConfigurationResult(reportError(VK_ERROR_INITIALIZATION_FAILED, "Under Metal, vertex buffer strides must be aligned to four bytes."));
|
||||
// TODO: We could try to expand the buffer to the required alignment in that case.
|
||||
VkDeviceSize mtlVtxStrideAlignment = _device->_pMetalFeatures->vertexStrideAlignment;
|
||||
if ((pVKVB->stride % mtlVtxStrideAlignment) != 0) {
|
||||
setConfigurationResult(reportError(VK_ERROR_INITIALIZATION_FAILED, "Under Metal, vertex attribute binding strides must be aligned to %llu bytes.", mtlVtxStrideAlignment));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1025,7 +1026,7 @@ bool MVKGraphicsPipeline::addVertexInputToPipeline(MTLRenderPipelineDescriptor*
|
||||
uint32_t vaOffset = pVKVA->offset;
|
||||
|
||||
// Vulkan allows offsets to exceed the buffer stride, but Metal doesn't.
|
||||
// If this is the case, fetch an a translated artificial buffer binding, using the same MTLBuffer,
|
||||
// If this is the case, fetch a translated artificial buffer binding, using the same MTLBuffer,
|
||||
// but that is translated so that the reduced VA offset fits into the binding stride.
|
||||
const VkVertexInputBindingDescription* pVKVB = pVI->pVertexBindingDescriptions;
|
||||
for (uint32_t j = 0; j < vbCnt; j++, pVKVB++) {
|
||||
@ -1038,7 +1039,7 @@ bool MVKGraphicsPipeline::addVertexInputToPipeline(MTLRenderPipelineDescriptor*
|
||||
MTLVertexBufferLayoutDescriptor* vbDesc = plDesc.vertexDescriptor.layouts[vbIdx];
|
||||
uint32_t strideLowBound = vaOffset + attrSize;
|
||||
if (vbDesc.stride < strideLowBound) vbDesc.stride = strideLowBound;
|
||||
} else if (vaOffset >= pVKVB->stride) {
|
||||
} else if (vaOffset + attrSize > pVKVB->stride) {
|
||||
// Move vertex attribute offset into the stride. This vertex attribute may be
|
||||
// combined with other vertex attributes into the same translated buffer binding.
|
||||
// But if the reduced offset combined with the vertex attribute size still won't
|
||||
@ -1721,7 +1722,8 @@ namespace SPIRV_CROSS_NAMESPACE {
|
||||
opt.enable_decoration_binding,
|
||||
opt.texture_buffer_native,
|
||||
opt.force_active_argument_buffer_resources,
|
||||
opt.force_native_arrays);
|
||||
opt.force_native_arrays,
|
||||
opt.enable_clip_distance_user_varying);
|
||||
}
|
||||
|
||||
template<class Archive>
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#include "mvk_datatypes.h"
|
||||
#include "MVKEnvironment.h"
|
||||
#include "MVKOSExtensions.h"
|
||||
#include "MVKBaseObject.h"
|
||||
#include <SPIRV-Cross/spirv_msl.hpp>
|
||||
#include <unordered_map>
|
||||
@ -68,8 +69,9 @@ typedef enum : uint16_t {
|
||||
kMVKMTLFmtCapsAll = (kMVKMTLFmtCapsRFWCMB | kMVKMTLFmtCapsResolve),
|
||||
|
||||
kMVKMTLFmtCapsDRM = (kMVKMTLFmtCapsDSAtt | kMVKMTLFmtCapsRead | kMVKMTLFmtCapsMSAA),
|
||||
kMVKMTLFmtCapsDRFM = (kMVKMTLFmtCapsDRM | kMVKMTLFmtCapsFilter),
|
||||
kMVKMTLFmtCapsDRMR = (kMVKMTLFmtCapsDRM | kMVKMTLFmtCapsResolve),
|
||||
kMVKMTLFmtCapsDRFMR = (kMVKMTLFmtCapsDRMR | kMVKMTLFmtCapsFilter),
|
||||
kMVKMTLFmtCapsDRFMR = (kMVKMTLFmtCapsDRFM | kMVKMTLFmtCapsResolve),
|
||||
|
||||
kMVKMTLFmtCapsChromaSubsampling = kMVKMTLFmtCapsRF,
|
||||
kMVKMTLFmtCapsMultiPlanar = kMVKMTLFmtCapsChromaSubsampling,
|
||||
@ -317,6 +319,11 @@ protected:
|
||||
MTLFeatureSet mtlFeatSet,
|
||||
MTLPixelFormat mtlPixFmt,
|
||||
MVKMTLFmtCaps mtlFmtCaps);
|
||||
void addMTLPixelFormatCapabilities(id<MTLDevice> mtlDevice,
|
||||
MTLGPUFamily gpuFamily,
|
||||
MVKOSVersion minOSVer,
|
||||
MTLPixelFormat mtlPixFmt,
|
||||
MVKMTLFmtCaps mtlFmtCaps);
|
||||
void disableMTLPixelFormatCapabilities(MTLPixelFormat mtlPixFmt,
|
||||
MVKMTLFmtCaps mtlFmtCaps);
|
||||
void disableAllMTLPixelFormatCapabilities(MTLPixelFormat mtlPixFmt);
|
||||
@ -324,6 +331,11 @@ protected:
|
||||
MTLFeatureSet mtlFeatSet,
|
||||
MTLVertexFormat mtlVtxFmt,
|
||||
MVKMTLFmtCaps mtlFmtCaps);
|
||||
void addMTLVertexFormatCapabilities(id<MTLDevice> mtlDevice,
|
||||
MTLGPUFamily gpuFamily,
|
||||
MVKOSVersion minOSVer,
|
||||
MTLVertexFormat mtlVtxFmt,
|
||||
MVKMTLFmtCaps mtlFmtCaps);
|
||||
|
||||
template<typename T>
|
||||
void testFmt(const T v1, const T v2, const char* fmtName, const char* funcName);
|
||||
|
@ -91,7 +91,6 @@ using namespace std;
|
||||
#endif
|
||||
|
||||
#if MVK_IOS_OR_TVOS
|
||||
# define MTLPixelFormatDepth16Unorm MTLPixelFormatInvalid
|
||||
# define MTLPixelFormatDepth24Unorm_Stencil8 MTLPixelFormatInvalid
|
||||
# define MTLPixelFormatX24_Stencil8 MTLPixelFormatInvalid
|
||||
# define MTLPixelFormatBC1_RGBA MTLPixelFormatInvalid
|
||||
@ -133,11 +132,11 @@ bool MVKPixelFormats::isSupported(MTLPixelFormat mtlFormat) {
|
||||
bool MVKPixelFormats::isDepthFormat(MTLPixelFormat mtlFormat) {
|
||||
switch (mtlFormat) {
|
||||
case MTLPixelFormatDepth32Float:
|
||||
#if MVK_MACOS
|
||||
case MTLPixelFormatDepth16Unorm:
|
||||
case MTLPixelFormatDepth32Float_Stencil8:
|
||||
#if MVK_MACOS
|
||||
case MTLPixelFormatDepth24Unorm_Stencil8:
|
||||
#endif
|
||||
case MTLPixelFormatDepth32Float_Stencil8:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@ -1137,6 +1136,21 @@ void MVKPixelFormats::addMTLPixelFormatCapabilities(id<MTLDevice> mtlDevice,
|
||||
}
|
||||
}
|
||||
|
||||
// If the device supports the GPU family, add additional capabilities to a MTLPixelFormat
|
||||
void MVKPixelFormats::addMTLPixelFormatCapabilities(id<MTLDevice> mtlDevice,
|
||||
MTLGPUFamily gpuFamily,
|
||||
MVKOSVersion minOSVer,
|
||||
MTLPixelFormat mtlPixFmt,
|
||||
MVKMTLFmtCaps mtlFmtCaps) {
|
||||
if (mvkOSVersionIsAtLeast(minOSVer) &&
|
||||
[mtlDevice respondsToSelector: @selector(supportsFamily:)] &&
|
||||
[mtlDevice supportsFamily: gpuFamily]) {
|
||||
|
||||
mvkEnableFlags(getMTLPixelFormatDesc(mtlPixFmt).mtlFmtCaps, mtlFmtCaps);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Disable capability flags in the Metal pixel format.
|
||||
void MVKPixelFormats::disableMTLPixelFormatCapabilities(MTLPixelFormat mtlPixFmt,
|
||||
MVKMTLFmtCaps mtlFmtCaps) {
|
||||
@ -1157,6 +1171,20 @@ void MVKPixelFormats::addMTLVertexFormatCapabilities(id<MTLDevice> mtlDevice,
|
||||
}
|
||||
}
|
||||
|
||||
// If the device supports the GPU family, add additional capabilities to a MTLVertexFormat
|
||||
void MVKPixelFormats::addMTLVertexFormatCapabilities(id<MTLDevice> mtlDevice,
|
||||
MTLGPUFamily gpuFamily,
|
||||
MVKOSVersion minOSVer,
|
||||
MTLVertexFormat mtlVtxFmt,
|
||||
MVKMTLFmtCaps mtlFmtCaps) {
|
||||
if (mvkOSVersionIsAtLeast(minOSVer) &&
|
||||
[mtlDevice respondsToSelector: @selector(supportsFamily:)] &&
|
||||
[mtlDevice supportsFamily: gpuFamily]) {
|
||||
|
||||
mvkEnableFlags(getMTLVertexFormatDesc(mtlVtxFmt).mtlFmtCaps, mtlFmtCaps);
|
||||
}
|
||||
}
|
||||
|
||||
// If supporting a physical device, retrieve the MTLDevice from it,
|
||||
// otherwise create a temp copy of the system default MTLDevice.
|
||||
void MVKPixelFormats::modifyMTLFormatCapabilities() {
|
||||
@ -1169,322 +1197,337 @@ void MVKPixelFormats::modifyMTLFormatCapabilities() {
|
||||
}
|
||||
}
|
||||
|
||||
#define addMTLPixelFormatCapabilities(FEAT_SET, MTL_FMT, CAPS) \
|
||||
|
||||
#define addFeatSetMTLPixFmtCaps(FEAT_SET, MTL_FMT, CAPS) \
|
||||
addMTLPixelFormatCapabilities(mtlDevice, MTLFeatureSet_ ##FEAT_SET, MTLPixelFormat ##MTL_FMT, kMVKMTLFmtCaps ##CAPS)
|
||||
|
||||
#define disableAllMTLPixelFormatCapabilities(MTL_FMT) \
|
||||
#define addGPUOSMTLPixFmtCaps(GPU_FAM, OS_VER, MTL_FMT, CAPS) \
|
||||
addMTLPixelFormatCapabilities(mtlDevice, MTLGPUFamily ##GPU_FAM, OS_VER, MTLPixelFormat ##MTL_FMT, kMVKMTLFmtCaps ##CAPS)
|
||||
|
||||
#define disableAllMTLPixFmtCaps(MTL_FMT) \
|
||||
disableAllMTLPixelFormatCapabilities(MTLPixelFormat ##MTL_FMT)
|
||||
|
||||
#define disableMTLPixelFormatCapabilities(MTL_FMT, CAPS) \
|
||||
#define disableMTLPixFmtCaps(MTL_FMT, CAPS) \
|
||||
disableMTLPixelFormatCapabilities(MTLPixelFormat ##MTL_FMT, kMVKMTLFmtCaps ##CAPS)
|
||||
|
||||
#define addMTLVertexFormatCapabilities(FEAT_SET, MTL_FMT, CAPS) \
|
||||
#define addFeatSetMTLVtxFmtCaps(FEAT_SET, MTL_FMT, CAPS) \
|
||||
addMTLVertexFormatCapabilities(mtlDevice, MTLFeatureSet_ ##FEAT_SET, MTLVertexFormat ##MTL_FMT, kMVKMTLFmtCaps ##CAPS)
|
||||
|
||||
#define addGPUOSMTLVtxFmtCaps(GPU_FAM, OS_VER, MTL_FMT, CAPS) \
|
||||
addMTLVertexFormatCapabilities(mtlDevice, MTLGPUFamily ##GPU_FAM, OS_VER, MTLVertexFormat ##MTL_FMT, kMVKMTLFmtCaps ##CAPS)
|
||||
|
||||
// Modifies the format capability tables based on the capabilities of the specific MTLDevice
|
||||
#if MVK_MACOS
|
||||
void MVKPixelFormats::modifyMTLFormatCapabilities(id<MTLDevice> mtlDevice) {
|
||||
|
||||
addMTLPixelFormatCapabilities( macOS_GPUFamily1_v1, R32Uint, Atomic );
|
||||
addMTLPixelFormatCapabilities( macOS_GPUFamily1_v1, R32Sint, Atomic );
|
||||
addFeatSetMTLPixFmtCaps( macOS_GPUFamily1_v1, R32Uint, Atomic );
|
||||
addFeatSetMTLPixFmtCaps( macOS_GPUFamily1_v1, R32Sint, Atomic );
|
||||
|
||||
if (mtlDevice.isDepth24Stencil8PixelFormatSupported) {
|
||||
addMTLPixelFormatCapabilities( macOS_GPUFamily1_v1, Depth24Unorm_Stencil8, DRFMR );
|
||||
addFeatSetMTLPixFmtCaps( macOS_GPUFamily1_v1, Depth24Unorm_Stencil8, DRFMR );
|
||||
}
|
||||
|
||||
addMTLPixelFormatCapabilities( macOS_GPUFamily1_v2, Depth16Unorm, DRFMR );
|
||||
addFeatSetMTLPixFmtCaps( macOS_GPUFamily1_v2, Depth16Unorm, DRFMR );
|
||||
|
||||
addMTLPixelFormatCapabilities( macOS_GPUFamily1_v3, BGR10A2Unorm, RFCMRB );
|
||||
addFeatSetMTLPixFmtCaps( macOS_GPUFamily1_v3, BGR10A2Unorm, RFCMRB );
|
||||
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, UCharNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, CharNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, UChar, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, Char, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, UShortNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, ShortNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, UShort, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, Short, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, Half, Vertex );
|
||||
addMTLVertexFormatCapabilities( macOS_GPUFamily1_v3, UChar4Normalized_BGRA, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, UCharNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, CharNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, UChar, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, Char, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, UShortNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, ShortNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, UShort, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, Short, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, Half, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( macOS_GPUFamily1_v3, UChar4Normalized_BGRA, Vertex );
|
||||
}
|
||||
#endif
|
||||
|
||||
#if MVK_TVOS
|
||||
void MVKPixelFormats::modifyMTLFormatCapabilities(id<MTLDevice> mtlDevice) {
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v2, R8Unorm_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, R8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v2, R8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, R8Unorm_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v2, R8Snorm, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v2, R8Snorm, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v2, RG8Unorm_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, RG8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v2, RG8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, RG8Unorm_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RG8Snorm, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, RG8Snorm, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RGBA8Snorm, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, RGBA8Snorm, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, R32Uint, RWC );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, R32Uint, Atomic );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, R32Sint, RWC );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, R32Sint, Atomic );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, R32Uint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, R32Uint, Atomic );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, R32Sint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, R32Sint, Atomic );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, R32Float, RWCMB );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, R32Float, RWCMB );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v2, RGBA8Unorm_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, RGBA8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v2, RGBA8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, RGBA8Unorm_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RGBA8Snorm, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v2, BGRA8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, BGRA8Unorm_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v2, BGRA8Unorm_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, BGRA8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, RGB10A2Unorm, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, RGB10A2Uint, RWCM );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, RG11B10Float, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, RGB9E5Float, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, RGB10A2Unorm, All );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, RGB10A2Uint, RWCM );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, RG11B10Float, All );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, RGB9E5Float, All );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, RG32Uint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, RG32Sint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, RG32Float, RWCB );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RG32Uint, RWC );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RG32Sint, RWC );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RG32Float, RWCB );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, RGBA32Uint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, RGBA32Sint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily1_v1, RGBA32Float, RWC );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RGBA32Uint, RWC );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RGBA32Sint, RWC );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily1_v1, RGBA32Float, RWC );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_4x4_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_4x4_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_5x4_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_5x4_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_5x5_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_5x5_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_6x5_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_6x5_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_6x6_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_6x6_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_8x5_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_8x5_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_8x6_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_8x6_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_8x8_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_8x8_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_10x5_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_10x5_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_10x6_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_10x6_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_10x8_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_10x8_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_10x10_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_10x10_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_12x10_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_12x10_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_12x12_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily1_v1, ASTC_12x12_sRGB, RF );
|
||||
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_4x4_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_4x4_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_5x4_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_5x4_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_5x5_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_5x5_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_6x5_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_6x5_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_6x6_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_6x6_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_8x5_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_8x5_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_8x6_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_8x6_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_8x8_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_8x8_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_10x5_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_10x5_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_10x6_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_10x6_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_10x8_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_10x8_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_10x10_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_10x10_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_12x10_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_12x10_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_12x12_LDR, RF );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily1_v1, ASTC_12x12_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, Depth32Float, DRMR );
|
||||
addFeatSetMTLPixFmtCaps( tvOS_GPUFamily2_v1, Depth32Float_Stencil8, DRMR );
|
||||
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, Depth32Float, DRMR );
|
||||
addMTLPixelFormatCapabilities( tvOS_GPUFamily2_v1, Depth32Float_Stencil8, DRMR );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily2_v1, BGRA10_XR, All );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily2_v1, BGRA10_XR_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily2_v1, BGR10_XR, All );
|
||||
addFeatSetMTLPixFmtCaps(tvOS_GPUFamily2_v1, BGR10_XR_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily2_v1, BGRA10_XR, All );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily2_v1, BGRA10_XR_sRGB, All );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily2_v1, BGR10_XR, All );
|
||||
addMTLPixelFormatCapabilities(tvOS_GPUFamily2_v1, BGR10_XR_sRGB, All );
|
||||
addGPUOSMTLPixFmtCaps( Apple1, 13.0, Depth16Unorm, DRFM );
|
||||
addGPUOSMTLPixFmtCaps( Apple3, 13.0, Depth16Unorm, DRFMR );
|
||||
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, UCharNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, CharNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, UChar, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, Char, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, UShortNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, ShortNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, UShort, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, Short, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, Half, Vertex );
|
||||
addMTLVertexFormatCapabilities( tvOS_GPUFamily1_v3, UChar4Normalized_BGRA, Vertex );
|
||||
// Vertex formats
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, UCharNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, CharNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, UChar, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, Char, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, UShortNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, ShortNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, UShort, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, Short, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, Half, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( tvOS_GPUFamily1_v3, UChar4Normalized_BGRA, Vertex );
|
||||
|
||||
// Disable for simulator last.
|
||||
#if MVK_TVOS_SIMULATOR
|
||||
disableAllMTLPixelFormatCapabilities(R8Unorm_sRGB);
|
||||
disableAllMTLPixelFormatCapabilities(RG8Unorm_sRGB);
|
||||
disableAllMTLPixelFormatCapabilities(B5G6R5Unorm);
|
||||
disableAllMTLPixelFormatCapabilities(A1BGR5Unorm);
|
||||
disableAllMTLPixelFormatCapabilities(ABGR4Unorm);
|
||||
disableAllMTLPixelFormatCapabilities(BGR5A1Unorm);
|
||||
// Disable for tvOS simulator last.
|
||||
#if MVK_OS_SIMULATOR
|
||||
disableAllMTLPixFmtCaps(R8Unorm_sRGB);
|
||||
disableAllMTLPixFmtCaps(RG8Unorm_sRGB);
|
||||
disableAllMTLPixFmtCaps(B5G6R5Unorm);
|
||||
disableAllMTLPixFmtCaps(A1BGR5Unorm);
|
||||
disableAllMTLPixFmtCaps(ABGR4Unorm);
|
||||
disableAllMTLPixFmtCaps(BGR5A1Unorm);
|
||||
|
||||
disableAllMTLPixelFormatCapabilities(BGRA10_XR);
|
||||
disableAllMTLPixelFormatCapabilities(BGRA10_XR_sRGB);
|
||||
disableAllMTLPixelFormatCapabilities(BGR10_XR);
|
||||
disableAllMTLPixelFormatCapabilities(BGR10_XR_sRGB);
|
||||
disableAllMTLPixFmtCaps(BGRA10_XR);
|
||||
disableAllMTLPixFmtCaps(BGRA10_XR_sRGB);
|
||||
disableAllMTLPixFmtCaps(BGR10_XR);
|
||||
disableAllMTLPixFmtCaps(BGR10_XR_sRGB);
|
||||
|
||||
disableAllMTLPixelFormatCapabilities(GBGR422);
|
||||
disableAllMTLPixelFormatCapabilities(BGRG422);
|
||||
disableAllMTLPixFmtCaps(GBGR422);
|
||||
disableAllMTLPixFmtCaps(BGRG422);
|
||||
|
||||
disableMTLPixelFormatCapabilities(RGB9E5Float, ColorAtt);
|
||||
disableMTLPixFmtCaps(RGB9E5Float, ColorAtt);
|
||||
|
||||
disableMTLPixelFormatCapabilities(R8Unorm_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(RG8Unorm_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(RGBA8Unorm_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(BGRA8Unorm_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(PVRTC_RGBA_2BPP_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(PVRTC_RGBA_4BPP_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ETC2_RGB8_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ETC2_RGB8A1_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(EAC_RGBA8_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_4x4_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_5x4_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_5x5_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_6x5_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_6x6_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_8x5_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_8x6_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_8x8_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_10x5_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_10x6_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_10x8_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_10x10_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_12x10_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_12x12_sRGB, Write);
|
||||
disableMTLPixFmtCaps(R8Unorm_sRGB, Write);
|
||||
disableMTLPixFmtCaps(RG8Unorm_sRGB, Write);
|
||||
disableMTLPixFmtCaps(RGBA8Unorm_sRGB, Write);
|
||||
disableMTLPixFmtCaps(BGRA8Unorm_sRGB, Write);
|
||||
disableMTLPixFmtCaps(PVRTC_RGBA_2BPP_sRGB, Write);
|
||||
disableMTLPixFmtCaps(PVRTC_RGBA_4BPP_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ETC2_RGB8_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ETC2_RGB8A1_sRGB, Write);
|
||||
disableMTLPixFmtCaps(EAC_RGBA8_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_4x4_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_5x4_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_5x5_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_6x5_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_6x6_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_8x5_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_8x6_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_8x8_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_10x5_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_10x6_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_10x8_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_10x10_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_12x10_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_12x12_sRGB, Write);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#if MVK_IOS
|
||||
void MVKPixelFormats::modifyMTLFormatCapabilities(id<MTLDevice> mtlDevice) {
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v3, R8Unorm_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, R8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v3, R8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, R8Unorm_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, R8Snorm, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, R8Snorm, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v3, RG8Unorm_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, RG8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v3, RG8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, RG8Unorm_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, RG8Snorm, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, RG8Snorm, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, R32Uint, RWC );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, R32Uint, Atomic );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, R32Sint, RWC );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, R32Sint, Atomic );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, R32Uint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, R32Uint, Atomic );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, R32Sint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, R32Sint, Atomic );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, R32Float, RWCMB );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, R32Float, RWCMB );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v3, RGBA8Unorm_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, RGBA8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v3, RGBA8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, RGBA8Unorm_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, RGBA8Snorm, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, RGBA8Snorm, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v3, BGRA8Unorm_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, BGRA8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v3, BGRA8Unorm_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, BGRA8Unorm_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, RGB10A2Unorm, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, RGB10A2Uint, RWCM );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, RG11B10Float, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, RGB9E5Float, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, RGB10A2Unorm, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, RGB10A2Uint, RWCM );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, RG11B10Float, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, RGB9E5Float, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, RG32Uint, RWC );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, RG32Sint, RWC );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, RG32Float, RWCB );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, RG32Uint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, RG32Sint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, RG32Float, RWCB );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, RGBA32Uint, RWC );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, RGBA32Sint, RWC );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v2, RGBA32Float, RWC );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, RGBA32Uint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, RGBA32Sint, RWC );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v2, RGBA32Float, RWC );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_4x4_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_4x4_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_5x4_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_5x4_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_5x5_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_5x5_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_6x5_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_6x5_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_6x6_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_6x6_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_8x5_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_8x5_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_8x6_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_8x6_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_8x8_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_8x8_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_10x5_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_10x5_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_10x6_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_10x6_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_10x8_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_10x8_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_10x10_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_10x10_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_12x10_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_12x10_sRGB, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_12x12_LDR, RF );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily2_v1, ASTC_12x12_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_4x4_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_4x4_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_5x4_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_5x4_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_5x5_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_5x5_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_6x5_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_6x5_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_6x6_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_6x6_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_8x5_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_8x5_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_8x6_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_8x6_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_8x8_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_8x8_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_10x5_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_10x5_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_10x6_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_10x6_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_10x8_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_10x8_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_10x10_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_10x10_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_12x10_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_12x10_sRGB, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_12x12_LDR, RF );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily2_v1, ASTC_12x12_sRGB, RF );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, Depth32Float, DRMR );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v1, Depth32Float_Stencil8, DRMR );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, Depth32Float, DRMR );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v1, Depth32Float_Stencil8, DRMR );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v2, BGRA10_XR, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v2, BGRA10_XR_sRGB, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v2, BGR10_XR, All );
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily3_v2, BGR10_XR_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v2, BGRA10_XR, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v2, BGRA10_XR_sRGB, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v2, BGR10_XR, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily3_v2, BGR10_XR_sRGB, All );
|
||||
|
||||
addMTLPixelFormatCapabilities( iOS_GPUFamily1_v4, BGR10A2Unorm, All );
|
||||
addFeatSetMTLPixFmtCaps( iOS_GPUFamily1_v4, BGR10A2Unorm, All );
|
||||
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, UCharNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, CharNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, UChar, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, Char, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, UShortNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, ShortNormalized, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, UShort, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, Short, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, Half, Vertex );
|
||||
addMTLVertexFormatCapabilities( iOS_GPUFamily1_v4, UChar4Normalized_BGRA, Vertex );
|
||||
addGPUOSMTLPixFmtCaps( Apple1, 13.0, Depth16Unorm, DRFM );
|
||||
addGPUOSMTLPixFmtCaps( Apple3, 13.0, Depth16Unorm, DRFMR );
|
||||
|
||||
// Disable for simulator last.
|
||||
#if MVK_IOS_SIMULATOR
|
||||
disableAllMTLPixelFormatCapabilities(R8Unorm_sRGB);
|
||||
disableAllMTLPixelFormatCapabilities(RG8Unorm_sRGB);
|
||||
disableAllMTLPixelFormatCapabilities(B5G6R5Unorm);
|
||||
disableAllMTLPixelFormatCapabilities(A1BGR5Unorm);
|
||||
disableAllMTLPixelFormatCapabilities(ABGR4Unorm);
|
||||
disableAllMTLPixelFormatCapabilities(BGR5A1Unorm);
|
||||
// Vertex formats
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, UCharNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, CharNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, UChar, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, Char, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, UShortNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, ShortNormalized, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, UShort, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, Short, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, Half, Vertex );
|
||||
addFeatSetMTLVtxFmtCaps( iOS_GPUFamily1_v4, UChar4Normalized_BGRA, Vertex );
|
||||
|
||||
disableAllMTLPixelFormatCapabilities(BGRA10_XR);
|
||||
disableAllMTLPixelFormatCapabilities(BGRA10_XR_sRGB);
|
||||
disableAllMTLPixelFormatCapabilities(BGR10_XR);
|
||||
disableAllMTLPixelFormatCapabilities(BGR10_XR_sRGB);
|
||||
// Disable for iOS simulator last.
|
||||
#if MVK_OS_SIMULATOR
|
||||
disableAllMTLPixFmtCaps(R8Unorm_sRGB);
|
||||
disableAllMTLPixFmtCaps(RG8Unorm_sRGB);
|
||||
disableAllMTLPixFmtCaps(B5G6R5Unorm);
|
||||
disableAllMTLPixFmtCaps(A1BGR5Unorm);
|
||||
disableAllMTLPixFmtCaps(ABGR4Unorm);
|
||||
disableAllMTLPixFmtCaps(BGR5A1Unorm);
|
||||
|
||||
disableAllMTLPixelFormatCapabilities(GBGR422);
|
||||
disableAllMTLPixelFormatCapabilities(BGRG422);
|
||||
disableAllMTLPixFmtCaps(BGRA10_XR);
|
||||
disableAllMTLPixFmtCaps(BGRA10_XR_sRGB);
|
||||
disableAllMTLPixFmtCaps(BGR10_XR);
|
||||
disableAllMTLPixFmtCaps(BGR10_XR_sRGB);
|
||||
|
||||
disableMTLPixelFormatCapabilities(RGB9E5Float, ColorAtt);
|
||||
disableAllMTLPixFmtCaps(GBGR422);
|
||||
disableAllMTLPixFmtCaps(BGRG422);
|
||||
|
||||
disableMTLPixelFormatCapabilities(R8Unorm_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(RG8Unorm_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(RGBA8Unorm_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(BGRA8Unorm_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(PVRTC_RGBA_2BPP_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(PVRTC_RGBA_4BPP_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ETC2_RGB8_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ETC2_RGB8A1_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(EAC_RGBA8_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_4x4_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_5x4_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_5x5_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_6x5_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_6x6_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_8x5_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_8x6_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_8x8_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_10x5_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_10x6_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_10x8_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_10x10_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_12x10_sRGB, Write);
|
||||
disableMTLPixelFormatCapabilities(ASTC_12x12_sRGB, Write);
|
||||
disableMTLPixFmtCaps(RGB9E5Float, ColorAtt);
|
||||
|
||||
disableMTLPixFmtCaps(R8Unorm_sRGB, Write);
|
||||
disableMTLPixFmtCaps(RG8Unorm_sRGB, Write);
|
||||
disableMTLPixFmtCaps(RGBA8Unorm_sRGB, Write);
|
||||
disableMTLPixFmtCaps(BGRA8Unorm_sRGB, Write);
|
||||
disableMTLPixFmtCaps(PVRTC_RGBA_2BPP_sRGB, Write);
|
||||
disableMTLPixFmtCaps(PVRTC_RGBA_4BPP_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ETC2_RGB8_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ETC2_RGB8A1_sRGB, Write);
|
||||
disableMTLPixFmtCaps(EAC_RGBA8_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_4x4_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_5x4_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_5x5_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_6x5_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_6x6_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_8x5_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_8x6_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_8x8_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_10x5_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_10x6_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_10x8_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_10x10_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_12x10_sRGB, Write);
|
||||
disableMTLPixFmtCaps(ASTC_12x12_sRGB, Write);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#undef addMTLPixelFormatCapabilities
|
||||
#undef disableMTLPixelFormatCapabilities
|
||||
#undef disableAllMTLPixelFormatCapabilities
|
||||
#undef addMTLVertexFormatCapabilities
|
||||
#undef addFeatSetMTLPixFmtCaps
|
||||
#undef addGPUOSMTLPixFmtCaps
|
||||
#undef disableMTLPixFmtCaps
|
||||
#undef disableAllMTLPixFmtCaps
|
||||
#undef addFeatSetMTLVtxFmtCaps
|
||||
#undef addGPUOSMTLVtxFmtCaps
|
||||
|
||||
// Populates the VkFormat lookup maps and connects Vulkan and Metal pixel formats to one-another.
|
||||
void MVKPixelFormats::buildVkFormatMaps() {
|
||||
|
@ -336,7 +336,7 @@
|
||||
A90B2B1D1A9B6170008EE819 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1150;
|
||||
LastUpgradeCheck = 1160;
|
||||
TargetAttributes = {
|
||||
A9FEADBC1F3517480010240E = {
|
||||
DevelopmentTeam = VU3TCKU48B;
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "NO"
|
||||
|
@ -528,7 +528,7 @@
|
||||
A9F55D25198BE6A7004EC31B /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1150;
|
||||
LastUpgradeCheck = 1160;
|
||||
ORGANIZATIONNAME = "The Brenwill Workshop Ltd.";
|
||||
TargetAttributes = {
|
||||
A9092A8C1A81717B00051823 = {
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1150"
|
||||
LastUpgradeVersion = "1160"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
Loading…
x
Reference in New Issue
Block a user