KhronosGroup/MoltenVK.git
4 years agoMerge pull request #173 from billhollings/masterv1.0.10
Bill Hollings [Tue, 5 Jun 2018 15:30:34 +0000 (5 11:30 -0400)]
Merge pull request #173 from billhollings/master

Device memory management changes.

4 years agoAvoid Metal validation error on MTLBuffer.contents access from private storage.
Bill Hollings [Tue, 5 Jun 2018 00:04:33 +0000 (4 20:04 -0400)]
Avoid Metal validation error on MTLBuffer.contents access from private storage.

4 years agoSupport using Metal texel buffer for linear images to increase host coherency.
Bill Hollings [Mon, 4 Jun 2018 23:15:32 +0000 (4 19:15 -0400)]
Support using Metal texel buffer for linear images to increase host coherency.

MVKDeviceMemory track MVKImages and MVKBuffers separately.
Per Vulkan spec, restrict linear images to 2D, non-array, single mipmap.
Use texel buffer if possible for texture on coherent device memory.
Only flush MVKImages (not MVKBuffers) when device memory mapped.
Do not flush texel buffer images.

4 years agoMerge branch 'master' of https://github.com/KhronosGroup/MoltenVK
Bill Hollings [Fri, 1 Jun 2018 16:49:16 +0000 (1 12:49 -0400)]
Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK

4 years agoMerge pull request #171 from danginsburg/vsync_fix
Bill Hollings [Fri, 1 Jun 2018 16:48:35 +0000 (1 12:48 -0400)]
Merge pull request #171 from danginsburg/vsync_fix

Fix vsync not being enabled in IMMEDIATE present mode. MVK_MACOS was …

4 years agoFix vsync not being enabled in IMMEDIATE present mode. MVK_MACOS was not being defined.
Dan Ginsburg [Fri, 1 Jun 2018 14:23:27 +0000 (1 10:23 -0400)]
Fix vsync not being enabled in IMMEDIATE present mode. MVK_MACOS was not being defined.

4 years agoSupport mapping and filling device memory before binding an image to it.
Bill Hollings [Thu, 31 May 2018 01:21:18 +0000 (30 21:21 -0400)]
Support mapping and filling device memory before binding an image to it.

MVKDeviceMemory uses a single memory allocation, which may be an MTLBuffer or host memory.
Image populates MTLTexture when bound to host accessible device memory.
Update MoltenVK version to 1.0.10.

4 years agoMerge pull request #169 from billhollings/master
Bill Hollings [Mon, 28 May 2018 14:54:17 +0000 (28 10:54 -0400)]
Merge pull request #169 from billhollings/master

 Replace dependency on Vulkan-LoaderAndValidationLayers with Vulkan-Headers and Vulkan-Tools.

4 years agoFix PR merge conflict.
Bill Hollings [Mon, 28 May 2018 14:16:22 +0000 (28 10:16 -0400)]
Fix PR merge conflict.

4 years agoMerge pull request #167 from hanton/fix_document_typos
Bill Hollings [Mon, 28 May 2018 14:10:31 +0000 (28 10:10 -0400)]
Merge pull request #167 from hanton/fix_document_typos

Fix several document typos.

4 years agoFix glslang install.
Bill Hollings [Mon, 28 May 2018 13:43:11 +0000 (28 09:43 -0400)]
Fix glslang install.

4 years agoReplace dependency on Vulkan-LoaderAndValidationLayers with Vulkan-Headers and Vulkan...
Bill Hollings [Mon, 28 May 2018 12:33:46 +0000 (28 08:33 -0400)]
Replace dependency on Vulkan-LoaderAndValidationLayers with Vulkan-Headers and Vulkan-Tools.

Update to latest versions of Vulkan-Headers, SPIRV-Cross, glslang, Vulkan-Tools, and VulkanSamples.

4 years agoFix typos in README.md
Hanton Yang [Thu, 24 May 2018 05:21:31 +0000 (24 13:21 +0800)]
Fix typos in README.md

