1089 Commits

Author SHA1 Message Date
Bill Hollings
126e5ff9e1 Add instructions in README.md about building MoltenVK via the command line. 2018-03-30 13:03:37 -04:00
Bill Hollings
20c98e5e46 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.
2018-03-30 12:13:50 -04:00
Bill Hollings
c45b47183e Shader libraries cached in MVKPipelineCache instead of MVKShaderModule. 2018-03-22 23:52:12 -04:00
Bill Hollings
fd7521dc7b VkPhysicalDeviceProperties::pipelineCacheUUID value derived
from MoltenVK version and highest supported Metal feature set.
2018-03-21 10:17:41 -04:00
Bill Hollings
18fa813fc4
Merge pull request #108 from billhollings/master
SPIRV entry points, streamline integration with V-LVL & v1.0.1.
2018-03-19 12:25:09 -04:00
Bill Hollings
8fbbaba11f Add option for per-frame performance logging via un-commentable logging code. 2018-03-19 11:44:12 -04:00
Bill Hollings
afebc3fe08 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.
2018-03-19 10:58:46 -04:00
Bill Hollings
808029bbc7 Update to latest version of Vulkan-LoaderAndValidationLayers, with glslang & SPIRV-Tools. 2018-03-18 19:51:12 -04:00
Bill Hollings
c77ad3a383 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.
2018-03-18 18:41:19 -04:00
Bill Hollings
2a6a186337
Merge pull request #106 from billhollings/master
Fix memory issues.
2018-03-15 22:59:50 -04:00
Bill Hollings
a911b63247 Fix memory issues.
Wrap each queue submission in a dedicated @autoreleasepool.
Fix memory leak during creation of global format mappings.
2018-03-15 18:46:56 -04:00
Bill Hollings
5cc7652a62
Merge pull request #104 from billhollings/master
Derive vkCmdCopyBuffer() alignment requirement at runtime.
2018-03-14 15:31:44 -04:00
Bill Hollings
9ba039c6d6 Derive vkCmdCopyBuffer() alignment requirement at runtime.
Add MVKPhysicalDeviceMetalFeatures::mtlCopyBufferAlignment.
Set MTLComputeCommandEncoder label based on Vulkan command type.
Add MVKCommandUse::kMVKCommandUseDispatch.
2018-03-14 10:13:19 -04:00
Bill Hollings
75dfe75db8 Add reference to MoltenVK binaries via LunarG SDK to README.md. 2018-03-13 16:09:26 -04:00
Bill Hollings
7df5a739d5
Merge pull request #93 from mikes-lunarg/mikes_getinstanceprocaddr_null
Fix vkGetInstanceProcAddr to work with 1.1 loader
2018-03-13 14:28:40 -04:00
Bill Hollings
ec4072115f
Merge pull request #99 from mellinoe/fix-vkCmdCopyBuffer
Fix vkCmdCopyBuffer when copying unaligned regions.
2018-03-13 14:20:19 -04:00
Bill Hollings
b33bc9c2b1
Merge pull request #92 from ndsol/master
Wrap try/catch blocks for if exceptions disabled
2018-03-13 13:41:22 -04:00
Bill Hollings
595bf211af
Merge pull request #98 from billhollings/master
Align versioning of external libraries with those used by LunarG SDK.
2018-03-13 12:39:56 -04:00
Bill Hollings
010b1aacd3 Update .travis.yml to use new fetchDependencies script. 2018-03-13 10:52:14 -04:00
Eric Mellino
349ba44ac4 Fix vkCmdCopyBuffer when copying unaligned regions.
* Vulkan allows any valid copy regions to be used in this function.
  However, Metal's blit command encoder only allows copy offsets and
  sizes which are multiples of 4 bytes.
* Before this change, attempting to copy such a region would cause
  Metal validation errors to trigger.
* This adds logic to detect such copy regions and uses a special compute
  shader to perform a byte-by-byte copy from the source buffer to
  the destination buffer with the appropriate offsets.
* This new code path is only needed on macOS, because iOS does not share
  the same copy region restrictions.
