826 Commits

Author SHA1 Message Date
Bill Hollings
f10150a9fe Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK 2019-03-08 11:36:28 -05:00
Bill Hollings
309efa7068
Merge pull request #519 from alexey-lysiuk/deps_error_stop
Stop on the first error in fetch dependencies script
2019-03-08 11:18:54 -05:00
alexey.lysiuk
d015381fa3 Stop on the first error in fetch dependencies script 2019-03-08 10:58:06 +02:00
Bill Hollings
ae0db194c5 Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK 2019-03-06 16:28:38 -05:00
Bill Hollings
2a2072294b MoltenVKShaderConverterTool support cs & csh for compute shader file extensions. 2019-03-06 16:27:52 -05:00
Bill Hollings
40097d79b5
Merge pull request #518 from billhollings/master
Increase shader float constant accuracy beyond 6 digits of precision.
2019-03-06 09:53:01 -05:00
Bill Hollings
3b1e53002e Increase shader float constant accuracy beyond 6 digits of precision. 2019-03-06 08:58:27 -05:00
Bill Hollings
e4f79af39c
Merge pull request #515 from billhollings/master
Update What's New document.
2019-02-27 19:39:20 -05:00
Bill Hollings
d8ee4873b6 Update What's New document. 2019-02-27 18:04:42 -05:00
Bill Hollings
1fbc1333f8 Update What's New document.
Fix issue loading from Vulkan-Portability_repo_revision in fetchDependencies.
2019-02-27 17:47:15 -05:00
Bill Hollings
7bdd12ea4f
Merge pull request #513 from billhollings/master
Update to latest dependency libraries to support SDK 1.1.101.
2019-02-27 14:34:24 -05:00
Bill Hollings
fd8aa3c412 Update to latest dependency libraries to support SDK 1.1.101.
Remove SPRIV-Cross source files erroneously compiling into libglslang.a.
2019-02-27 11:56:31 -05:00
Bill Hollings
e54e21dbca
Merge pull request #512 from billhollings/master
Set MSL version for shader compiling from Metal feature set.
2019-02-25 22:14:05 -05:00
Bill Hollings
0984b11bc0 Set MSL version for shader compiling from Metal feature set.
Add MVKPhysicalDeviceMetalFeatures::mslVersionEnum and set from Metal feature sets.
Derive MVKPhysicalDeviceMetalFeatures:: mslVersion from mslVersionEnum.
MVKDevice::getMTLCompileOptions() sets MTLCompileOptions::languageVersion
from MVKPhysicalDeviceMetalFeatures::mslVersionEnum.
MVKAssert logs error even when assertions disabled.
Update VK_MVK_MOLTENVK_SPEC_VERSION to 18.
2019-02-25 18:11:47 -05:00
Bill Hollings
fbb906f163
Merge pull request #511 from billhollings/master
Building external dependency libraries cleans MoltenVK.
2019-02-24 16:55:32 -05:00
Bill Hollings
64648d19c3 Move MoltenVK clean on dependency build from fetchDependencies.sh to package_ext_libs.sh. 2019-02-24 16:21:20 -05:00
Bill Hollings
ed702e0b29 fetchDependencies cleans MoltenVK build to ensure using latest dependency libs.
Makefile abstract names of Xcode schemes for maintainability.
MoltenVKShaderConverter Frameworks group relative to External/build.
2019-02-24 15:21:30 -05:00
Bill Hollings
5e0f624b34
Merge pull request #505 from cdavis5e/no-storage-image-ms
Disable the shaderStageImageMultisample feature.
2019-02-19 02:12:33 -05:00
Bill Hollings
04ce4ad3a9
Merge pull request #504 from billhollings/master
Add static and dynamic libraries to MoltenVKShaderConverter project.
2019-02-19 02:11:34 -05:00
Chip Davis
b98b47501d Disable the shaderStageImageMultisample feature.
While Metal *does* allow read access to multisampled textures, it does
*not* allow write access. In Vulkan, storage images are always writable.
Therefore, we can't fully support this feature.
2019-02-18 21:44:34 -06:00
Bill Hollings
6f2dc4bdcb Add static and dynamic libraries to MoltenVKShaderConverter project.
Refactor build scripts.
Update paths to MoltenVKGLSLToSPIRVConverter framework in demos.
Fix rare build race condition on MoltenVKShaderConverter link to MoltenVK.
2019-02-18 22:19:37 +00:00
Bill Hollings
136c7ea855
Merge pull request #498 from billhollings/master
Clarify Xcode version requirements in documentation.
2019-02-15 08:47:05 -05:00
Bill Hollings
c57e29bc5c Clarify Xcode version requirements in documentation. 2019-02-13 14:34:55 -05:00
Bill Hollings
b2319e5fd4
Merge pull request #495 from cdavis5e/shader-int8
Turn on shaderInt8.
2019-02-11 14:28:06 -05:00
Chip Davis
e81bd4b25d Turn on shaderInt8.
Now that SPIRV-Cross is updated to support it, we can safely advertise
this.