4 years agoFix typos in ExternalRevisions/README.md
Hanton Yang [Thu, 24 May 2018 05:21:07 +0000 (24 13:21 +0800)]
Fix typos in ExternalRevisions/README.md

4 years agoFix typos in Docs/MoltenVK_Runtime_UserGuide.md
Hanton Yang [Thu, 24 May 2018 05:20:51 +0000 (24 13:20 +0800)]
Fix typos in Docs/MoltenVK_Runtime_UserGuide.md

4 years agoMerge pull request #166 from billhollings/masterv1.0.9
Bill Hollings [Wed, 23 May 2018 14:44:01 +0000 (23 10:44 -0400)]
Merge pull request #166 from billhollings/master

vkGetPhysicalDeviceImageFormatProperties returns VK_ERROR_FORMAT_NOT_SUPPORTED.

4 years agovkGetPhysicalDeviceImageFormatProperties returns
Bill Hollings [Tue, 22 May 2018 18:24:34 +0000 (22 14:24 -0400)]
vkGetPhysicalDeviceImageFormatProperties returns
VK_ERROR_FORMAT_NOT_SUPPORTED if the format is not supported.
Default value of MVKDeviceConfiguration::metalCompileTimeout set to infinite.

4 years agoMerge pull request #161 from mellinoe/fix-depthstencil-clear
Bill Hollings [Tue, 22 May 2018 15:18:10 +0000 (22 11:18 -0400)]
Merge pull request #161 from mellinoe/fix-depthstencil-clear

Fix an issue where the depth format in MVKCmdClearImage was not getting set correctly.

4 years agoMerge pull request #165 from billhollings/master
Bill Hollings [Tue, 22 May 2018 15:03:24 +0000 (22 11:03 -0400)]
Merge pull request #165 from billhollings/master

Synchronization and threading fixes.

4 years agoSynchronization and threading fixes.
Bill Hollings [Tue, 22 May 2018 14:30:53 +0000 (22 10:30 -0400)]
Synchronization and threading fixes.

Move surface access to UI components to main thread.
Fix deadlock possibility between MVKFence and MVKFenceSitter.
Fix handling of locking on deferred-destruction objects.
Update MoltenVK version to 1.0.9.

4 years agoFix an issue where the depth format in MVKCmdClearImage was not getting set correctly.
Eric Mellino [Sun, 20 May 2018 05:14:27 +0000 (19 22:14 -0700)]
Fix an issue where the depth format in MVKCmdClearImage was not getting set correctly.

4 years agoMerge pull request #159 from billhollings/masterv1.0.8
Bill Hollings [Sun, 20 May 2018 02:02:57 +0000 (19 22:02 -0400)]
Merge pull request #159 from billhollings/master

