r600g: Add more (un)likely functions
authorConstantine Kharlamov <Hi-Angel@yandex.ru>
Sun, 26 Mar 2017 15:36:22 +0000 (18:36 +0300)
committerMarek Olšák <marek.olsak@amd.com>
Sun, 2 Apr 2017 22:36:25 +0000 (00:36 +0200)
1-st is obvious because of assert, 2-nd stolen frmo si_draw_vbo(),
and 3-rd is just a small refactoring.

Signed-off-by: Constantine Kharlamov <Hi-Angel@yandex.ru>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/r600/r600_state_common.c

index 2e32e6cb5ae93e06fd85e281f5cde3c4f677cc7a..096caed8d367bc5cebc3f1427ebd1a5c62e70d48 100644 (file)
@@ -1683,7 +1683,7 @@ static void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info
                return;
        }
 
-       if (!rctx->vs_shader || !rctx->ps_shader) {
+       if (unlikely(!rctx->vs_shader || !rctx->ps_shader)) {
                assert(0);
                return;
        }
@@ -1695,7 +1695,7 @@ static void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info
 
        /* Re-emit the framebuffer state if needed. */
        dirty_tex_counter = p_atomic_read(&rctx->b.screen->dirty_tex_counter);
-       if (dirty_tex_counter != rctx->b.last_dirty_tex_counter) {
+       if (unlikely(dirty_tex_counter != rctx->b.last_dirty_tex_counter)) {
                rctx->b.last_dirty_tex_counter = dirty_tex_counter;
                r600_mark_atom_dirty(rctx, &rctx->framebuffer.atom);
        }
@@ -1884,12 +1884,10 @@ static void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info
        }
 
        /* Draw packets. */
-       if (!info->indirect) {
+       if (likely(!info->indirect)) {
                radeon_emit(cs, PKT3(PKT3_NUM_INSTANCES, 0, 0));
                radeon_emit(cs, info->instance_count);
-       }
-
-       if (unlikely(info->indirect)) {
+       } else {
                uint64_t va = r600_resource(info->indirect)->gpu_address;
                assert(rctx->b.chip_class >= EVERGREEN);