mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-21 21:57:39 +01:00
[dxvk] Replace VK_EXT_extended_dynamic_state with core feature
This commit is contained in:
parent
3cfc3e7714
commit
7677db3371
@ -258,8 +258,6 @@ namespace dxvk {
|
||||
|| !required.extCustomBorderColor.customBorderColorWithoutFormat)
|
||||
&& (m_deviceFeatures.extDepthClipEnable.depthClipEnable
|
||||
|| !required.extDepthClipEnable.depthClipEnable)
|
||||
&& (m_deviceFeatures.extExtendedDynamicState.extendedDynamicState
|
||||
|| !required.extExtendedDynamicState.extendedDynamicState)
|
||||
&& (m_deviceFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary
|
||||
|| !required.extGraphicsPipelineLibrary.graphicsPipelineLibrary)
|
||||
&& (m_deviceFeatures.extMemoryPriority.memoryPriority
|
||||
@ -295,14 +293,13 @@ namespace dxvk {
|
||||
DxvkDeviceFeatures enabledFeatures) {
|
||||
DxvkDeviceExtensions devExtensions;
|
||||
|
||||
std::array<DxvkExt*, 24> devExtensionList = {{
|
||||
std::array<DxvkExt*, 23> devExtensionList = {{
|
||||
&devExtensions.amdMemoryOverallocationBehaviour,
|
||||
&devExtensions.amdShaderFragmentMask,
|
||||
&devExtensions.ext4444Formats,
|
||||
&devExtensions.extConservativeRasterization,
|
||||
&devExtensions.extCustomBorderColor,
|
||||
&devExtensions.extDepthClipEnable,
|
||||
&devExtensions.extExtendedDynamicState,
|
||||
&devExtensions.extFullScreenExclusive,
|
||||
&devExtensions.extGraphicsPipelineLibrary,
|
||||
&devExtensions.extMemoryBudget,
|
||||
@ -360,8 +357,6 @@ namespace dxvk {
|
||||
enabledFeatures.vk13.dynamicRendering = VK_TRUE;
|
||||
enabledFeatures.vk13.maintenance4 = VK_TRUE;
|
||||
|
||||
enabledFeatures.extExtendedDynamicState.extendedDynamicState = VK_TRUE;
|
||||
|
||||
enabledFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary =
|
||||
m_deviceFeatures.extGraphicsPipelineLibrary.graphicsPipelineLibrary;
|
||||
|
||||
@ -417,11 +412,6 @@ namespace dxvk {
|
||||
enabledFeatures.extDepthClipEnable.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extDepthClipEnable);
|
||||
}
|
||||
|
||||
if (devExtensions.extExtendedDynamicState) {
|
||||
enabledFeatures.extExtendedDynamicState.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
|
||||
enabledFeatures.extExtendedDynamicState.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extExtendedDynamicState);
|
||||
}
|
||||
|
||||
if (devExtensions.extGraphicsPipelineLibrary) {
|
||||
enabledFeatures.extGraphicsPipelineLibrary.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT;
|
||||
enabledFeatures.extGraphicsPipelineLibrary.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extGraphicsPipelineLibrary);
|
||||
@ -722,11 +712,6 @@ namespace dxvk {
|
||||
m_deviceFeatures.extDepthClipEnable.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extDepthClipEnable);
|
||||
}
|
||||
|
||||
if (m_deviceExtensions.supports(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME)) {
|
||||
m_deviceFeatures.extExtendedDynamicState.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
|
||||
m_deviceFeatures.extExtendedDynamicState.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extExtendedDynamicState);
|
||||
}
|
||||
|
||||
if (m_deviceExtensions.supports(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME)) {
|
||||
m_deviceFeatures.extGraphicsPipelineLibrary.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT;
|
||||
m_deviceFeatures.extGraphicsPipelineLibrary.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extGraphicsPipelineLibrary);
|
||||
@ -863,8 +848,6 @@ namespace dxvk {
|
||||
"\n customBorderColorWithoutFormat : ", features.extCustomBorderColor.customBorderColorWithoutFormat ? "1" : "0",
|
||||
"\n", VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME,
|
||||
"\n depthClipEnable : ", features.extDepthClipEnable.depthClipEnable ? "1" : "0",
|
||||
"\n", VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
|
||||
"\n extendedDynamicState : ", features.extExtendedDynamicState.extendedDynamicState ? "1" : "0",
|
||||
"\n", VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME,
|
||||
"\n graphicsPipelineLibrary : ", features.extGraphicsPipelineLibrary.graphicsPipelineLibrary ? "1" : "0",
|
||||
"\n", VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME,
|
||||
|
@ -327,20 +327,10 @@ namespace dxvk {
|
||||
uint32_t firstBinding,
|
||||
uint32_t bindingCount,
|
||||
const VkBuffer* pBuffers,
|
||||
const VkDeviceSize* pOffsets) {
|
||||
m_vkd->vkCmdBindVertexBuffers(m_execBuffer,
|
||||
firstBinding, bindingCount, pBuffers, pOffsets);
|
||||
}
|
||||
|
||||
|
||||
void cmdBindVertexBuffers2(
|
||||
uint32_t firstBinding,
|
||||
uint32_t bindingCount,
|
||||
const VkBuffer* pBuffers,
|
||||
const VkDeviceSize* pOffsets,
|
||||
const VkDeviceSize* pSizes,
|
||||
const VkDeviceSize* pStrides) {
|
||||
m_vkd->vkCmdBindVertexBuffers2EXT(m_execBuffer,
|
||||
m_vkd->vkCmdBindVertexBuffers2(m_execBuffer,
|
||||
firstBinding, bindingCount, pBuffers, pOffsets,
|
||||
pSizes, pStrides);
|
||||
}
|
||||
@ -701,7 +691,7 @@ namespace dxvk {
|
||||
|
||||
void cmdSetDepthBoundsState(
|
||||
VkBool32 depthBoundsTestEnable) {
|
||||
m_vkd->vkCmdSetDepthBoundsTestEnableEXT(m_execBuffer, depthBoundsTestEnable);
|
||||
m_vkd->vkCmdSetDepthBoundsTestEnable(m_execBuffer, depthBoundsTestEnable);
|
||||
}
|
||||
|
||||
|
||||
@ -709,11 +699,11 @@ namespace dxvk {
|
||||
VkBool32 depthTestEnable,
|
||||
VkBool32 depthWriteEnable,
|
||||
VkCompareOp depthCompareOp) {
|
||||
m_vkd->vkCmdSetDepthTestEnableEXT(m_execBuffer, depthTestEnable);
|
||||
m_vkd->vkCmdSetDepthTestEnable(m_execBuffer, depthTestEnable);
|
||||
|
||||
if (depthTestEnable) {
|
||||
m_vkd->vkCmdSetDepthWriteEnableEXT(m_execBuffer, depthWriteEnable);
|
||||
m_vkd->vkCmdSetDepthCompareOpEXT(m_execBuffer, depthCompareOp);
|
||||
m_vkd->vkCmdSetDepthWriteEnable(m_execBuffer, depthWriteEnable);
|
||||
m_vkd->vkCmdSetDepthCompareOp(m_execBuffer, depthCompareOp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -728,15 +718,15 @@ namespace dxvk {
|
||||
void cmdSetRasterizerState(
|
||||
VkCullModeFlags cullMode,
|
||||
VkFrontFace frontFace) {
|
||||
m_vkd->vkCmdSetCullModeEXT(m_execBuffer, cullMode);
|
||||
m_vkd->vkCmdSetFrontFaceEXT(m_execBuffer, frontFace);
|
||||
m_vkd->vkCmdSetCullMode(m_execBuffer, cullMode);
|
||||
m_vkd->vkCmdSetFrontFace(m_execBuffer, frontFace);
|
||||
}
|
||||
|
||||
|
||||
void cmdSetScissor(
|
||||
uint32_t scissorCount,
|
||||
const VkRect2D* scissors) {
|
||||
m_vkd->vkCmdSetScissorWithCountEXT(
|
||||
m_vkd->vkCmdSetScissorWithCount(
|
||||
m_execBuffer, scissorCount, scissors);
|
||||
}
|
||||
|
||||
@ -745,11 +735,11 @@ namespace dxvk {
|
||||
VkBool32 enableStencilTest,
|
||||
const VkStencilOpState& front,
|
||||
const VkStencilOpState& back) {
|
||||
m_vkd->vkCmdSetStencilTestEnableEXT(
|
||||
m_vkd->vkCmdSetStencilTestEnable(
|
||||
m_execBuffer, enableStencilTest);
|
||||
|
||||
if (enableStencilTest) {
|
||||
m_vkd->vkCmdSetStencilOpEXT(m_execBuffer,
|
||||
m_vkd->vkCmdSetStencilOp(m_execBuffer,
|
||||
VK_STENCIL_FACE_FRONT_BIT, front.failOp,
|
||||
front.passOp, front.depthFailOp, front.compareOp);
|
||||
m_vkd->vkCmdSetStencilCompareMask(m_execBuffer,
|
||||
@ -757,7 +747,7 @@ namespace dxvk {
|
||||
m_vkd->vkCmdSetStencilWriteMask(m_execBuffer,
|
||||
VK_STENCIL_FACE_FRONT_BIT, front.writeMask);
|
||||
|
||||
m_vkd->vkCmdSetStencilOpEXT(m_execBuffer,
|
||||
m_vkd->vkCmdSetStencilOp(m_execBuffer,
|
||||
VK_STENCIL_FACE_BACK_BIT, back.failOp,
|
||||
back.passOp, back.depthFailOp, back.compareOp);
|
||||
m_vkd->vkCmdSetStencilCompareMask(m_execBuffer,
|
||||
@ -779,7 +769,7 @@ namespace dxvk {
|
||||
void cmdSetViewport(
|
||||
uint32_t viewportCount,
|
||||
const VkViewport* viewports) {
|
||||
m_vkd->vkCmdSetViewportWithCountEXT(
|
||||
m_vkd->vkCmdSetViewportWithCount(
|
||||
m_execBuffer, viewportCount, viewports);
|
||||
}
|
||||
|
||||
|
@ -5073,7 +5073,7 @@ namespace dxvk {
|
||||
|
||||
// Vertex bindigs get remapped when compiling the
|
||||
// pipeline, so this actually does the right thing
|
||||
m_cmd->cmdBindVertexBuffers2(0, m_state.gp.state.il.bindingCount(),
|
||||
m_cmd->cmdBindVertexBuffers(0, m_state.gp.state.il.bindingCount(),
|
||||
buffers.data(), offsets.data(), lengths.data(), nullptr);
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,6 @@ namespace dxvk {
|
||||
VkPhysicalDevice4444FormatsFeaturesEXT ext4444Formats;
|
||||
VkPhysicalDeviceCustomBorderColorFeaturesEXT extCustomBorderColor;
|
||||
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
||||
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extExtendedDynamicState;
|
||||
VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT extGraphicsPipelineLibrary;
|
||||
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
|
||||
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT extNonSeamlessCubeMap;
|
||||
|
@ -282,7 +282,6 @@ namespace dxvk {
|
||||
DxvkExt extConservativeRasterization = { VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt extCustomBorderColor = { VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt extDepthClipEnable = { VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt extExtendedDynamicState = { VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, DxvkExtMode::Required };
|
||||
DxvkExt extFullScreenExclusive = { VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt extGraphicsPipelineLibrary = { VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||
DxvkExt extMemoryBudget = { VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, DxvkExtMode::Passive };
|
||||
|
@ -769,8 +769,8 @@ namespace dxvk {
|
||||
std::array<VkDynamicState, 8> dynamicStates;
|
||||
uint32_t dynamicStateCount = 0;
|
||||
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT;
|
||||
|
||||
if (state.useDynamicDepthBias())
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BIAS;
|
||||
@ -785,8 +785,8 @@ namespace dxvk {
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_REFERENCE;
|
||||
|
||||
if (!m_flags.test(DxvkGraphicsPipelineFlag::HasRasterizerDiscard)) {
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_CULL_MODE_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_FRONT_FACE_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_CULL_MODE;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_FRONT_FACE;
|
||||
}
|
||||
|
||||
// Set up some specialization constants
|
||||
|
@ -307,8 +307,8 @@ namespace dxvk {
|
||||
VK_SHADER_STAGE_FRAGMENT_BIT, psModule, "main" };
|
||||
|
||||
std::array<VkDynamicState, 2> dynStates = {{
|
||||
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
|
||||
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
|
||||
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
|
||||
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
|
||||
}};
|
||||
|
||||
VkPipelineDynamicStateCreateInfo dynState = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO };
|
||||
|
@ -344,8 +344,8 @@ namespace dxvk {
|
||||
VK_SHADER_STAGE_FRAGMENT_BIT, psModule, "main" };
|
||||
|
||||
std::array<VkDynamicState, 2> dynStates = {{
|
||||
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
|
||||
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
|
||||
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
|
||||
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
|
||||
}};
|
||||
|
||||
VkPipelineDynamicStateCreateInfo dynState = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO };
|
||||
|
@ -257,8 +257,8 @@ namespace dxvk {
|
||||
VK_SHADER_STAGE_FRAGMENT_BIT, psModule, "main", &specInfo };
|
||||
|
||||
std::array<VkDynamicState, 2> dynStates = {{
|
||||
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
|
||||
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
|
||||
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
|
||||
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
|
||||
}};
|
||||
|
||||
VkPipelineDynamicStateCreateInfo dynState = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO };
|
||||
|
@ -548,11 +548,11 @@ namespace dxvk {
|
||||
// Set up dynamic state. We do not know any pipeline state
|
||||
// at this time, so make as much state dynamic as we can.
|
||||
std::array<VkDynamicState, 5> dynamicStates = {{
|
||||
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
|
||||
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
|
||||
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
|
||||
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
|
||||
VK_DYNAMIC_STATE_DEPTH_BIAS,
|
||||
VK_DYNAMIC_STATE_CULL_MODE_EXT,
|
||||
VK_DYNAMIC_STATE_FRONT_FACE_EXT,
|
||||
VK_DYNAMIC_STATE_CULL_MODE,
|
||||
VK_DYNAMIC_STATE_FRONT_FACE,
|
||||
}};
|
||||
|
||||
VkPipelineDynamicStateCreateInfo dyInfo = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO };
|
||||
@ -622,17 +622,17 @@ namespace dxvk {
|
||||
uint32_t dynamicStateCount = 0;
|
||||
std::array<VkDynamicState, 10> dynamicStates;
|
||||
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_REFERENCE;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_OP_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_OP;
|
||||
|
||||
if (m_device->features().core.features.depthBounds) {
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE;
|
||||
dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BOUNDS;
|
||||
}
|
||||
|
||||
|
@ -257,6 +257,21 @@ namespace dxvk::vk {
|
||||
VULKAN_FN(vkCmdSetStencilCompareMask);
|
||||
VULKAN_FN(vkCmdSetStencilWriteMask);
|
||||
VULKAN_FN(vkCmdSetStencilReference);
|
||||
VULKAN_FN(vkCmdBindVertexBuffers2);
|
||||
VULKAN_FN(vkCmdSetCullMode);
|
||||
VULKAN_FN(vkCmdSetDepthBoundsTestEnable);
|
||||
VULKAN_FN(vkCmdSetDepthCompareOp);
|
||||
VULKAN_FN(vkCmdSetDepthTestEnable);
|
||||
VULKAN_FN(vkCmdSetDepthWriteEnable);
|
||||
VULKAN_FN(vkCmdSetFrontFace);
|
||||
VULKAN_FN(vkCmdSetPrimitiveTopology);
|
||||
VULKAN_FN(vkCmdSetScissorWithCount);
|
||||
VULKAN_FN(vkCmdSetStencilOp);
|
||||
VULKAN_FN(vkCmdSetStencilTestEnable);
|
||||
VULKAN_FN(vkCmdSetViewportWithCount);
|
||||
VULKAN_FN(vkCmdSetRasterizerDiscardEnable);
|
||||
VULKAN_FN(vkCmdSetDepthBiasEnable);
|
||||
VULKAN_FN(vkCmdSetPrimitiveRestartEnable);
|
||||
VULKAN_FN(vkCmdBindDescriptorSets);
|
||||
VULKAN_FN(vkCmdBindIndexBuffer);
|
||||
VULKAN_FN(vkCmdBindVertexBuffers);
|
||||
@ -312,21 +327,6 @@ namespace dxvk::vk {
|
||||
VULKAN_FN(vkCmdEndConditionalRenderingEXT);
|
||||
#endif
|
||||
|
||||
#ifdef VK_EXT_extended_dynamic_state
|
||||
VULKAN_FN(vkCmdBindVertexBuffers2EXT);
|
||||
VULKAN_FN(vkCmdSetCullModeEXT);
|
||||
VULKAN_FN(vkCmdSetDepthBoundsTestEnableEXT);
|
||||
VULKAN_FN(vkCmdSetDepthCompareOpEXT);
|
||||
VULKAN_FN(vkCmdSetDepthTestEnableEXT);
|
||||
VULKAN_FN(vkCmdSetDepthWriteEnableEXT);
|
||||
VULKAN_FN(vkCmdSetFrontFaceEXT);
|
||||
VULKAN_FN(vkCmdSetPrimitiveTopologyEXT);
|
||||
VULKAN_FN(vkCmdSetScissorWithCountEXT);
|
||||
VULKAN_FN(vkCmdSetStencilOpEXT);
|
||||
VULKAN_FN(vkCmdSetStencilTestEnableEXT);
|
||||
VULKAN_FN(vkCmdSetViewportWithCountEXT);
|
||||
#endif
|
||||
|
||||
#ifdef VK_EXT_full_screen_exclusive
|
||||
VULKAN_FN(vkAcquireFullScreenExclusiveModeEXT);
|
||||
VULKAN_FN(vkReleaseFullScreenExclusiveModeEXT);
|
||||
|
Loading…
x
Reference in New Issue
Block a user