Allow queue processing to be optionally handled on the submitting (re…

4 years agoAllow queue processing to be optionally handled on the submitting (render) thread.
Bill Hollings [Sun, 20 May 2018 00:35:02 +0000 (19 20:35 -0400)]
Allow queue processing to be optionally handled on the submitting (render) thread.

Add MVKDeviceConfiguration::synchronousQueueSubmits configuration setting.
Update to latest SPRIV-Cross version to fix atomic_compare issue.
Update MoltenVK version to 1.0.8.

4 years agoMerge pull request #158 from hanton/hotfix/fix_document_typo
Bill Hollings [Sat, 19 May 2018 13:31:16 +0000 (19 09:31 -0400)]
Merge pull request #158 from hanton/hotfix/fix_document_typo

Fix typo in MoltenVK_Runtime_UserGuide.md

4 years agoFix typo in MoltenVK_Runtime_UserGuide.md
Hanton Yang [Fri, 18 May 2018 13:24:16 +0000 (18 21:24 +0800)]
Fix typo in MoltenVK_Runtime_UserGuide.md

4 years agoMerge pull request #154 from billhollings/master
Bill Hollings [Tue, 15 May 2018 11:44:59 +0000 (15 07:44 -0400)]
Merge pull request #154 from billhollings/master

Remove mutex locks on MVKDescriptorPool.

4 years agoRemove mutex locks on MVKDescriptorPool.
Bill Hollings [Mon, 14 May 2018 19:48:27 +0000 (14 15:48 -0400)]
Remove mutex locks on MVKDescriptorPool.

Update docs to indicate support for Vulkan 1.0, instead of 1.1.

4 years agoMerge pull request #153 from billhollings/master
Bill Hollings [Mon, 14 May 2018 16:03:52 +0000 (14 12:03 -0400)]
Merge pull request #153 from billhollings/master

 Add Metal library, function and pipeline compilation timeout limits.

4 years agoUpdate to latest SPIRV-Cross.
Bill Hollings [Mon, 14 May 2018 15:10:13 +0000 (14 11:10 -0400)]
Update to latest SPIRV-Cross.

4 years agoAdd Metal library, function and pipeline compilation timeout limits.
Bill Hollings [Mon, 14 May 2018 14:53:27 +0000 (14 10:53 -0400)]
Add Metal library, function and pipeline compilation timeout limits.

Add MVKDeviceConfiguration::metalCompileTimeout config setting.
Limit Metal compilation timeouts to 125 ms by default in Release mode.
Invoke Metal library, function specialization, and pipeline compilations
asynchronously with completion handlers. Abort after timeout expires.
Set default value of MVKDeviceConfiguration::supportLargeQueryPools to true,
to support large Query Pools by default.
Access vertexDescriptor in MTLRenderPipelineDescriptor only if needed.
Update MoltenVK version to 1.0.7.

4 years agoMerge pull request #150 from billhollings/master
Bill Hollings [Tue, 8 May 2018 16:35:50 +0000 (8 12:35 -0400)]
Merge pull request #150 from billhollings/master

Fixes to run Vulkan CTS without crashes

4 years agoHandle null pointers in vkDestroy...() functions.
Bill Hollings [Tue, 8 May 2018 00:10:43 +0000 (7 20:10 -0400)]
Handle null pointers in vkDestroy...() functions.

4 years agoCreate copies of MVKShaderLibraries when merging pipeline caches.
Bill Hollings [Mon, 7 May 2018 19:50:09 +0000 (7 15:50 -0400)]
Create copies of MVKShaderLibraries when merging pipeline caches.
Handle NULLs when freeing command buffers.
Replace delete with call to destroy() for all MVK objects.

4 years agoHandle multiple MVKResources mapped to the same region of a single MVKDeviceMemory.
Bill Hollings [Mon, 7 May 2018 17:31:34 +0000 (7 13:31 -0400)]
Handle multiple MVKResources mapped to the same region of a single MVKDeviceMemory.

4 years agoCache MTLCommandQueues for reuse to handle long delays in creating new VkDevices...
Bill Hollings [Mon, 7 May 2018 03:28:21 +0000 (6 23:28 -0400)]
Cache MTLCommandQueues for reuse to handle long delays in creating new VkDevices and VkQueues.

Move MVKQueueFamily to MVKPhysicalDevice. Cache MTLCommandQueues in MVKQueueFamily
and assign to MVKQueues as they are created.
Refactor performance tracking. Replace vkGetShaderCompilationPerformanceMVK()
with vkGetPerformanceStatisticsMVK() and associated structures.
Add MTLCommandQueue access performance tracker.
Update MoltenVK version to v1.0.6.

4 years agoMerge pull request #149 from billhollings/masterv1.0.5
Bill Hollings [Fri, 4 May 2018 18:27:00 +0000 (4 14:27 -0400)]
Merge pull request #149 from billhollings/master

Add features to support Vulkan CTS.

4 years agoFix merge conflicts and missing OSX files from class extension file refactoring.
Bill Hollings [Fri, 4 May 2018 17:02:07 +0000 (4 13:02 -0400)]
Fix merge conflicts and missing OSX files from class extension file refactoring.

4 years agoAdd features to support Vulkan CTS.
Bill Hollings [Fri, 4 May 2018 16:11:19 +0000 (4 12:11 -0400)]
Add features to support Vulkan CTS.

Dynamically create frag shaders for clearning attachments and images.
Dynamically create frag shaders for blitting scaled images.
MVKGraphicsPipeline don't create MTLRenderPipelineState if vertex function conversion fails.
MVKComputePipeline don't create MTLComputePipelineState if compute function conversion fails.
Handle SPIRV-Cross errors thrown during SPIR-V parsing in compiler construction.
Set undefined property limits to large, but not max, values to avoid casting issues in app.
Mark multiDrawIndirect features as available.
Update to latest SPIRV-Cross version.
Update to MoltenVK version 1.0.5.

4 years agoMerge pull request #148 from csmartdalton86/filter_linear2
Bill Hollings [Thu, 3 May 2018 02:20:35 +0000 (2 22:20 -0400)]
Merge pull request #148 from csmartdalton86/filter_linear2

Support VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT

4 years agoSupport VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
Chris Dalton [Tue, 1 May 2018 22:52:12 +0000 (1 16:52 -0600)]
Support VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT

Makes sure this flag gets set on pixel formats for which Metal supports
filtering.

Fixes #147

4 years agoSeparate "pixel" and "buffer" features in MVK_MAKE_FMT_STRUCT
Chris Dalton [Wed, 2 May 2018 18:26:30 +0000 (2 12:26 -0600)]
Separate "pixel" and "buffer" features in MVK_MAKE_FMT_STRUCT

This will allow us to vary these feature flags independently.

Helps to fix #147

4 years agoInitialize invalid MVKFormatDescs with MVK_FMT_NO_FEATS
Chris Dalton [Wed, 2 May 2018 18:01:55 +0000 (2 12:01 -0600)]
Initialize invalid MVKFormatDescs with MVK_FMT_NO_FEATS

As the feature flags get more complicated, it will be better to just
leave these blank rather than guess what the flags might be if/when
Metal supports their corresponding configs in the future.

Helps to fix #147

4 years agoMerge pull request #143 from hanton/master
Bill Hollings [Mon, 30 Apr 2018 21:06:04 +0000 (30 17:06 -0400)]
Merge pull request #143 from hanton/master

Separate categories from MVKOSExtensions

4 years agoSeparate categories from MVKOSExtensions.
Hanton Yang [Wed, 25 Apr 2018 14:09:50 +0000 (25 22:09 +0800)]
Separate categories from MVKOSExtensions.

MTLTextureDescriptor+MoltenVK
MTLSamplerDescriptor+MoltenVK
CAMetalLayer+MoltenVK

4 years agoMerge pull request #142 from billhollings/master
Bill Hollings [Mon, 23 Apr 2018 03:34:04 +0000 (22 23:34 -0400)]
Merge pull request #142 from billhollings/master

 Don't use CAMetalLayer displaySyncEnabled property if it is not available.

4 years agoMerge branch 'master' of https://github.com/KhronosGroup/MoltenVK
Bill Hollings [Mon, 23 Apr 2018 03:18:49 +0000 (22 23:18 -0400)]
Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK

4 years agoDon't use CAMetalLayer displaySyncEnabled property if it is not available.
Bill Hollings [Mon, 23 Apr 2018 03:16:52 +0000 (22 23:16 -0400)]
Don't use CAMetalLayer displaySyncEnabled property if it is not available.

Update version to 1.0.4.

4 years agoMerge pull request #140 from billhollings/master
Bill Hollings [Sat, 21 Apr 2018 14:00:54 +0000 (21 10:00 -0400)]
Merge pull request #140 from billhollings/master

Clearing multisampled textures + minor fix to depth clip mode handling.

4 years agoMerge pull request #138 from hanton/master
Bill Hollings [Sat, 21 Apr 2018 14:00:33 +0000 (21 10:00 -0400)]
Merge pull request #138 from hanton/master

Update python brew install command

4 years agoUpdate python brew install command
Hanton [Sat, 21 Apr 2018 03:06:40 +0000 (21 11:06 +0800)]
Update python brew install command

python3 is renamed to python in Homebrew formula. [Link](https://docs.brew.sh/Homebrew-and-Python)
>> Homebrew provides one formula for Python 3.x (python) and another for Python 2.7.x (python@2).

4 years agoMVKCmdClearAttachments & MVKCmdClearImage support multisampled attachments and images.
Bill Hollings [Thu, 19 Apr 2018 22:36:00 +0000 (19 18:36 -0400)]
MVKCmdClearAttachments & MVKCmdClearImage support multisampled attachments and images.

4 years agoSupport depth clip mode only from MTLFeatureSet_iOS_GPUFamily2_v4 onwards.
Bill Hollings [Thu, 19 Apr 2018 00:48:34 +0000 (18 20:48 -0400)]
Support depth clip mode only from MTLFeatureSet_iOS_GPUFamily2_v4 onwards.

4 years agoMerge pull request #137 from billhollings/masterv1.0.3
Bill Hollings [Thu, 19 Apr 2018 00:34:56 +0000 (18 20:34 -0400)]
Merge pull request #137 from billhollings/master

Update to latest LunarG/VulkanSamples and update MoltenVK version to …

4 years agoAdd support for VK_PRESENT_MODE_IMMEDIATE_KHR swapchain presentation mode.
Bill Hollings [Thu, 19 Apr 2018 00:16:45 +0000 (18 20:16 -0400)]
Add support for VK_PRESENT_MODE_IMMEDIATE_KHR swapchain presentation mode.

4 years agoUpdate to latest LunarG/VulkanSamples and update MoltenVK version to 1.0.3.
Bill Hollings [Wed, 18 Apr 2018 15:06:47 +0000 (18 11:06 -0400)]
Update to latest LunarG/VulkanSamples and update MoltenVK version to 1.0.3.

4 years agoMerge pull request #135 from karl-lunarg/travis-demos
Bill Hollings [Wed, 18 Apr 2018 00:16:54 +0000 (17 20:16 -0400)]
Merge pull request #135 from karl-lunarg/travis-demos

build: Build the demos in Travis-CI

4 years agoMerge pull request #134 from billhollings/master
Bill Hollings [Tue, 17 Apr 2018 20:43:07 +0000 (17 16:43 -0400)]
Merge pull request #134 from billhollings/master

Update to latest V-LVL, glslang & SPIRV-Tools.

4 years agobuild: Build the demos in Travis-CI
Karl Schultz [Tue, 17 Apr 2018 19:41:39 +0000 (17 13:41 -0600)]
build: Build the demos in Travis-CI

4 years agoUpdate to latest V-LVL, glslang & SPIRV-Tools.
Bill Hollings [Tue, 17 Apr 2018 17:41:08 +0000 (17 13:41 -0400)]
Update to latest V-LVL, glslang & SPIRV-Tools.

Fix link references when building against latest SPIRV-Tools.

4 years agoMerge pull request #133 from karl-lunarg/LVL-update
Bill Hollings [Tue, 17 Apr 2018 15:54:15 +0000 (17 11:54 -0400)]
Merge pull request #133 from karl-lunarg/LVL-update

Update V-LVL revision

4 years agoUpdate V-LVL revision
Karl Schultz [Mon, 16 Apr 2018 23:52:01 +0000 (16 17:52 -0600)]
Update V-LVL revision

- pick up 1.1.73 headers
- cope with interface change in cube demo

4 years agoMerge pull request #132 from billhollings/master
Bill Hollings [Mon, 16 Apr 2018 22:49:40 +0000 (16 18:49 -0400)]
Merge pull request #132 from billhollings/master

Update Demos to use latest LunarG VulkanSamples and Vulkan-LoaderAndValidationLayers code.

4 years agoUpdate Demos to use latest LunarG VulkanSamples and Vulkan-LoaderAndValidationLayers...
Bill Hollings [Mon, 16 Apr 2018 20:26:34 +0000 (16 16:26 -0400)]
Update Demos to use latest LunarG VulkanSamples and Vulkan-LoaderAndValidationLayers code.

Update to latest Vulkan-LoaderAndValidationLayers version.
Update to latest VulkanSamples version.
Update to latest SPIRV-Cross version.

4 years agoMerge pull request #131 from billhollings/master
Bill Hollings [Sun, 15 Apr 2018 14:07:27 +0000 (15 10:07 -0400)]
Merge pull request #131 from billhollings/master

Add workaround for apps that use one semaphore for all swapchain images.

4 years agoAdd workaround for apps that use one semaphore for all swapchain images.
Bill Hollings [Sun, 15 Apr 2018 00:12:33 +0000 (14 20:12 -0400)]
Add workaround for apps that use one semaphore for all swapchain images.

Support deferred secondary signaling of semaphore & fence acquired while image is free.
Add MVKBaseObject::destroy() function to support customization of object destruction.
Support deferred destruction of MVKSemaphore & MVKFence instances.

4 years agoMerge pull request #129 from billhollings/master
Bill Hollings [Tue, 10 Apr 2018 14:27:25 +0000 (10 10:27 -0400)]
Merge pull request #129 from billhollings/master

Clean up reference to SDK in dylib build script.

4 years agoClean up reference to SDK in dylib build script.
Bill Hollings [Mon, 9 Apr 2018 21:42:51 +0000 (9 17:42 -0400)]
Clean up reference to SDK in dylib build script.

4 years agoMerge pull request #127 from billhollings/master
Bill Hollings [Mon, 9 Apr 2018 20:42:53 +0000 (9 16:42 -0400)]
Merge pull request #127 from billhollings/master

Fix issues #64 & #97.

4 years agoMVKImage::getArrayLayers() reports only layer count and excludes depth.
Bill Hollings [Mon, 9 Apr 2018 20:22:43 +0000 (9 16:22 -0400)]
MVKImage::getArrayLayers() reports only layer count and excludes depth.

4 years agovkCmdCopyBufferToImage() & vkCmdCopyImageToBuffer() support a VkBuffer
Bill Hollings [Mon, 9 Apr 2018 18:26:02 +0000 (9 14:26 -0400)]
vkCmdCopyBufferToImage() & vkCmdCopyImageToBuffer() support a VkBuffer
that is bound to an offseted position in a VkDeviceMemory.

4 years agoMerge pull request #126 from VinDuv/use-ninja-for-deps
Bill Hollings [Mon, 9 Apr 2018 16:58:02 +0000 (9 12:58 -0400)]
Merge pull request #126 from VinDuv/use-ninja-for-deps

fetchDependencies: Use ninja if available to build dependencies

4 years agoMerge pull request #125 from karl-lunarg/fetch-copy
Bill Hollings [Mon, 9 Apr 2018 16:14:33 +0000 (9 12:14 -0400)]
Merge pull request #125 from karl-lunarg/fetch-copy

fetchDeps: Copy glslang instead of symlink

4 years agofetchDeps: Copy glslang instead of symlink
Karl Schultz [Sat, 7 Apr 2018 00:33:28 +0000 (6 18:33 -0600)]
fetchDeps: Copy glslang instead of symlink

Using a symlink to locate an externally-built glslang
doesn't work if the parent directory of the externally-built
glslang isn't the same as the parent here (External).

This fixes a portability warning when building from V-LVL
because the parent there was "external" vs "External".

Copy is still a win because it is better than fetching and
building.

4 years agoUse ninja if available to build dependencies
Vincent Duvert [Wed, 4 Apr 2018 18:48:21 +0000 (4 20:48 +0200)]
Use ninja if available to build dependencies

If the ninja build system is installed, ask CMake to generate Ninja build files and use
it for the build.

4 years agoMerge pull request #124 from billhollings/master
Bill Hollings [Fri, 6 Apr 2018 04:07:04 +0000 (6 00:07 -0400)]
Merge pull request #124 from billhollings/master

 Queue and device wait idle logic and update to latest version of VulkanSamples.

4 years agoQueue and device wait idle handled by internal fence instead of semaphore.
Bill Hollings [Fri, 6 Apr 2018 03:32:35 +0000 (5 23:32 -0400)]
Queue and device wait idle handled by internal fence instead of semaphore.

Merge handling of timed and infinite synchronizations.

4 years agoIn Cube demo app, replace call to demo_update_and_draw()
Bill Hollings [Thu, 5 Apr 2018 15:15:54 +0000 (5 11:15 -0400)]
In Cube demo app, replace call to demo_update_and_draw()
with call to demo_draw() to support new version of cube.c.

Update to latest version of VulkanSamples.

4 years agoMerge pull request #122 from billhollings/master
Bill Hollings [Wed, 4 Apr 2018 02:51:50 +0000 (3 22:51 -0400)]
Merge pull request #122 from billhollings/master

Round up row and layer byte counts when copying compressed images with sizes that are not integer multiples of block size.

4 years agoRound up row and layer byte counts when copying compressed
Bill Hollings [Tue, 3 Apr 2018 21:01:53 +0000 (3 17:01 -0400)]
Round up row and layer byte counts when copying compressed
images with sizes that are not integer multiples of block size.

4 years agoMerge pull request #121 from karl-lunarg/fetch-repo
Bill Hollings [Tue, 3 Apr 2018 13:34:57 +0000 (3 09:34 -0400)]
Merge pull request #121 from karl-lunarg/fetch-repo

fetchDeps: remove -sdk. New opts for LVL, glslang trees

4 years agofetchDeps: remove -sdk. New opts for LVL, glslang trees
Karl Schultz [Mon, 2 Apr 2018 21:02:00 +0000 (2 15:02 -0600)]
fetchDeps: remove -sdk. New opts for LVL, glslang trees

Changes to fetchDependencies script:
- remove -sdk option
- Add --v-lvl-root and --glslang-root options (with an arg)
that allow caller to pass in the root dir of these two repos
if the caller already has them.  The script then symlinks to
these instead of fetching and building.

Fixes: #79 #84

4 years agoMerge pull request #120 from hanton/masterv1.0.2
Bill Hollings [Mon, 2 Apr 2018 15:41:06 +0000 (2 11:41 -0400)]
Merge pull request #120 from hanton/master

Fix typo in Demos/README.md

4 years agoFix typo in Demos/README.md
Hanton [Sun, 1 Apr 2018 06:47:03 +0000 (1 14:47 +0800)]
Fix typo in Demos/README.md

4 years agoMerge pull request #119 from billhollings/master
Bill Hollings [Sat, 31 Mar 2018 02:36:21 +0000 (30 22:36 -0400)]
Merge pull request #119 from billhollings/master

Reorganize External dependencies.

4 years agoReorganize External dependencies.
Bill Hollings [Sat, 31 Mar 2018 02:16:27 +0000 (30 22:16 -0400)]
Reorganize External dependencies.

fetchDependencies script now in top directory to avoid Travis caching of
External directory. fetchDependencies is now smart about fetching vs cloning
and building only what is necessary.

4 years agoMerge pull request #118 from billhollings/master
Bill Hollings [Sat, 31 Mar 2018 00:13:52 +0000 (30 20:13 -0400)]
Merge pull request #118 from billhollings/master

 Add support for caching converted MSL shader code offline from pipeline cache

4 years agoTurn caching of Externals off in .travis.yml
Bill Hollings [Fri, 30 Mar 2018 23:37:17 +0000 (30 19:37 -0400)]
Turn caching of Externals off in .travis.yml
until a better CI dependency graph can be defined.

4 years agovkCmdClearAttachments() don't attempt to clear non-existing depth & stencil attachments.
Bill Hollings [Fri, 30 Mar 2018 22:28:26 +0000 (30 18:28 -0400)]
vkCmdClearAttachments() don't attempt to clear non-existing depth & stencil attachments.

4 years agoAlways clamp scissors to render area to avoid Metal validation error.
Bill Hollings [Fri, 30 Mar 2018 20:44:49 +0000 (30 16:44 -0400)]
Always clamp scissors to render area to avoid Metal validation error.

4 years agoPresent using command buffer by default.
Bill Hollings [Fri, 30 Mar 2018 20:15:22 +0000 (30 16:15 -0400)]
Present using command buffer by default.

Update version to 1.0.2.

4 years agoAdd instructions in README.md about building MoltenVK via the command line.
Bill Hollings [Fri, 30 Mar 2018 17:03:37 +0000 (30 13:03 -0400)]
Add instructions in README.md about building MoltenVK via the command line.

4 years agoAdd support for caching converted MSL shader code offline from pipeline cache
Bill Hollings [Fri, 30 Mar 2018 16:13:50 +0000 (30 12:13 -0400)]
Add support for caching converted MSL shader code offline from pipeline cache
via vkGetPipelineCacheData(), vkCreatePipelineCache() & vkMergePipelineCaches().

Add the cereal serialization framework as a dependency.
Update documentation. Update project settings to Xcode 9.3.

4 years agoShader libraries cached in MVKPipelineCache instead of MVKShaderModule.
Bill Hollings [Fri, 23 Mar 2018 03:52:12 +0000 (22 23:52 -0400)]
Shader libraries cached in MVKPipelineCache instead of MVKShaderModule.

4 years agoVkPhysicalDeviceProperties::pipelineCacheUUID value derived
Bill Hollings [Wed, 21 Mar 2018 14:17:41 +0000 (21 10:17 -0400)]
VkPhysicalDeviceProperties::pipelineCacheUUID value derived
from MoltenVK version and highest supported Metal feature set.

4 years agoMerge pull request #108 from billhollings/masterv1.0.1
Bill Hollings [Mon, 19 Mar 2018 16:25:09 +0000 (19 12:25 -0400)]
Merge pull request #108 from billhollings/master

SPIRV entry points, streamline integration with V-LVL & v1.0.1.

4 years agoAdd option for per-frame performance logging via un-commentable logging code.
Bill Hollings [Mon, 19 Mar 2018 15:44:12 +0000 (19 11:44 -0400)]
Add option for per-frame performance logging via un-commentable logging code.

4 years agoSupport SPIR-V containing multiple entry points.
Bill Hollings [Mon, 19 Mar 2018 14:58:46 +0000 (19 10:58 -0400)]
Support SPIR-V containing multiple entry points.

Include name and stage when matching shaders contexts for pipelines.
Avoid deprecated SPIRV-Cross members.
Update to latest SPIRV-Cross version.

4 years agoUpdate to latest version of Vulkan-LoaderAndValidationLayers, with glslang & SPIRV...
Bill Hollings [Sun, 18 Mar 2018 23:51:12 +0000 (18 19:51 -0400)]
Update to latest version of Vulkan-LoaderAndValidationLayers, with glslang & SPIRV-Tools.

4 years agoRemove folder symlinks and update MoltenVK version to 1.0.1.
Bill Hollings [Sun, 18 Mar 2018 22:41:19 +0000 (18 18:41 -0400)]
Remove folder symlinks and update MoltenVK version to 1.0.1.

Remove duplicate build of SPIRV-Tools in fetchDependencies.
Remove folder symlinks from Externals and MoltenVKShaderCompiler folders.
Update header search paths to reference External folders directly.
Update External/README.md documentation.
Update MoltenVK version to 1.0.1 to reflect new build instructions.
Minor update to performance logging.

4 years agoMerge pull request #106 from billhollings/master
Bill Hollings [Fri, 16 Mar 2018 02:59:50 +0000 (15 22:59 -0400)]
Merge pull request #106 from billhollings/master

Fix memory issues.