vkd3d: Add static pipeline variant flag to pipeline key.

If we need to fallback in both VRS and non-VRS scenarios, we need to key
on it. Fixes segfault in DIRT5 when toggling VRS.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2021-10-12 12:20:57 +02:00
parent 3182882e21
commit a36b987bf1
2 changed files with 2 additions and 0 deletions

View File

@ -4157,6 +4157,7 @@ VkPipeline d3d12_pipeline_state_get_or_create_pipeline(struct d3d12_pipeline_sta
pipeline_key.dsv_format = dsv_format ? dsv_format->vk_format : VK_FORMAT_UNDEFINED;
pipeline_key.rtv_active_mask = state->graphics.rtv_active_mask & rtv_nonnull_mask;
pipeline_key.variant_flags = variant_flags;
if ((vk_pipeline = d3d12_pipeline_state_find_compiled_pipeline(state, &pipeline_key, render_pass_compat,
dynamic_state_flags)))

View File

@ -1578,6 +1578,7 @@ struct vkd3d_pipeline_key
uint32_t viewport_count;
uint32_t strides[D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT];
uint32_t rtv_active_mask;
uint32_t variant_flags;
VkFormat dsv_format;
bool dynamic_stride;