diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index acdbc240838..99fc2d2c8a1 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -2390,9 +2390,6 @@ zink_get_sample_pixel_grid(struct pipe_screen *pscreen, unsigned sample_count, static void init_driver_workarounds(struct zink_screen *screen) { - /* EXT_shader_object can't yet be used for feedback loop, so this must be per-app enabled */ - if (!screen->driconf.zink_shader_object_enable) - screen->info.have_EXT_shader_object = false; /* enable implicit sync for all non-mesa drivers */ screen->driver_workarounds.implicit_sync = true; switch (screen->info.driver_props.driverID) { @@ -2434,8 +2431,6 @@ init_driver_workarounds(struct zink_screen *screen) screen->info.dynamic_state3_feats.extendedDynamicState3LogicOpEnable && screen->info.dynamic_state2_feats.extendedDynamicState2LogicOp) screen->have_full_ds3 = true; - if (screen->info.have_EXT_shader_object) - screen->have_full_ds3 = true; if (screen->info.have_EXT_graphics_pipeline_library) screen->info.have_EXT_graphics_pipeline_library = screen->info.have_EXT_extended_dynamic_state && screen->info.have_EXT_extended_dynamic_state2 && @@ -3112,6 +3107,12 @@ zink_internal_create_screen(const struct pipe_screen_config *config) if (!screen->optimal_keys) screen->info.have_EXT_graphics_pipeline_library = false; + /* EXT_shader_object can't yet be used for feedback loop, so this must be per-app enabled */ + if (!screen->driconf.zink_shader_object_enable) + screen->info.have_EXT_shader_object = false; + if (screen->info.have_EXT_shader_object) + screen->have_full_ds3 = true; + screen->screen_id = p_atomic_inc_return(&num_screens); zink_tracing = screen->instance_info.have_EXT_debug_utils && (u_trace_is_enabled(U_TRACE_TYPE_PERFETTO) || u_trace_is_enabled(U_TRACE_TYPE_MARKERS));