vk_instance: Manually enable features

* We need these features so better force enable them and have the driver crash if they're unavailable.
This commit is contained in:
GPUCode
2023-01-18 18:14:17 +02:00
parent d6cab3ab40
commit 27698b0c93
2 changed files with 25 additions and 14 deletions

View File

@ -515,11 +515,22 @@ bool Instance::CreateDevice() {
},
},
feature_chain.get<vk::PhysicalDevicePortabilitySubsetFeaturesKHR>(),
feature_chain.get<vk::PhysicalDeviceTimelineSemaphoreFeaturesKHR>(),
feature_chain.get<vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>(),
feature_chain.get<vk::PhysicalDeviceCustomBorderColorFeaturesEXT>(),
feature_chain.get<vk::PhysicalDeviceIndexTypeUint8FeaturesEXT>(),
feature_chain.get<vk::PhysicalDevicePipelineCreationCacheControlFeaturesEXT>(),
vk::PhysicalDeviceTimelineSemaphoreFeaturesKHR{
.timelineSemaphore = true,
},
vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT{
.extendedDynamicState = true,
},
vk::PhysicalDeviceCustomBorderColorFeaturesEXT{
.customBorderColors = true,
.customBorderColorWithoutFormat = true,
},
vk::PhysicalDeviceIndexTypeUint8FeaturesEXT{
.indexTypeUint8 = true,
},
vk::PhysicalDevicePipelineCreationCacheControlFeaturesEXT{
.pipelineCreationCacheControl = true,
},
};
if (portability_subset) {

View File

@ -93,16 +93,16 @@ void RenderpassCache::EnterRenderpass(const RenderpassState& state) {
}
scheduler.Record([state](vk::CommandBuffer cmdbuf) {
const vk::RenderPassBeginInfo renderpass_begin_info = {
.renderPass = state.renderpass,
.framebuffer = state.framebuffer,
.renderArea = state.render_area,
.clearValueCount = 1,
.pClearValues = &state.clear,
};
const vk::RenderPassBeginInfo renderpass_begin_info = {
.renderPass = state.renderpass,
.framebuffer = state.framebuffer,
.renderArea = state.render_area,
.clearValueCount = 1,
.pClearValues = &state.clear,
};
cmdbuf.beginRenderPass(renderpass_begin_info, vk::SubpassContents::eInline);
});
cmdbuf.beginRenderPass(renderpass_begin_info, vk::SubpassContents::eInline);
});
if (is_dirty) {
scheduler.MarkStateNonDirty(StateFlags::Renderpass);