Merge branch 'KHR_extended_dynamic_state' of https://github.com/spnda/MoltenVK into VK_EXT_extended_dynamic_state
This commit is contained in:
commit
7f97fe2354
@ -20,6 +20,7 @@ Released TBD
|
|||||||
|
|
||||||
- Add support for extensions:
|
- Add support for extensions:
|
||||||
- `VK_KHR_synchronization2`
|
- `VK_KHR_synchronization2`
|
||||||
|
- `VK_EXT_extended_dynamic_state`
|
||||||
- Fix rare case where vertex attribute buffers are not bound to Metal
|
- Fix rare case where vertex attribute buffers are not bound to Metal
|
||||||
when no other bindings change between pipelines.
|
when no other bindings change between pipelines.
|
||||||
- Ensure objects retained for life of `MTLCommandBuffer` during `vkCmdBlitImage()` & `vkQueuePresentKHR()`.
|
- Ensure objects retained for life of `MTLCommandBuffer` during `vkCmdBlitImage()` & `vkQueuePresentKHR()`.
|
||||||
|
@ -442,3 +442,47 @@ protected:
|
|||||||
uint32_t _stencilReference;
|
uint32_t _stencilReference;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark MVKCmdSetCullMode
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vulkan command to dynamically set the cull mode. Originally from VK_EXT_extended_dynamic_state,
|
||||||
|
* but also part of Vulkan 1.3.
|
||||||
|
*/
|
||||||
|
class MVKCmdSetCullMode : public MVKCommand {
|
||||||
|
|
||||||
|
public:
|
||||||
|
VkResult setContent(MVKCommandBuffer* cmdBuff,
|
||||||
|
VkCullModeFlags cullMode);
|
||||||
|
|
||||||
|
void encode(MVKCommandEncoder* cmdEncoder) override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
|
||||||
|
|
||||||
|
MTLCullMode _cullMode;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark MVKCmdSetFrontFace
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vulkan command to dynamically set the front facing winding order. Originally from
|
||||||
|
* VK_EXT_extended_dynamic_state, but also part of Vulkan 1.3.
|
||||||
|
*/
|
||||||
|
class MVKCmdSetFrontFace : public MVKCommand {
|
||||||
|
|
||||||
|
public:
|
||||||
|
VkResult setContent(MVKCommandBuffer* cmdBuff,
|
||||||
|
VkFrontFace frontFace);
|
||||||
|
|
||||||
|
void encode(MVKCommandEncoder* cmdEncoder) override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
|
||||||
|
|
||||||
|
MTLWinding _frontFace;
|
||||||
|
};
|
||||||
|
|
||||||
|
@ -439,3 +439,51 @@ void MVKCmdSetStencilReference::encode(MVKCommandEncoder* cmdEncoder) {
|
|||||||
cmdEncoder->_stencilReferenceValueState.setReferenceValues(_faceMask, _stencilReference);
|
cmdEncoder->_stencilReferenceValueState.setReferenceValues(_faceMask, _stencilReference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark MVKCmdSetCullMode
|
||||||
|
|
||||||
|
VkResult MVKCmdSetCullMode::setContent(MVKCommandBuffer* cmdBuff,
|
||||||
|
VkCullModeFlags cullMode) {
|
||||||
|
switch (cullMode) {
|
||||||
|
case VK_CULL_MODE_NONE: {
|
||||||
|
_cullMode = MTLCullModeNone;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case VK_CULL_MODE_FRONT_BIT: {
|
||||||
|
_cullMode = MTLCullModeFront;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case VK_CULL_MODE_BACK_BIT: {
|
||||||
|
_cullMode = MTLCullModeBack;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case VK_CULL_MODE_FRONT_AND_BACK: {
|
||||||
|
// Metal doesn't have a equivalent to this...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return VK_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MVKCmdSetCullMode::encode(MVKCommandEncoder* cmdEncoder) {
|
||||||
|
[((id<MTLRenderCommandEncoder>)cmdEncoder->getMTLEncoder()) setCullMode:_cullMode];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark MVKCmdSetFrontFace
|
||||||
|
|
||||||
|
VkResult MVKCmdSetFrontFace::setContent(MVKCommandBuffer* cmdBuff,
|
||||||
|
VkFrontFace frontFace) {
|
||||||
|
_frontFace = frontFace == VK_FRONT_FACE_COUNTER_CLOCKWISE
|
||||||
|
? MTLWindingClockwise
|
||||||
|
: MTLWindingCounterClockwise;
|
||||||
|
|
||||||
|
return VK_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MVKCmdSetFrontFace::encode(MVKCommandEncoder* cmdEncoder) {
|
||||||
|
[((id<MTLRenderCommandEncoder>)cmdEncoder->getMTLEncoder()) setFrontFacingWinding:_frontFace];
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -93,6 +93,8 @@ MVK_CMD_TYPE_POOL(SetDepthBounds)
|
|||||||
MVK_CMD_TYPE_POOL(SetStencilCompareMask)
|
MVK_CMD_TYPE_POOL(SetStencilCompareMask)
|
||||||
MVK_CMD_TYPE_POOL(SetStencilWriteMask)
|
MVK_CMD_TYPE_POOL(SetStencilWriteMask)
|
||||||
MVK_CMD_TYPE_POOL(SetStencilReference)
|
MVK_CMD_TYPE_POOL(SetStencilReference)
|
||||||
|
MVK_CMD_TYPE_POOL(SetCullMode)
|
||||||
|
MVK_CMD_TYPE_POOL(SetFrontFace)
|
||||||
MVK_CMD_TYPE_POOLS_FROM_2_THRESHOLDS(BindVertexBuffers, 1, 2)
|
MVK_CMD_TYPE_POOLS_FROM_2_THRESHOLDS(BindVertexBuffers, 1, 2)
|
||||||
MVK_CMD_TYPE_POOL(BindIndexBuffer)
|
MVK_CMD_TYPE_POOL(BindIndexBuffer)
|
||||||
MVK_CMD_TYPE_POOL(Draw)
|
MVK_CMD_TYPE_POOL(Draw)
|
||||||
|
@ -103,6 +103,7 @@ MVK_EXTENSION(EXT_debug_marker, EXT_DEBUG_MARKER,
|
|||||||
MVK_EXTENSION(EXT_debug_report, EXT_DEBUG_REPORT, INSTANCE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(EXT_debug_report, EXT_DEBUG_REPORT, INSTANCE, 10.11, 8.0, 1.0)
|
||||||
MVK_EXTENSION(EXT_debug_utils, EXT_DEBUG_UTILS, INSTANCE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(EXT_debug_utils, EXT_DEBUG_UTILS, INSTANCE, 10.11, 8.0, 1.0)
|
||||||
MVK_EXTENSION(EXT_descriptor_indexing, EXT_DESCRIPTOR_INDEXING, DEVICE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(EXT_descriptor_indexing, EXT_DESCRIPTOR_INDEXING, DEVICE, 10.11, 8.0, 1.0)
|
||||||
|
MVK_EXTENSION(EXT_extended_dynamic_state, EXT_EXTENDED_DYNAMIC_STATE, DEVICE, 10.11, 8.0, 1.0)
|
||||||
MVK_EXTENSION(EXT_external_memory_host, EXT_EXTERNAL_MEMORY_HOST, DEVICE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(EXT_external_memory_host, EXT_EXTERNAL_MEMORY_HOST, DEVICE, 10.11, 8.0, 1.0)
|
||||||
MVK_EXTENSION(EXT_fragment_shader_interlock, EXT_FRAGMENT_SHADER_INTERLOCK, DEVICE, 10.13, 11.0, 1.0)
|
MVK_EXTENSION(EXT_fragment_shader_interlock, EXT_FRAGMENT_SHADER_INTERLOCK, DEVICE, 10.13, 11.0, 1.0)
|
||||||
MVK_EXTENSION(EXT_hdr_metadata, EXT_HDR_METADATA, DEVICE, 10.15, MVK_NA, MVK_NA)
|
MVK_EXTENSION(EXT_hdr_metadata, EXT_HDR_METADATA, DEVICE, 10.15, MVK_NA, MVK_NA)
|
||||||
|
@ -2526,16 +2526,20 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkCmdBeginRendering(
|
|||||||
MVKTraceVulkanCallEnd();
|
MVKTraceVulkanCallEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdEndRendering(
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdBindVertexBuffers2(
|
||||||
VkCommandBuffer commandBuffer) {
|
VkCommandBuffer commandBuffer,
|
||||||
|
uint32_t firstBinding,
|
||||||
|
uint32_t bindingCount,
|
||||||
|
const VkBuffer* pBuffers,
|
||||||
|
const VkDeviceSize* pOffsets,
|
||||||
|
const VkDeviceSize* pSizes,
|
||||||
|
const VkDeviceSize* pStrides) {
|
||||||
|
|
||||||
MVKTraceVulkanCallStart();
|
MVKTraceVulkanCallStart();
|
||||||
MVKAddCmd(EndRendering, commandBuffer);
|
|
||||||
MVKTraceVulkanCallEnd();
|
MVKTraceVulkanCallEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdBindVertexBuffers2, void, VkCommandBuffer, uint32_t, uint32_t, const VkBuffer*, const VkDeviceSize*, const VkDeviceSize*, const VkDeviceSize*)
|
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdBlitImage2(
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdBlitImage2(
|
||||||
VkCommandBuffer commandBuffer,
|
VkCommandBuffer commandBuffer,
|
||||||
const VkBlitImageInfo2* pBlitImageInfo) {
|
const VkBlitImageInfo2* pBlitImageInfo) {
|
||||||
@ -2585,6 +2589,14 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkCmdCopyImageToBuffer2(
|
|||||||
MVKTraceVulkanCallEnd();
|
MVKTraceVulkanCallEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdEndRendering(
|
||||||
|
VkCommandBuffer commandBuffer) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKAddCmd(EndRendering, commandBuffer);
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdPipelineBarrier2(
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdPipelineBarrier2(
|
||||||
VkCommandBuffer commandBuffer,
|
VkCommandBuffer commandBuffer,
|
||||||
const VkDependencyInfo* pDependencyInfo) {
|
const VkDependencyInfo* pDependencyInfo) {
|
||||||
@ -2615,12 +2627,51 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkCmdResolveImage2(
|
|||||||
MVKTraceVulkanCallEnd();
|
MVKTraceVulkanCallEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetCullMode, void, VkCommandBuffer, VkCullModeFlags)
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetCullMode(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkCullModeFlags cullMode) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKAddCmd(SetCullMode, commandBuffer, cullMode);
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthBiasEnable, void, VkCommandBuffer, VkBool32)
|
MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthBiasEnable, void, VkCommandBuffer, VkBool32)
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthBoundsTestEnable, void, VkCommandBuffer, VkBool32)
|
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthCompareOp, void, VkCommandBuffer, VkCompareOp)
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetDepthBoundsTestEnable(
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthTestEnable, void, VkCommandBuffer, VkBool32)
|
VkCommandBuffer commandBuffer,
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthWriteEnable, void, VkCommandBuffer, VkBool32)
|
VkBool32 depthBoundsTestEnable) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetDepthCompareOp(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkCompareOp depthCompareOp) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetDepthTestEnable(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkBool32 depthTestEnable) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetDepthWriteEnable(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkBool32 depthWriteEnable) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetEvent2(
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetEvent2(
|
||||||
VkCommandBuffer commandBuffer,
|
VkCommandBuffer commandBuffer,
|
||||||
@ -2632,14 +2683,66 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetEvent2(
|
|||||||
MVKTraceVulkanCallEnd();
|
MVKTraceVulkanCallEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetFrontFace, void, VkCommandBuffer, VkFrontFace)
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetFrontFace(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkFrontFace frontFace) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKAddCmd(SetFrontFace, commandBuffer, frontFace);
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetPrimitiveRestartEnable, void, VkCommandBuffer, VkBool32)
|
MVK_PUBLIC_VULKAN_STUB(vkCmdSetPrimitiveRestartEnable, void, VkCommandBuffer, VkBool32)
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetPrimitiveTopology, void, VkCommandBuffer, VkPrimitiveTopology)
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetPrimitiveTopology(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkPrimitiveTopology primitiveTopology) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetRasterizerDiscardEnable, void, VkCommandBuffer, VkBool32)
|
MVK_PUBLIC_VULKAN_STUB(vkCmdSetRasterizerDiscardEnable, void, VkCommandBuffer, VkBool32)
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetScissorWithCount, void, VkCommandBuffer, uint32_t, const VkRect2D*)
|
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetStencilOp, void, VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp)
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetScissorWithCount(
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetStencilTestEnable, void, VkCommandBuffer, VkBool32)
|
VkCommandBuffer commandBuffer,
|
||||||
MVK_PUBLIC_VULKAN_STUB(vkCmdSetViewportWithCount, void, VkCommandBuffer, uint32_t, const VkViewport*)
|
uint32_t scissorCount,
|
||||||
|
const VkRect2D* pScissors) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKAddCmdFromThreshold(SetScissor, scissorCount, 1, commandBuffer, 0, scissorCount, pScissors);
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetStencilOp(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkStencilFaceFlags faceMask,
|
||||||
|
VkStencilOp failOp,
|
||||||
|
VkStencilOp passOp,
|
||||||
|
VkStencilOp depthFailOp,
|
||||||
|
VkCompareOp compareOp) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetStencilTestEnable(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkBool32 stencilTestEnable) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdSetViewportWithCount(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
uint32_t viewportCount,
|
||||||
|
const VkViewport* pViewports) {
|
||||||
|
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKAddCmdFromThreshold(SetViewport, viewportCount, 1, commandBuffer, 0, viewportCount, pViewports);
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
}
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdWaitEvents2(
|
MVK_PUBLIC_VULKAN_SYMBOL void vkCmdWaitEvents2(
|
||||||
VkCommandBuffer commandBuffer,
|
VkCommandBuffer commandBuffer,
|
||||||
@ -3433,6 +3536,23 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkSubmitDebugUtilsMessageEXT(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark VK_EXT_extended_dynamic_state
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdBindVertexBuffers2, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetCullMode, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetDepthBoundsTestEnable, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetDepthCompareOp, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetDepthTestEnable, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetDepthWriteEnable, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetFrontFace, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetPrimitiveTopology, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetScissorWithCount, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetStencilOp, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetStencilTestEnable, EXT);
|
||||||
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdSetViewportWithCount, EXT);
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark VK_EXT_external_memory_host extension
|
#pragma mark VK_EXT_external_memory_host extension
|
||||||
|
|
||||||
@ -3562,6 +3682,7 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkGetPrivateDataEXT(
|
|||||||
MVKTraceVulkanCallEnd();
|
MVKTraceVulkanCallEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark VK_EXT_sample_locations extension
|
#pragma mark VK_EXT_sample_locations extension
|
||||||
|
|
||||||
@ -3585,6 +3706,7 @@ void vkCmdSetSampleLocationsEXT(
|
|||||||
MVKTraceVulkanCallEnd();
|
MVKTraceVulkanCallEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark VK_GOOGLE_display_timing extension
|
#pragma mark VK_GOOGLE_display_timing extension
|
||||||
|
|
||||||
@ -3613,12 +3735,14 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetPastPresentationTimingGOOGLE(
|
|||||||
return rslt;
|
return rslt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark VK_AMD_draw_indirect_count
|
#pragma mark VK_AMD_draw_indirect_count
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdDrawIndexedIndirectCount, AMD);
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdDrawIndexedIndirectCount, AMD);
|
||||||
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdDrawIndirectCount, AMD);
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdDrawIndirectCount, AMD);
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark iOS & macOS surface extensions
|
#pragma mark iOS & macOS surface extensions
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user