Display the current post in browser as the first post in a loop (for a slideshow)

You can most probably reuse the loop and run it twice. The first time to display the queried post and the second time to display the rest

// Get the current post id being viewed
$current_post_id = get_queried_object_id();

// Define your query and query arguments
$args = [
    // All your arguments
];
$q = new WP_Query( $args );

if ( $q->have_posts() ) {
    // Run the loop for the first time to display the post equal to the queried one
    while ( $q->have_posts() ) {
    $q->the_post();

        if ( get_the_ID() == $current_post_id ) {
            // Display the post equal to the queried one
        }

    } // endwhile

    // Rewind the loop so that we can run it again
    $q->rewind_posts();

    // Run the loop for the second time to display all the other posts
    while ( $q->have_posts() ) {
    $q->the_post();

        if ( get_the_ID() != $current_post_id ) {
            // Display all the other posts skipping the queried one
        }

    } // endwhile

    // Clean after ourselves, good housekeeping
    wp_reset_postdata();
} // endif