428 Commits

Author SHA1 Message Date
Chip Davis
38825b9600 vkUpdateDescriptorSet: Handle copies of uninitialized descriptors.
For a copy, the spec requires only that the source and destination
bindings are valid, not that the source has been initialized. If the
source binding hasn't been initialized, then we crash attempting to get
the Metal resources corresponding to the uninitialized descriptors. So,
if the descriptor binding hasn't been initialized, don't try to fetch
Metal resources for it.

Yes, this causes us to accept writes of NULL descriptors (from
templates or otherwise), even though the spec forbids this. I don't know
how to solve this without specializing `writeDescriptorSets()`
specifically for the `VkCopyDescriptorSet` case (thereby duplicating
quite a bit of code). Given the general nature of Vulkan as a framework
that does little to no state validation, I wonder if it's even worth it.
2018-09-07 12:39:52 -05:00
Chip Davis
eb06c9dd5f vkCmdFillBuffer: Use the older method to dispatch the compute kernel.
We're not even running more than one thread, let alone taking advantage
of the new method's automatic threadgroup sizing.
2018-09-07 12:39:13 -05:00
Bill Hollings
d505f71546 Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK 2018-09-07 11:53:39 -04:00
Bill Hollings
e721dd6e2c Update build process.
Allow building and packaging MoltenVK for of only iOS or only macOS.
Move packaging scripts out of Xcode projects and into script files.
2018-09-07 11:46:58 -04:00
Bill Hollings
7fb064fdee
Merge pull request #244 from cdavis5e/image-fake-2d-view
MVKImageView: Create 3D MTLTextureViews for 2D image views of 3D textures.
2018-09-07 11:12:03 -04:00
Chip Davis
a0d567da92 Fix Clang warning about order of operations. 2018-09-06 20:04:41 -05:00
Bill Hollings
fef7cba169
Merge pull request #245 from cdavis5e/get-physdev-props-segfault
MVKDevice: Fix a segfault walking unknown extension structs.
2018-09-06 16:13:36 -04:00
Chip Davis
78a59a3e37 Try harder to avoid creating texture views with 3D textures.
Also, warn only when the texture may be used for a purpose other than as
a color attachment. Fail outright if it won't ever be used for that
purpose, or if the view doesn't cover the entirety of the volume.
2018-09-05 11:55:39 -05:00
Chip Davis
f1b62ed297 Don't fail creation of the ImageView. 2018-09-05 11:55:35 -05:00
Chip Davis
7fd270edb6 MVKDevice: Fix a segfault walking unknown extension structs.
The problem is that on 64-bit platforms (i.e. every platform we support)
there will be padding between the `sType` and `pNext` members of any
extensible Vulkan structure, because `sType` is only 4 bytes while
`pNext` is 8 (and needs 8-byte alignment).

Should fix a segfault running `vulkaninfo`.
2018-09-05 11:15:04 -05:00
Chip Davis
acf63a16e7 MVKImageView: Create 3D MTLTextureViews for 2D image views of 3D textures.
This won't help using these image views from shaders, but it will help
attaching them to framebuffers.

