2940 Commits

Author SHA1 Message Date
Bill Hollings
13535d0f35
Merge pull request #1783 from cdavis5e/discarded-frag-checks
MVKPipeline: Force extra checks for stores after fragment discard.
2022-11-23 13:32:52 -05:00
Chip Davis
03ce25da20 MVKPipeline: Force extra checks for stores after fragment discard.
Update SPIRV-Cross to pull in multiple CTS fixes. Handle the new
`check_discarded_frag_stores` and `manual_helper_invocation_updates`
options.
2022-11-21 11:04:29 -08:00
Bill Hollings
417d27da72
Merge pull request #1780 from billhollings/fix-ycbcr-format-support
Fix mistaken YCBCR format support indication.
2022-11-19 09:13:55 -05:00
Bill Hollings
bd497fe713 Fix mistaken YCBCR format support indication.
MVKVkFormatDesc::chromaSubsamplingPlaneCount must be > 1 to be considered supported.
2022-11-18 23:35:46 -05:00
Bill Hollings
0dd329398a
Merge pull request #1769 from MennoVink/#1764_emulated_semaphores_freeze_fix
Only wait on emulated semaphores once...
2022-11-17 18:13:27 -05:00
Bill Hollings
0fe5ffecc5
Merge pull request #1773 from billhollings/misc-small-fixes
Misc small fixes - Document Xcode 13 linkage, and Intel Iris Plus Graphics driver workaround
2022-11-16 15:12:29 -05:00
Bill Hollings
b2acfb61cb Upgrade GitHub CI to use Xcode 14.1 on macOS 12. 2022-11-16 13:58:52 -05:00
Bill Hollings
7c0143c37b Support Xcode 14.1 build settings. 2022-11-15 20:49:17 -05:00
Bill Hollings
4d003bf256 Document new linkage model used by Xcode 14 and later, and how to link
MoltenVK to an app or game using Xcode 13 or earlier.
2022-11-15 18:48:36 -05:00
Bill Hollings
6d7f4330c7 Work around MTLCounterSet crash on additional Intel Iris Plus Graphics devices.
Add 0x8a5a and 0x8a5c to list of Intel Iris Plus Graphics
device IDs requiring workaround.
2022-11-15 17:44:55 -05:00
Bill Hollings
c8f581088f
Merge pull request #1767 from cdavis5e/optimal-tiling-atomics
MVKImage: Always use a texel buffer for atomic storage images.
2022-11-13 17:01:53 -05:00
Chip Davis
b871d8f603 MVKDevice: Fix backwards attribution of storage/uniform texel buffer alignments.
A drive-by fix for something I noticed while investigating a problem
with linear-for-atomics textures.
2022-11-12 14:27:39 -08:00
Chip Davis
94b1ea3c95 MVKImage: Always use a texel buffer for atomic storage images.
Do this even if `OPTIMAL` tiling were requested. Vulkan mandates support
for image atomics on `OPTIMAL`-tiled `R32_UINT` and `R32_SINT` images.
In a way, this is "optimal"; image atomics won't work without this.

Advertise support for atomics on `OPTIMAL` tiled images now.

Fixes at least two CTS tests under
`dEQP-VK.compute.basic.image_atomic_op_*`.
2022-11-12 14:27:32 -08:00
Bill Hollings
9cdf4ed881
Merge pull request #1770 from spnda/fix_cmd_blit
Fix: Invalid blit offsets
2022-11-11 13:47:16 -05:00
sean
0b62f647d5
Fix: Invalid blit offsets 2022-11-11 18:33:54 +01:00
Menno Vink
05c757c8b7 Only wait on emulated semaphores once to prevent freezing when using prefilled command buffers. 2022-11-11 14:18:32 +01:00
Bill Hollings
5ebeac741d
Merge pull request #1755 from cdavis5e/raw-buffer-tese-input
MVKPipeline: Stop using vertex-style input for tessellation evaluatio…
2022-11-10 20:46:24 -05:00
Chip Davis
2cb33c09b6 MVKPipeline: Stop using vertex-style input for tessellation evaluation shaders.
This has caused us nothing but trouble. The code to build up the vertex
descriptor is fragile; we can rip that out now.

Also, make sure to positively identify per-patch blocks as per-patch.
For those, the individual members have the `Patch` decoration.

Update SPIRV-Cross to pull in the changes needed for this.

