Chip Davis
b1803ea5d7
MVKDevice: Support the VK_EXT_image_robustness extension.
...
This extension provides weaker guarantees than `VK_EXT_robustness2` and
its `robustImageAccess2` feature. Metal easily meets those guarantees,
with no action on our part necessary.
2020-07-24 15:13:58 -05:00
Bill Hollings
1f68d5fc2a
Fix intermittent concurrent shader specialization race condition.
...
MVKShaderLibrary::getMTLFunction() synchronize and refactor release of Metal objects.
Make use of existing autorelease pool instead of discrete retain/release.
Wrap entire specialization operation in @synchronized() to guard against
Metal internals not coping with multiple simultaneous specializations.
2020-07-22 17:48:19 -04:00
Bill Hollings
c0103fd008
Remove redundant validation check for 2D image views on 3D images.
2020-07-22 14:52:06 -04:00
Caleb Cornett
c8cba37170
Add support for USCALED/SSCALED vertex formats
2020-07-21 21:06:13 -04:00
Bill Hollings
81ec314787
Track if indirect tessellation drawing is supported.
...
Add MVKPhysicalDeviceMetalFeatures::indirectTessellationDrawing.
Return error if indirect tessellated draw command is used when not supported.
2020-07-21 14:10:20 -04:00
Bill Hollings
927bfddbc7
VkPhysicalDeviceProperties::pipelineCacheUUID include MoltenVK Git revision hash.
2020-07-20 17:53:11 -04:00
Bill Hollings
fc0750d67c
Set VkPhysicalDeviceDriverPropertiesKHR::driverID to VK_DRIVER_ID_MOLTENVK.
...
Update to latest version of Vulkan-Headers.
2020-07-20 14:51:40 -04:00
Bill Hollings
b4ea11fe2a
Merge pull request #965 from billhollings/master
...
Several minor updates: VK_FORMAT_D16_UNORM plus vertex attribute stride test
2020-07-20 14:16:48 -04:00
Bill Hollings
4d082f0501
Merge pull request #948 from TheSpydog/driverprops
...
Implement VK_KHR_driver_properties extension
2020-07-20 13:35:22 -04:00
Bill Hollings
e784ae2cbb
Merge pull request #964 from js6i/master
...
Add missing offset when flushing buffer data to device
2020-07-20 12:32:26 -04:00
Bill Hollings
2859c6302d
MVKCommands delegate reportError() to MVKCommandBuffer.
2020-07-18 00:33:05 -04:00
Bill Hollings
7aca997250
Support Xcode 11.6.
2020-07-18 00:11:56 -04:00
Bill Hollings
f5b937c7f9
Add native support for VK_FORMAT_D16_UNORM on iOS 13.0+ and tvOS 13.0+.
2020-07-18 00:06:51 -04:00
Bill Hollings
72c4ba1118
Remove unneeded MVK_IOS_SIMULATOR and MVK_TVOS_SIMULATOR macros.
2020-07-17 22:18:08 -04:00
Jan Sikorski
d90528b0c9
Add missing offset when flushing buffer data to device
2020-07-16 12:17:09 +02:00
Chip Davis
00fdbc47bc
MVKPixelFormats: Correct format features for GBGR/BGRG formats.
...
Some things I missed in my review.
These formats use implicit reconstruction, and we don't support explicit
reconstruction here yet. If there's a demand for it, I or someone else
can implement it, but I don't expect it to be an issue.
Because it uses implicit reconstruction, chroma sampling is determined
by the implementation, i.e. Metal. My testing shows that Metal on AMD
and Intel uses midpoint reconstruction. Based on this, I think NV will
be the same.
Finally, according to the Vulkan spec:
> Implicit reconstruction takes place by the samples being interpolated,
> as required by the filter settings of the sampler, *except that
> `chromaFilter` takes precedence for the chroma samples*. [emphasis
> added]
Since Metal obviously uses the same filters for chroma and luma, we
can't support the separate reconstruction filter feature here.
2020-07-16 00:02:18 -05:00
Bill Hollings
5ff8531bba
Include vertex attribute size when testing whether attribute offset exceeds stride.
...
Track Metal vertex binding stride alignment.
Add MVKPhysicalDeviceMetalFeatures::vertexStrideAlignment.
Update VK_MVK_MOLTENVK_SPEC_VERSION to 27.
Update pipeline cache archive description for CompilerMSL::Options.
2020-07-11 15:36:44 -04:00
Bill Hollings
1b84dd769d
Also remove use of Metal kCGColorSpaceITUR_2020_PQ to avoid App Store rejections.
2020-07-09 12:26:42 -04:00
Caleb Cornett
b77404ad36
Change conformance version, refactor strcpy
2020-07-08 20:57:49 -04:00
Bill Hollings
e39dde02ec
Fix new and unexpected App Store failure on newly deprecated color space values.
2020-07-08 14:58:29 -04:00
Caleb Cornett
7f64c419c2
Implement VK_KHR_driver_properties
2020-07-07 16:31:07 -04:00
Bill Hollings
cd18cec727
Fix small memory leak when setting swapchain color space.
...
Add CAMetalLayer::colorspaceNameMVK property to handle retain/release automatically.
2020-07-06 17:36:05 -04:00
Bill Hollings
1a686efc19
MVKPhysicalDevice::getSurfaceFormats() reduce fragility of surface format definitions.
2020-06-30 15:28:52 -04:00
Bill Hollings
c0b0e4e6c4
Merge pull request #939 from cdavis5e/macos-rgb10a2-surface
...
MVKDevice: Advertise VK_FORMAT_A2B10G10R10_UNORM_PACK32 as a surface format.
2020-06-30 14:40:47 -04:00
Chip Davis
85357d0a5d
MVKDevice: Advertise VK_FORMAT_A2B10G10R10_UNORM_PACK32 as a surface format.
...
The corresponding Metal format is now documented as supported for
`CAMetalLayer`, confirming my findings in #673 .
Only support the 10-10-10-2 formats on macOS. iOS and tvOS instead have
extended-range formats, which unfortunately have no Vulkan equivalents.
I've added them anyway for completeness. I suppose if Vulkan ever does
get these formats, we'll then be ready to expose them as surface
formats.
2020-06-25 13:34:00 -05:00
Aman Gupta
9d886adac5
mark shared memory type as VK_MEMORY_PROPERTY_HOST_CACHED_BIT
2020-06-25 10:49:50 -07:00
Aman Gupta
1de1c64c65
add more tvos paths in MVKDevice
2020-06-24 17:17:54 -07:00
Aman Gupta
fe1ebdf753
Merge remote-tracking branch 'upstream/master' into tvos-fixups
2020-06-24 16:00:58 -07:00
Bill Hollings
21630b59bb
Merge pull request #935 from billhollings/master
...
Support iOS Simulator and tvOS Simulator, plus further tvOS integration
2020-06-24 18:34:13 -04:00
Aman Gupta
8c6ab03bb9
fix flags in MVKImage.mm
2020-06-24 15:00:20 -07:00
Aman Gupta
dbdccdf068
memoryless storage not allowed for buffers
2020-06-24 14:57:18 -07:00
Aman Gupta
85fb1ae4e8
memoryless introduced in tvOS 10
2020-06-24 14:45:54 -07:00
Aman Gupta
fa17791a31
fix memory properties on tvos
2020-06-24 14:41:13 -07:00
Bill Hollings
40d3485cec
Remove unneeded switch default for MTLLanguageVersion.
...
Minor doc fixes from PR review.
2020-06-24 17:04:30 -04:00
Chip Davis
3a9d951d51
MVKImage: Remove error message.
...
The number of layers is set on the `MTLRenderPassDescription`.
2020-06-24 12:18:12 -05:00
Chip Davis
dc79e75379
MVKImage: Fix inverted condition.
2020-06-24 12:18:12 -05:00
Aman Gupta
043f51c5a2
missing tvos features
2020-06-23 19:56:20 -07:00
Aman Gupta
e8db4f2af7
fix maxComputeSharedMemorySize for tvos
2020-06-23 19:25:51 -07:00
Aman Gupta
e03df97f66
ensure more tvos properties are set
2020-06-23 18:33:42 -07:00
Aman Gupta
1b88d4afff
fill in some missing properties
2020-06-23 18:15:22 -07:00
Bill Hollings
da981be45b
Merge pull request #932 from Lichtso/VkPhysicalDeviceSubgroupProperties
...
Adds VkPhysicalDeviceSubgroupProperties.
2020-06-23 14:06:10 -04:00
Bill Hollings
7910f43867
MVKPixelFormats reduce some MTLPixelFormat capabilities for simulators.
...
Add MVK_IOS_SIMULATOR and MVK_TVOS_SIMULATOR macros.
MVKPixelFormats add disableMTLPixelFormatCapabilities().
MVKPixelFormats add disableAllMTLPixelFormatCapabilities().
2020-06-22 23:52:51 -04:00
Bill Hollings
72517a2474
Cleanup tvOS build warnings.
...
Use platform macros to conditionally build outstanding tvOS code.
Log validation error message when tvOS code doesn't support expected functionality.
2020-06-22 21:55:51 -04:00
Bill Hollings
8b3d3a7338
Merge pull request #930 from js6i/master
...
Host-coherent texel buffers
2020-06-22 15:56:44 -04:00
Alexander Meißner
56beffd770
Fixes supportedStages and limits subgroupSize to be only set on supported platforms / versions.
2020-06-22 21:54:27 +02:00
Jan Sikorski
6b5217e720
Protect creation of buffers with a mutex
2020-06-22 18:38:12 +02:00
Jan Sikorski
d0059a2bdf
Do host-coherent texel buffer caching just for buffer views
2020-06-22 18:35:50 +02:00
Alexander Meißner
60af232d4f
Adds VkPhysicalDeviceSubgroupProperties.
...
This comes with a fixed subgroupSize per physical device until VK_EXT_subgroup_size_control is implemented.
2020-06-21 10:17:38 +02:00
Bill Hollings
039cb199bb
Remove use of TARGETED_DEVICE_FAMILY Xcode build setting.
2020-06-19 15:55:22 -04:00
Chip Davis
d14d4e918d
MVKPipeline: Fix fragment inputs to have as many components as vertex outputs.
...
Metal is picky about interface matching. If the types of a vertex output
and its corresponding fragment input don't match, down to the number of
vector components, it fails pipeline compilation. To support cases where
the number of components in the fragment input is less than the
corresponding vertex output, we need to fix up the fragment shader to
accept the extra components.
2020-06-19 14:20:29 -05:00