I've left the warning in `validateImageViewConfig()` in place.
2018-09-05 10:21:09 -05:00
Bill Hollings
4fcd64c017
Merge pull request #239 from cdavis5e/desc-update-template
Support the VK_KHR_descriptor_update_template extension.
2018-09-04 15:55:14 -04:00
Chip Davis
d557b51433 Fix a silly omission that breaks the build. 2018-09-02 22:23:52 -05:00
Chip Davis
63c6e4d8c4 Support the VK_KHR_descriptor_update_template extension. 2018-09-02 15:28:39 -05:00
Bill Hollings
2767da328b
Merge pull request #238 from billhollings/master
Update MoltenVK to version 1.0.20.
2018-09-01 18:41:03 -04:00
Bill Hollings
906376f9ff Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK 2018-09-01 18:29:46 -04:00
Bill Hollings
c369da1cdd Update to What's New document.
Update to latest version of SPIRV-Cross.
2018-09-01 18:27:07 -04:00
Bill Hollings
e0a6d81e90
Merge pull request #237 from billhollings/master
Vulkan extension enhancements.
2018-09-01 18:09:51 -04:00
Bill Hollings
23df850465 Merge and fix conflicts between extension enhancement commits. 2018-09-01 17:22:33 -04:00
Bill Hollings
63ce4cf1f5 Vulkan extension enhancements.
Add MVKExtensionList struct to track supported and enabled Vulkan extensions within MVKInstance & MVKDevice.
Log supported and enabled Vulkan extensions for VkInstance & VkDevice.
Add error handling for descriptor sets & 3D images in VK_KHR_maintenance1 extension.
All header files load mvk_vulkan.h instead of vulkan.h for consistent use of macOS & iOS extensions.
2018-09-01 16:42:10 -04:00
Bill Hollings
93541e494e
Merge pull request #236 from cdavis5e/push-descriptor
Support the VK_KHR_push_descriptor extension.
2018-09-01 13:38:24 -04:00
Chip Davis
54f69c30e7 Support the VK_KHR_push_descriptor extension. 2018-08-31 15:13:46 -05:00
Bill Hollings
2505fb03b2
Merge pull request #235 from cdavis5e/get-physdev-props-2
Support the VK_KHR_get_physical_device_properties2 extension.
2018-08-31 16:00:46 -04:00
Chip Davis
80bde624cf Support the VK_KHR_get_physical_device_properties2 extension.
This extension is a prerequisite for multiple other extensions, the
`VK_KHR_push_descriptor` extension in particular.
2018-08-31 14:20:44 -05:00
Bill Hollings
0f55290829
Merge pull request #232 from cdavis5e/shader-draw-parameters
Support the VK_KHR_shader_draw_parameters extension.
2018-08-31 13:56:28 -04:00
Chip Davis
ccb1afe42b Support the VK_KHR_shader_draw_parameters extension.
Update SPIRV-Cross to support shaders which use the builtins provided by
this extension.
2018-08-30 09:10:47 -05:00
Bill Hollings
259292c4d1
Merge pull request #230 from cdavis5e/vk-khr-maintenance1
Support the VK_KHR_maintenance1 extension.
2018-08-28 13:54:50 -04:00
Chip Davis
396add581a Support the VK_KHR_maintenance1 extension.
Much of this was already supported, simply by being supported by Metal.
Of course, this support is incomplete: Metal doesn't yet allow you to
create a 2D texture view from a 3D texture.
2018-08-27 12:42:20 -05:00
Bill Hollings
4c8c14a7ad
Merge pull request #227 from billhollings/master
Support Xcode 10.
2018-08-23 15:19:35 -04:00
Bill Hollings
c8a9841d8c Support pre-linking on both Xcode 9 & 10. Update library dependencies.
Remove linking MoltenVKSPIRVToMSLConverter from Build Phase in favour of PreLink.
Update to Vulkan header 1.1.83.
Update to latest version of library dependencies.
2018-08-23 14:02:05 -04:00
Bill Hollings
5bc8403cc1 Support Xcode 10.
Explicitly specify MoltenVKSPIRVToMSLConverter as prelink library.
Update build setting verification check.
2018-08-22 16:22:37 -04:00
Bill Hollings
25f2abf783
Merge pull request #226 from billhollings/master
Move MoltenVK config to instance instead of device.
2018-08-22 11:20:01 -04:00
Bill Hollings
55e80b20a6 Move MoltenVK config to instance instead of device.
Add MVKConfiguration and deprecate MVKDeviceConfiguration.
Add vkGetMoltenVKConfigurationMVK() and deprecate vkGetMoltenVKDeviceConfigurationMVK().
Add vkSetMoltenVKConfigurationMVK() and deprecate vkSetMoltenVKDeviceConfigurationMVK().
Add build setting overrides for all initial MVKConfiguration member values.
Update to MoltenVK version 1.0.19.
Update to VK_MVK_moltenvk spec version 7.
2018-08-22 10:41:50 -04:00
Bill Hollings
729c984768
Merge pull request #225 from ryandesign/typos
Fix typos in comments in fetchDependencies
2018-08-21 14:55:39 -04:00
Ryan Schmidt
8ef623373d
Fix typos in comments in fetchDependencies 2018-08-21 10:04:37 -05:00
Bill Hollings
a27de20546
Merge pull request #219 from billhollings/master
MoltenVK 1.0.18
2018-08-15 16:53:22 -04:00
Bill Hollings
346332e101 Update Whats_New.md for 1.0.18. 2018-08-15 14:39:01 -04:00
Bill Hollings
97df931b43 vkGetPhysicalDeviceFormatProperties() return VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT if supported, even if other format properties are not. 2018-08-15 13:14:43 -04:00
Bill Hollings
0cbc5b086f Fix API for updating MVKDeviceConfiguration::synchronousQueueSubmits.
Notify MVKQueues when MVKDeviceConfiguration::synchronousQueueSubmits changes.
MVKQueue use or not use separate dispatch queue as a result.
2018-08-14 16:08:26 -04:00
Bill Hollings
008274ba67 Support Metal GPU capture scopes.
Add MVKGPUCaptureScope class.
MVKQueue support separate presentation and submission scopes.
2018-08-14 12:32:01 -04:00
Bill Hollings
bd177633ca Update to latest SPIRV-Cross, glslang & SPIRV-Tools.
Update MoltenVK version to 1.0.18.
2018-08-11 16:20:58 -04:00
Bill Hollings
c89fb51003 vkCmdFullBuffer() fills buffer using compute shader.
MVKCmdCopyBuffer passes MVKCmdCopyBufferInfo struct to compute shader.
mvkAlignByteOffset(), mvkAlignAddress() & mvkAlignByteRef() functions allow aligning downwards.
Add mvkFits() function.
2018-08-09 15:10:09 -04:00
Bill Hollings
7d72fb595a
Merge pull request #213 from billhollings/master
Only update CAMetalLayer drawableSize property during swapchain creation.
2018-08-01 15:53:46 -04:00
Bill Hollings
e39d7e6394 Only update CAMetalLayer drawableSize property during swapchain creation.
Simplify structure of MVKQueue::submit() functions.
2018-08-01 15:29:15 -04:00
Bill Hollings
d2aea464de
Merge pull request #210 from karl-lunarg/sdk82
build: Update to get Vulkan 1.1.82 headers
2018-07-31 13:34:42 -04:00
Bill Hollings
a2ddd9e62a
Merge pull request #212 from billhollings/master
Rename folders and project for Cube demo.
2018-07-31 13:34:29 -04:00
Bill Hollings
1fecef0636 Rename folders and project for Cube demo.
Update What's New document.
Remove obsolete deprecated licensing functions.
2018-07-31 13:10:44 -04:00
Karl Schultz
1fd666632a build: Update to get Vulkan 1.1.82 headers 2018-07-30 15:40:00 -06:00
Bill Hollings
d6dfb86fca
Merge pull request #208 from billhollings/master
Various enhancements.
2018-07-29 19:47:45 -04:00
Bill Hollings
0b592f5b4a Update to latest library dependencies. 2018-07-29 17:41:14 -04:00