Fixes #372.
2019-02-11 12:41:10 -06:00
Bill Hollings
5d60ba9043
Merge pull request #494 from billhollings/master
README.md enhancements. Update to latest SPIRV-Cross. Fix registryID crash.
2019-02-11 12:45:23 -05:00
Bill Hollings
e0b75dbc2c Fix crash from use of MTLDevice registryID on early OS versions.
Add mvkGetRegistryID() function to check OS support for registry ID.
Rename build setting MVK_FORCE_LOW_POWER_GPU to MVK_CONFIG_FORCE_LOW_POWER_GPU
and make it an env var / build setting combo.
Rename env var MVK_LOG_LEVEL to MVK_CONFIG_LOG_LEVEL.
Rename MVKLogging.mm to MVKLogging.cpp.
2019-02-11 10:49:58 -05:00
Bill Hollings
d83d934150 Update to latest version of SPIRV-Cross.
Track version of spvAux buffer struct in SPRIV-Cross and
fail build if different than version expected by MoltenVK.
Update MoltenVK version to 1.0.33.
Update What's New document.
2019-02-08 21:31:14 -05:00
Bill Hollings
677f2cb9be Modify README.md to direct developers to Vulkan SDK. 2019-02-08 19:36:52 -05:00
Bill Hollings
94404ae0da
Merge pull request #489 from cdavis5e/quiesce-swizzle-log
Only warn on non-default swizzles when fullImageViewSwizzle is off.
2019-02-07 16:35:34 -05:00
Chip Davis
1652f6d719 Don't warn at all on pipelines with full swizzling support.
This could happen, for example, if image views with a non-default
swizzle are used with shaders that don't sample those images. In this
case, MoltenVK will warn, because the pipeline said not to set up the
aux buffer.
2019-02-06 13:17:50 -06:00
Chip Davis
f1c5c79365 Only warn on non-default swizzles when fullImageViewSwizzle is off.
Otherwise, the log will be spammed with hundreds of useless messages
that the `IDENTITY` swizzle is not supported.
2019-02-05 13:56:45 -06:00
Bill Hollings
24c7be84dc
Merge pull request #488 from billhollings/master
Add GPU device ID for iOS A12 SoC.
2019-02-04 11:42:52 -05:00
Bill Hollings
8e02a5d2f3 Add GPU device ID for iOS A12 SoC. 2019-02-04 10:15:03 -05:00
Bill Hollings
31069218db
Merge pull request #485 from cdavis5e/registry-id
Use the device's registryID property to locate it in IOKit.
2019-02-04 10:04:04 -05:00
Chip Davis
8307a66f80 Use the device's registryID property to locate it in IOKit.
This should be better behaved with systems that have more than one GPU
and aren't e.g. MacBooks with graphics switching.
2019-01-31 19:34:01 -06:00
Bill Hollings
e4c196c3b6
Merge pull request #484 from cdavis5e/memory-budget
Support the VK_EXT_memory_budget extension.
2019-01-31 16:12:07 -06:00
Chip Davis
3df6d2d00f Support the VK_EXT_memory_budget extension.
This requires macOS 10.13 or iOS 11, for the `currentAllocatedSize`
property of `MTLDevice`. Ideally, we'd check for that method instead of
keying on the version.
2019-01-31 12:10:57 -06:00
Bill Hollings
97ab7dfa92
Merge pull request #482 from billhollings/master
Allow logging level to be controlled via runtime environment variable.
2019-01-30 10:20:18 -06:00
Bill Hollings
216e86de19 Allow logging level to be controlled via runtime environment variable. 2019-01-29 21:10:31 -05:00
Bill Hollings
66e383f4b2
Merge pull request #481 from billhollings/master
Update to latest SPIRV-Cross version.
2019-01-28 19:34:09 -06:00
Bill Hollings
f591fed43e Update to latest SPIRV-Cross version. 2019-01-28 19:58:32 -05:00
Bill Hollings
eba0908ef3
Merge pull request #480 from billhollings/master
vkSetMTLTextureMVK() function retains texture object.
2019-01-28 18:56:59 -06:00
Bill Hollings
57864944b5 Merge branch 'master' of https://github.com/billhollings/MoltenVK 2019-01-28 17:16:20 -05:00
Bill Hollings
18a31fb3dd vkSetMTLTextureMVK() function retains texture object. 2019-01-28 17:09:57 -05:00
Bill Hollings
e703705a9a
Merge pull request #479 from cdavis5e/yet-more-features
MVKDevice: Correct some more features and limits.
2019-01-28 16:06:18 -06:00
Bill Hollings
07be6c1d81 vkSetMTLTextureMVK() function retains texture object. 2019-01-28 16:18:55 -05:00
Bill Hollings
21a349a364
Merge pull request #478 from cdavis5e/log-to-stderr
Log to stderr instead of stdout.
2019-01-28 14:32:11 -06:00
Chip Davis
34c7f6c09c MVKDevice: Correct some more features and limits.
Actually turn on the `layeredRendering` feature for A12 on iOS. This
should actually allow clients to take advantage of that on A12 devices.

Turn on the `variableMultisampleRate` and `inheritedQueries` features.
`variableMultisampleRate` means that pipelines with no attachments may
have different sample counts. Since no-attachment pipelines are
emulated, we don't have that limitation anyway. If and when Metal gains
real support for no-attachment pipelines, we may have to revisit this.

`inheritedQueries` means that queries may apply to secondary command
buffers as well as primary commands. Secondary command buffers are also
emulated, and should by virtue of being inlined into the primary's
`MTLCommandBuffer` inherit any query-related state.

Use the `maxBufferLength` property of `MTLDevice` when available to get
the true maximum buffer size. (This is one of the "secret" properties in
earlier versions of Metal. It finally became a public, supported API in
Metal 2.1.)

Limit the number of dual-source blending color attachments to 1. This is
a documented limitation of Metal 1.2. I don't know if Metal 2 or 2.1
have lifted this restriction.

Indicate that this implementation uses the standard sample locations.
For Metal, these are actually documented in "Using Programmable Sample
Positions," which discusses setting custom sample locations. The default
sample locations given there are all consistent with the standard
locations documented in the Vulkan spec.
2019-01-28 14:12:28 -06:00
Bill Hollings
43d0a5a308
Merge pull request #477 from billhollings/master
Advertise VkPhysicalDevicePortabilitySubsetFeaturesEXTX::standardImageViews
2019-01-28 14:09:34 -06:00