Fixes 66 tests in the CTS.
2022-11-10 14:12:02 -08:00
Bill Hollings
b283868aea
Merge pull request #1763 from spnda/bda_requirements
Fix: Proper requirements for enabling BDA extensions
2022-11-09 15:28:02 -05:00
sean
237e538bd0
Fix: Proper requirements for enabling BDA extensions 2022-11-09 20:41:42 +01:00
Bill Hollings
7740554a9c
Merge pull request #1759 from spnda/KHR_copy_commands2
Add: KHR_copy_commands2
2022-11-09 13:49:14 -05:00
sean
8a7979d3d0
Cleanup MVKCmdBufferImageCopy::setContent 2022-11-09 16:33:08 +01:00
sean
331d8e1d0b
Deduplicate code 2022-11-09 16:11:02 +01:00
sean
270a0198e0
Add: KHR_copy_commands2 2022-11-06 00:58:19 +01:00
Bill Hollings
9fa413d54c
Merge pull request #1754 from billhollings/fix-desc-update-bounds-crash
Fix crash on descriptor update with out-of-bounds descriptor count data.
2022-10-31 17:07:57 -04:00
Bill Hollings
0287a3242c Fix crash on descriptor update with out-of-bounds descriptor count data.
Update MoltenVK version to 1.2.1.
2022-10-31 14:41:08 -04:00
Bill Hollings
67d59ae3ee
Merge pull request #1747 from KhronosGroup/rw_lunarg_fixjson
fix for wrong version number in icd json
2022-10-25 12:46:23 -04:00
Richard S. Wright Jr
9987bca0d2 fix for wrong version number in icd json 2022-10-20 15:29:24 -04:00
Bill Hollings
260bad42e1
Merge pull request #1744 from billhollings/fix-prefilling-mem-leaks
Fix memory leaks when configured for prefilling Metal command buffers.
2022-10-18 12:51:17 -04:00
Bill Hollings
608342b528 Update documentation for prefilling Metal command buffers options. 2022-10-18 12:41:13 -04:00
Bill Hollings
00b2184c23 Fix crash and memory leaks when configured for prefilling Metal command buffers.
- Redefine enumeration values of MVKPrefillMetalCommandBuffersStyle.
- Add option to defer encoding prefilled MTLCommandBuffer to queue submission.
- Remove option to create an autorelease pool in the MVKCommandEncoder
  to span immediate command encodings, because it causes crashes when
  multiple command buffers were overlapping prefilling on the same thread.
- Replace MTLCommandEncoder retain/release macros with template member functions.
- Rename MVKCommandPool::newMTLCommandBuffer() to getMTLCommandBuffer()
  and do not retain the returned MTLCommandBuffer (unrelated).
- Revert MoltenVK logging to use stderr instead of stdout (unrelated).
- Merge branch from master.
2022-10-18 03:28:12 -04:00
Bill Hollings
7662501280
Merge pull request #1745 from billhollings/sdk-1.3.231
Update dependency libraries to match Vulkan SDK 1.3.231.
2022-10-17 16:59:19 -04:00
Bill Hollings
e061e5ebf8 Update dependency libraries to match Vulkan SDK 1.3.231. 2022-10-17 16:05:43 -04:00
Bill Hollings
b751c07eb3 Fix memory leaks when configured for prefilling Metal command buffers.
- Add MVKPrefillMetalCommandBuffersStyle enumeration to enable prefilling,
  and configure memory recovery options.
- Redefine MVKConfiguration::prefillMetalCommandBuffers as a value from
  MVKPrefillMetalCommandBuffersStyle instead of a simple boolean. Set the
  values of MVKPrefillMetalCommandBuffersStyle and the default value of
  MVKConfiguration::prefillMetalCommandBuffers to be compatible with
  legacy use of this setting as a simple enable/disable boolean value.
- MVKCommandEncoder track prefill style, and support option to maintain
  a Metal autorelease pool that is created on vkBeginCommandBuffer()
  and drained on vkEndCommandBuffer(), when prefiling a command buffer
  from a single thread, and an option to wrap each command addition in
  a separate @autoreleasepool{} scope to create and drain an autorelease
  pool at every command addition to the Vulkan command buffer, when
  prefilling a single command buffer from multiple threads.
- MVKCommandEncoder retain Metal encoders when prefilling, because
  prefilling may span multiple autorelease pools.
- MVKCommandEncoder clean up memory leak of MTLBlitPassDescriptor
  during prefilling.
- MVKCommandEncoder rearrange declarations of MVKCommandUse member
  variables to tighten up class memory use (unrelated).
