engine->logical_mask = BIT(logical_instance);
        __sprint_engine_name(engine);
 
+       if ((engine->class == COMPUTE_CLASS && !RCS_MASK(engine->gt) &&
+            __ffs(CCS_MASK(engine->gt)) == engine->instance) ||
+            engine->class == RENDER_CLASS)
+               engine->flags |= I915_ENGINE_FIRST_RENDER_COMPUTE;
+
+       /* features common between engines sharing EUs */
+       if (engine->class == RENDER_CLASS || engine->class == COMPUTE_CLASS) {
+               engine->flags |= I915_ENGINE_HAS_RCS_REG_STATE;
+               engine->flags |= I915_ENGINE_HAS_EU_PRIORITY;
+       }
+
        engine->props.heartbeat_interval_ms =
                CONFIG_DRM_I915_HEARTBEAT_INTERVAL;
        engine->props.max_busywait_duration_ns =
                CONFIG_DRM_I915_TIMESLICE_DURATION;
 
        /* Override to uninterruptible for OpenCL workloads. */
-       if (GRAPHICS_VER(i915) == 12 && engine->class == RENDER_CLASS)
+       if (GRAPHICS_VER(i915) == 12 && (engine->flags & I915_ENGINE_HAS_RCS_REG_STATE))
                engine->props.preempt_timeout_ms = 0;
 
-       if ((engine->class == COMPUTE_CLASS && !RCS_MASK(engine->gt) &&
-            __ffs(CCS_MASK(engine->gt)) == engine->instance) ||
-            engine->class == RENDER_CLASS)
-               engine->flags |= I915_ENGINE_FIRST_RENDER_COMPUTE;
-
-       /* features common between engines sharing EUs */
-       if (engine->class == RENDER_CLASS || engine->class == COMPUTE_CLASS) {
-               engine->flags |= I915_ENGINE_HAS_RCS_REG_STATE;
-               engine->flags |= I915_ENGINE_HAS_EU_PRIORITY;
-       }
-
        /* Cap properties according to any system limits */
 #define CLAMP_PROP(field) \
        do { \