Vulkan Implement Dynamic State 2 LogicOp and PatchVertices
This commit is contained in:
parent
c897c55e3c
commit
f800e485c9
12 changed files with 75 additions and 27 deletions
|
@ -576,8 +576,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
|||
.pNext = nullptr,
|
||||
.extendedDynamicState2 = VK_TRUE,
|
||||
.extendedDynamicState2LogicOp = ext_extended_dynamic_state2_extra ? VK_TRUE : VK_FALSE,
|
||||
.extendedDynamicState2PatchControlPoints =
|
||||
ext_extended_dynamic_state2_extra ? VK_TRUE : VK_FALSE,
|
||||
};
|
||||
SetNext(next, dynamic_state2);
|
||||
} else {
|
||||
|
@ -1330,8 +1328,7 @@ std::vector<const char*> Device::LoadExtensions(bool requires_surface) {
|
|||
extensions.push_back(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME);
|
||||
ext_extended_dynamic_state2 = true;
|
||||
ext_extended_dynamic_state2_extra =
|
||||
extended_dynamic_state2.extendedDynamicState2LogicOp &&
|
||||
extended_dynamic_state2.extendedDynamicState2PatchControlPoints;
|
||||
extended_dynamic_state2.extendedDynamicState2LogicOp;
|
||||
}
|
||||
}
|
||||
if (has_ext_extended_dynamic_state3) {
|
||||
|
|
|
@ -126,6 +126,8 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept {
|
|||
X(vkCmdSetRasterizerDiscardEnableEXT);
|
||||
X(vkCmdSetDepthBiasEnableEXT);
|
||||
X(vkCmdSetFrontFaceEXT);
|
||||
X(vkCmdSetLogicOpEXT);
|
||||
X(vkCmdSetPatchControlPointsEXT);
|
||||
X(vkCmdSetLineWidth);
|
||||
X(vkCmdSetPrimitiveTopologyEXT);
|
||||
X(vkCmdSetStencilOpEXT);
|
||||
|
|
|
@ -239,6 +239,8 @@ struct DeviceDispatch : InstanceDispatch {
|
|||
PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT{};
|
||||
PFN_vkCmdSetEvent vkCmdSetEvent{};
|
||||
PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT{};
|
||||
PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT{};
|
||||
PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT{};
|
||||
PFN_vkCmdSetLineWidth vkCmdSetLineWidth{};
|
||||
PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT{};
|
||||
PFN_vkCmdSetScissor vkCmdSetScissor{};
|
||||
|
@ -1238,6 +1240,14 @@ public:
|
|||
dld->vkCmdSetFrontFaceEXT(handle, front_face);
|
||||
}
|
||||
|
||||
void SetLogicOpEXT(VkLogicOp logic_op) const noexcept {
|
||||
dld->vkCmdSetLogicOpEXT(handle, logic_op);
|
||||
}
|
||||
|
||||
void SetPatchControlPointsEXT(uint32_t patch_control_points) const noexcept {
|
||||
dld->vkCmdSetPatchControlPointsEXT(handle, patch_control_points);
|
||||
}
|
||||
|
||||
void SetLineWidth(float line_width) const noexcept {
|
||||
dld->vkCmdSetLineWidth(handle, line_width);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue