143 Commits

Author SHA1 Message Date
Bill Hollings
979a7f801f 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.
2018-03-30 22:16:27 -04:00
Bill Hollings
d974ce46b8 Turn caching of Externals off in .travis.yml
until a better CI dependency graph can be defined.
2018-03-30 19:37:17 -04:00
Bill Hollings
3c6b3ae210 vkCmdClearAttachments() don't attempt to clear non-existing depth & stencil attachments. 2018-03-30 18:28:26 -04:00
Bill Hollings
e4d00447f9 Always clamp scissors to render area to avoid Metal validation error. 2018-03-30 16:44:49 -04:00
Bill Hollings
04849f9f63 Present using command buffer by default.
Update version to 1.0.2.
2018-03-30 16:15:22 -04:00
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
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