Browse Source

i965/drm: Inline brw_bo_references.

It's a single atomic add, so it makes sense to inline it.

Improves performance in Piglit's drawoverhead microbenchmark's
"DrawArrays ( 1 VBO, 0 UBO,  0    ) w/ no state change" subtest by
0.400922% +/- 0.310389% (n=350) on my i7-7700HQ.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
tags/17.3-branchpoint
Kenneth Graunke 8 years ago
parent
commit
5281e4ed3b
2 changed files with 6 additions and 7 deletions
  1. 0
    6
      src/mesa/drivers/dri/i965/brw_bufmgr.c
  2. 6
    1
      src/mesa/drivers/dri/i965/brw_bufmgr.h

+ 0
- 6
src/mesa/drivers/dri/i965/brw_bufmgr.c View File

@@ -196,12 +196,6 @@ bucket_for_size(struct brw_bufmgr *bufmgr, uint64_t size)
return NULL;
}

inline void
brw_bo_reference(struct brw_bo *bo)
{
p_atomic_inc(&bo->refcount);
}

int
brw_bo_busy(struct brw_bo *bo)
{

+ 6
- 1
src/mesa/drivers/dri/i965/brw_bufmgr.h View File

@@ -37,6 +37,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include "util/u_atomic.h"
#include "util/list.h"

#if defined(__cplusplus)
@@ -188,7 +189,11 @@ struct brw_bo *brw_bo_alloc_tiled_2d(struct brw_bufmgr *bufmgr,
unsigned flags);

/** Takes a reference on a buffer object */
void brw_bo_reference(struct brw_bo *bo);
static inline void
brw_bo_reference(struct brw_bo *bo)
{
p_atomic_inc(&bo->refcount);
}

/**
* Releases a reference on a buffer object, freeing the data if

Loading…
Cancel
Save