2018-03-12 22:50:18 -07:00
Bill Hollings
9e9aae4687 Remove executable permissions from non-executable files. 2018-03-12 16:59:34 -04:00
Bill Hollings
4c3883b028 Fix broken link to Demos/README.md in Demos.xcworkspace. 2018-03-12 15:28:03 -04:00
Bill Hollings
00fda690ca Align versioning of external libraries with those used by LunarG SDK.
Load external library versions using script instead of Git submodules.
SPIRV-Cross, Vulkan-LoaderAndValidationLayers & VulkanSamples versions recorded in files.
glslang version determined by Vulkan-LoaderAndValidationLayers.
SPIRV-Tools & SPIRV-Headers versions loaded by glslang.
When MoltenVK is built as part of the LunarG SDK, use external libraries
sourced from parent Vulkan-LoaderAndValidationLayers.
Use Vulkan headers from Vulkan-LoaderAndValidationLayers.
No longer generate Vulkan specification.
Update documentation.
2018-03-12 10:02:13 -04:00
Mike Schuchardt
dc0679f612 Fix vkGetInstanceProcAddr to work with 1.1 loader
In order to determine the instance version, the 1.1 loader takes
advantage of the fact that a 1.0 ICD will return NULL for
vkGetInstanceProcAddr(NULL, "vkEnumerateInstanceVersion")
2018-03-09 14:26:30 -07:00
davidhubbard
dc03b41400 Wrap try/catch blocks for if exceptions disabled
SPIRV-Cross supports the macro SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
for builds with exceptions disabled. MoltenVK can support those
builds with just a couple #if statements. When exceptions are
disabled, the program will just abort, not throw.
2018-03-09 11:00:17 -06:00
Bill Hollings
b048719467
Merge pull request #83 from billhollings/master
Automate demo deployment and update docs.
2018-03-07 09:03:27 -05:00
Bill Hollings
85e9a2e25c Add Compliance and Contribution sections to README.md. 2018-03-06 16:51:05 -05:00
Bill Hollings
f0ba3dea82 Cube demo generate SPIR-V as part of demo project build. 2018-03-06 15:06:10 -05:00
Bill Hollings
baca9ca7cb Update ThirdPartyConfig.md document. 2018-03-06 14:12:19 -05:00
Bill Hollings
d31aaad3bf Automatically install demo apps.
Add LunarG demo app repository as a submodule.
Add LunarG demo config to makeAll script.
Rename Demos/README_MoltenVK_Demos.md to Demos/README.md.
Do not copy Demos folder to MoltenVK runtime distribution.
Do not copy ThirdPartyConfig.md to MoltenVK runtime distribution.
Add cmake as a dependency in README.md.
2018-03-06 14:07:06 -05:00
Bill Hollings
3f9e8bc2ba
Merge pull request #77 from billhollings/master
Fixes for issues #73 & #76.
2018-03-01 22:11:17 -05:00
Bill Hollings
754cc10730 Allow MoltenVK to be installed and built without asciidoctor. 2018-03-01 21:39:39 -05:00
Bill Hollings
26967d4fa1 Update compile warnings originating from use of __printflike. 2018-03-01 20:07:37 -05:00
Bill Hollings
91082f07fb Add build and runtime OS and device requirements to documentation. 2018-03-01 19:42:15 -05:00
Bill Hollings
2e45073318
Merge pull request #63 from ePirat/ci
Add CI support using Travis CI
2018-03-01 15:36:46 -05:00
Marvin Scholz
f22177d6f2 Add Travis CI badge to Readme
Fix #75
2018-03-01 20:57:51 +01:00
Marvin Scholz
f53906111f Add CI support using Travis CI 2018-03-01 20:55:47 +01:00
Bill Hollings
ac683ae7a9
Merge pull request #74 from Tele42/patch-1
Update ThirdPartyConfig.md markdown link
2018-03-01 14:36:53 -05:00
Bill Hollings
d1a5128448
Merge pull request #60 from MaddTheSane/printflike
Add printf-like macros to MVKLogImpl and mvkNotifyErrorWithText.
2018-03-01 14:32:30 -05:00
Bill Hollings
bfd704e7e5
Merge pull request #59 from tobine/patch-1
Update User Guide Formatting
2018-03-01 14:05:11 -05:00
Bill Hollings
b298c694bc
Merge branch 'master' into patch-1 2018-03-01 14:05:02 -05:00
Bill Hollings
935a7e31b7
Merge pull request #58 from ePirat/patch-1
Minor markdown syntax fixes in docs
2018-03-01 14:03:22 -05:00
Bill Hollings
3f86f5ff6d
Merge branch 'master' into patch-1 2018-03-01 14:01:49 -05:00
Bill Hollings
d4c40ce7f5
Merge pull request #57 from kusma/patch-1
Fix up broken markdown
2018-03-01 13:52:58 -05:00
Tele42
d5df9db82c
Update ThirdPartyConfig.md markdown link
Closes #71.
2018-03-01 09:10:24 -05:00
C.W. Betts
0c91b1e613 Add printf-like macros to MVKLogImpl and mvkNotifyErrorWithText.
This will make the compiler point out improper formatting of variadic functions.
2018-02-26 15:28:28 -07:00
Tobin Ehlis
0f9cf54ba7
Update User Guide Formatting
Add space between "###" and following text so headings show up correctly.
Remove one instance of "###" where it was used along with underline.
2018-02-26 10:37:46 -07:00
ePirat
265e2da78e
Remove extranous hr line 2018-02-26 17:35:19 +01:00
ePirat
2984c78bac
Fix markdown headings syntax 2018-02-26 17:30:47 +01:00
Erik Faye-Lund
2aa7eca5a3
Fix up broken markdown
GitHub seems to not like markdown without spaces after the `#`-characters.

The [current CommonMark spec](http://spec.commonmark.org/0.27/#atx-headings) says "The opening sequence of # characters must be followed by a space or by the end of line."

This makes these headings render like normal headings on GitHub.
2018-02-26 15:52:22 +01:00