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::PhysicalDevicePortabilitySubsetFeaturesKHR>(),
|
||||||
feature_chain.get<vk::PhysicalDeviceTimelineSemaphoreFeaturesKHR>(),
|
vk::PhysicalDeviceTimelineSemaphoreFeaturesKHR{
|
||||||
feature_chain.get<vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>(),
|
.timelineSemaphore = true,
|
||||||
feature_chain.get<vk::PhysicalDeviceCustomBorderColorFeaturesEXT>(),
|
},
|
||||||
feature_chain.get<vk::PhysicalDeviceIndexTypeUint8FeaturesEXT>(),
|
vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT{
|
||||||
feature_chain.get<vk::PhysicalDevicePipelineCreationCacheControlFeaturesEXT>(),
|
.extendedDynamicState = true,
|
||||||
|
},
|
||||||
|
vk::PhysicalDeviceCustomBorderColorFeaturesEXT{
|
||||||
|
.customBorderColors = true,
|
||||||
|
.customBorderColorWithoutFormat = true,
|
||||||
|
},
|
||||||
|
vk::PhysicalDeviceIndexTypeUint8FeaturesEXT{
|
||||||
|
.indexTypeUint8 = true,
|
||||||
|
},
|
||||||
|
vk::PhysicalDevicePipelineCreationCacheControlFeaturesEXT{
|
||||||
|
.pipelineCreationCacheControl = true,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (portability_subset) {
|
if (portability_subset) {
|
||||||
|
@ -93,16 +93,16 @@ void RenderpassCache::EnterRenderpass(const RenderpassState& state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scheduler.Record([state](vk::CommandBuffer cmdbuf) {
|
scheduler.Record([state](vk::CommandBuffer cmdbuf) {
|
||||||
const vk::RenderPassBeginInfo renderpass_begin_info = {
|
const vk::RenderPassBeginInfo renderpass_begin_info = {
|
||||||
.renderPass = state.renderpass,
|
.renderPass = state.renderpass,
|
||||||
.framebuffer = state.framebuffer,
|
.framebuffer = state.framebuffer,
|
||||||
.renderArea = state.render_area,
|
.renderArea = state.render_area,
|
||||||
.clearValueCount = 1,
|
.clearValueCount = 1,
|
||||||
.pClearValues = &state.clear,
|
.pClearValues = &state.clear,
|
||||||
};
|
};
|
||||||
|
|
||||||
cmdbuf.beginRenderPass(renderpass_begin_info, vk::SubpassContents::eInline);
|
cmdbuf.beginRenderPass(renderpass_begin_info, vk::SubpassContents::eInline);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (is_dirty) {
|
if (is_dirty) {
|
||||||
scheduler.MarkStateNonDirty(StateFlags::Renderpass);
|
scheduler.MarkStateNonDirty(StateFlags::Renderpass);
|
||||||
|
Reference in New Issue
Block a user