- MVKCommandBuffer remove unnecessary inline declarations (unrelated).
- Change MoltenVK logging to use stdout instead of stderr (unrelated).
2022-10-16 17:03:55 -04:00
Bill Hollings
707da6e043
Merge pull request #1738 from billhollings/fix-vulkan-sem4-fallback
Vulkan semaphore fallback to using single queue if `MTLEvents` unusable.
2022-10-10 09:05:50 -05:00
Bill Hollings
ceb298965e Vulkan semaphore fallback to using single queue if MTLEvents unusable.
- If MTLEvents are unusable, fallback to single queue.
- Adjust values of MVKVkSemaphoreSupportStyle enumeration.
- For legacy compatibility, if legacy semaphoreUseMTLEvent and
  semaphoreUseMTLFence are both disabled, use CPU callback emulation.
- Update and expand related documentation in vk_mvk_moltenvk.h.
2022-10-09 21:17:18 -04:00
Bill Hollings
45e339a283
Merge pull request #1737 from billhollings/fix-hide-vulkan-symbols
Fix support for `MVK_HIDE_VULKAN_SYMBOLS` build setting.
2022-10-09 16:37:15 -05:00
Bill Hollings
0cc6e1d3a4 Fix support for MVK_HIDE_VULKAN_SYMBOLS build setting.
- Remove separate extension entry points for 1.3 promoted
  vkCmdBeginRenderingKHR() and vkCmdEndRenderingKHR() functions,
  which caused build breaks when MVK_HIDE_VULKAN_SYMBOLS=1.
- For consistency, hide vkGetMoltenVKConfigurationMVK(),
  vkSetMoltenVKConfigurationMVK(), and vkGetVersionStringsMVK()
  when MVK_HIDE_VULKAN_SYMBOLS=1, which was an oversight in original
  implementation of hiding Vulkan functions.
- Update build `README.md` for generic command line build settings
  and MVK_HIDE_VULKAN_SYMBOLS in particular.
2022-10-09 16:32:26 -04:00
Bill Hollings
5f52f38f2e
Merge pull request #1730 from rasky/fix_macros
Makefile: fix environment variable definitions
2022-10-09 15:16:19 -05:00
Giovanni Bajo
d32c60a901
Makefile: fix environment variable definitions 2022-10-04 22:58:55 +02:00
Bill Hollings
c2e9f1d876
Merge pull request #1726 from billhollings/vulkan-1_2
Add support for Vulkan 1.2.
2022-09-28 11:01:52 -04:00
sean
e8b32dec92 Final 1.2 fixes 2022-09-26 12:38:03 -04:00
Bill Hollings
ac39eb24e1 Add support for Vulkan 1.2.
- Set MVK_VULKAN_API_VERSION from VK_API_VERSION_1_2.
- Update MoltenVK version to 1.2.0.
- Remove several previously overlooked extension suffixes
  in use of promoted Vulkan struct and enum values.
- Update documentation.
2022-09-26 11:25:49 -04:00
Bill Hollings
77b3cc03f4
Merge pull request #1722 from spnda/provide_1_3_stubs
Add Vulkan 1.3 command stubs
2022-09-24 18:31:14 -04:00
sean
6eaa0351fa
Add Vulkan 1.3 command stubs 2022-09-24 23:54:41 +02:00
Bill Hollings
daea6b3e6a
Merge pull request #1724 from billhollings/VK_KHR_spirv_1_4
Advertise support for extension VK_KHR_spirv_1_4.
2022-09-24 12:53:54 -04:00
Bill Hollings
293e005ac5 GitHub CI use macos-11 to build using Xcode 11.7.
GitHub CI has deprecated and removed support for the macos-10.15 runner image.
2022-09-23 13:22:53 -04:00
Bill Hollings
31a77834f1 Advertise support for extension VK_KHR_spirv_1_4.
- Advertise support for extension VK_KHR_spirv_1_4.
- MoltenVKShaderConverter automatically map bindings when converting GLSL.
- MoltenVKShaderConverter improvements to diagnostic logging.
- Update Whats_New.md document.
2022-09-23 11:43:32 -04:00
Bill Hollings
73a3faa13b
Merge pull request #1723 from rasky/make_vars
Makefile: forward to xcode any variable declared on the command line
2022-09-23 11:13:09 -04:00
Giovanni Bajo
b0e433ad11
Makefile: forward to xcode any variable declared on the command line
Makefile currently special-case MVK_HIDE_VULKAN_SYMBOLS as the only
variable that can be customised on the command line. There are many
others that are useful though, such as MVK_LOG_*. This commit
makes the Makefile more generic and allows to forward to xcode whatever
variable was declared on the command line.
2022-09-23 11:31:14 +02:00