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:
@ -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) {
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user