Cleanup, enable dynamic state extensions, use ext fn names
This commit is contained in:
parent
bec075df2f
commit
c43db60df6
1 changed files with 22 additions and 19 deletions
|
|
@ -34,16 +34,18 @@ public:
|
||||||
|
|
||||||
PFN_vkCreateShadersEXT vkCreateShadersEXT;
|
PFN_vkCreateShadersEXT vkCreateShadersEXT;
|
||||||
PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT;
|
PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT;
|
||||||
|
|
||||||
// With VK_EXT_shader_object pipeline state must be set at command buffer creation using these functions
|
// With VK_EXT_shader_object pipeline state must be set at command buffer creation using these functions
|
||||||
PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount;
|
// VK_EXT_dynamic_state
|
||||||
PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount;
|
PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT;
|
||||||
PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT;
|
PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT;
|
||||||
PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp;
|
PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT;
|
||||||
PFN_vkCmdSetCullMode vkCmdSetCullMode;
|
PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT;
|
||||||
PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable;
|
PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT;
|
||||||
PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable;
|
PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT;
|
||||||
PFN_vkCmdSetFrontFace vkCmdSetFrontFace;
|
PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT;
|
||||||
PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology;
|
PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT;
|
||||||
|
// VK_EXT_vertex_input_dynamic_state
|
||||||
PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT;
|
PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT;
|
||||||
|
|
||||||
VulkanExample() : VulkanExampleBase(ENABLE_VALIDATION)
|
VulkanExample() : VulkanExampleBase(ENABLE_VALIDATION)
|
||||||
|
|
@ -56,6 +58,9 @@ public:
|
||||||
camera.setPerspective(60.0f, (float)(width) / (float)height, 0.1f, 256.0f);
|
camera.setPerspective(60.0f, (float)(width) / (float)height, 0.1f, 256.0f);
|
||||||
|
|
||||||
enabledDeviceExtensions.push_back(VK_EXT_SHADER_OBJECT_EXTENSION_NAME);
|
enabledDeviceExtensions.push_back(VK_EXT_SHADER_OBJECT_EXTENSION_NAME);
|
||||||
|
// With VK_EXT_shader_object all baked pipeline state is set dynamically at command buffer creation, so we need to enable additional extensions
|
||||||
|
enabledDeviceExtensions.push_back(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME);
|
||||||
|
enabledDeviceExtensions.push_back(VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME);
|
||||||
|
|
||||||
enabledDeviceShaderObjectFeaturesEXT.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT;
|
enabledDeviceShaderObjectFeaturesEXT.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT;
|
||||||
enabledDeviceShaderObjectFeaturesEXT.shaderObject = VK_TRUE;
|
enabledDeviceShaderObjectFeaturesEXT.shaderObject = VK_TRUE;
|
||||||
|
|
@ -190,7 +195,6 @@ public:
|
||||||
vkCmdSetScissorWithCount(drawCmdBuffers[i], 1, &scissor);
|
vkCmdSetScissorWithCount(drawCmdBuffers[i], 1, &scissor);
|
||||||
vkCmdSetCullMode(drawCmdBuffers[i], VK_CULL_MODE_BACK_BIT);
|
vkCmdSetCullMode(drawCmdBuffers[i], VK_CULL_MODE_BACK_BIT);
|
||||||
vkCmdSetFrontFace(drawCmdBuffers[i], VK_FRONT_FACE_COUNTER_CLOCKWISE);
|
vkCmdSetFrontFace(drawCmdBuffers[i], VK_FRONT_FACE_COUNTER_CLOCKWISE);
|
||||||
vkCmdSetPolygonModeEXT(drawCmdBuffers[i], VK_POLYGON_MODE_FILL);
|
|
||||||
vkCmdSetDepthTestEnable(drawCmdBuffers[i], VK_TRUE);
|
vkCmdSetDepthTestEnable(drawCmdBuffers[i], VK_TRUE);
|
||||||
vkCmdSetDepthWriteEnable(drawCmdBuffers[i], VK_TRUE);
|
vkCmdSetDepthWriteEnable(drawCmdBuffers[i], VK_TRUE);
|
||||||
vkCmdSetDepthCompareOp(drawCmdBuffers[i], VK_COMPARE_OP_LESS_OR_EQUAL);
|
vkCmdSetDepthCompareOp(drawCmdBuffers[i], VK_COMPARE_OP_LESS_OR_EQUAL);
|
||||||
|
|
@ -257,15 +261,14 @@ public:
|
||||||
vkCreateShadersEXT = reinterpret_cast<PFN_vkCreateShadersEXT>(vkGetDeviceProcAddr(device, "vkCreateShadersEXT"));
|
vkCreateShadersEXT = reinterpret_cast<PFN_vkCreateShadersEXT>(vkGetDeviceProcAddr(device, "vkCreateShadersEXT"));
|
||||||
vkCmdBindShadersEXT = reinterpret_cast<PFN_vkCmdBindShadersEXT>(vkGetDeviceProcAddr(device, "vkCmdBindShadersEXT"));
|
vkCmdBindShadersEXT = reinterpret_cast<PFN_vkCmdBindShadersEXT>(vkGetDeviceProcAddr(device, "vkCmdBindShadersEXT"));
|
||||||
|
|
||||||
vkCmdSetViewportWithCount = reinterpret_cast<PFN_vkCmdSetViewportWithCount>(vkGetDeviceProcAddr(device, "vkCmdSetViewportWithCountEXT"));;
|
vkCmdSetViewportWithCountEXT = reinterpret_cast<PFN_vkCmdSetViewportWithCountEXT>(vkGetDeviceProcAddr(device, "vkCmdSetViewportWithCountEXT"));;
|
||||||
vkCmdSetScissorWithCount = reinterpret_cast<PFN_vkCmdSetScissorWithCount>(vkGetDeviceProcAddr(device, "vkCmdSetScissorWithCountEXT"));
|
vkCmdSetScissorWithCountEXT = reinterpret_cast<PFN_vkCmdSetScissorWithCountEXT>(vkGetDeviceProcAddr(device, "vkCmdSetScissorWithCountEXT"));
|
||||||
vkCmdSetPolygonModeEXT = reinterpret_cast<PFN_vkCmdSetPolygonModeEXT>(vkGetDeviceProcAddr(device, "vkCmdSetPolygonModeEXT"));
|
vkCmdSetDepthCompareOpEXT = reinterpret_cast<PFN_vkCmdSetDepthCompareOpEXT>(vkGetDeviceProcAddr(device, "vkCmdSetDepthCompareOpEXT"));
|
||||||
vkCmdSetDepthCompareOp = reinterpret_cast<PFN_vkCmdSetDepthCompareOp>(vkGetDeviceProcAddr(device, "vkCmdSetDepthCompareOp"));
|
vkCmdSetCullModeEXT = reinterpret_cast<PFN_vkCmdSetCullModeEXT>(vkGetDeviceProcAddr(device, "vkCmdSetCullModeEXT"));
|
||||||
vkCmdSetCullMode = reinterpret_cast<PFN_vkCmdSetCullMode>(vkGetDeviceProcAddr(device, "vkCmdSetCullModeEXT"));
|
vkCmdSetDepthTestEnableEXT = reinterpret_cast<PFN_vkCmdSetDepthTestEnableEXT>(vkGetDeviceProcAddr(device, "vkCmdSetDepthTestEnableEXT"));
|
||||||
vkCmdSetDepthTestEnable = reinterpret_cast<PFN_vkCmdSetDepthTestEnable>(vkGetDeviceProcAddr(device, "vkCmdSetDepthTestEnableEXT"));
|
vkCmdSetDepthWriteEnableEXT = reinterpret_cast<PFN_vkCmdSetDepthWriteEnableEXT>(vkGetDeviceProcAddr(device, "vkCmdSetDepthWriteEnableEXT"));
|
||||||
vkCmdSetDepthWriteEnable = reinterpret_cast<PFN_vkCmdSetDepthWriteEnable>(vkGetDeviceProcAddr(device, "vkCmdSetDepthWriteEnableEXT"));
|
vkCmdSetFrontFaceEXT = reinterpret_cast<PFN_vkCmdSetFrontFaceEXT>(vkGetDeviceProcAddr(device, "vkCmdSetFrontFaceEXT"));
|
||||||
vkCmdSetFrontFace = reinterpret_cast<PFN_vkCmdSetFrontFace>(vkGetDeviceProcAddr(device, "vkCmdSetFrontFaceEXT"));
|
vkCmdSetPrimitiveTopologyEXT = reinterpret_cast<PFN_vkCmdSetPrimitiveTopologyEXT>(vkGetDeviceProcAddr(device, "vkCmdSetPrimitiveTopologyEXT"));
|
||||||
vkCmdSetPrimitiveTopology = reinterpret_cast<PFN_vkCmdSetPrimitiveTopology>(vkGetDeviceProcAddr(device, "vkCmdSetPrimitiveTopologyEXT"));
|
|
||||||
vkCmdSetVertexInputEXT = reinterpret_cast<PFN_vkCmdSetVertexInputEXT>(vkGetDeviceProcAddr(device, "vkCmdSetVertexInputEXT"));
|
vkCmdSetVertexInputEXT = reinterpret_cast<PFN_vkCmdSetVertexInputEXT>(vkGetDeviceProcAddr(device, "vkCmdSetVertexInputEXT"));
|
||||||
|
|
||||||
loadAssets();
|
loadAssets();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue