mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 03:50:13 +01:00
r600g: inline r600_bo_reference.
This relies on the reference member being first, so document it. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
ff298a66d7
commit
4707ae20ad
3 changed files with 15 additions and 13 deletions
|
|
@ -30,6 +30,7 @@
|
|||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <util/u_double_list.h>
|
||||
#include <util/u_inlines.h>
|
||||
#include <pipe/p_compiler.h>
|
||||
|
||||
#define RADEON_CTX_MAX_PM4 (64 * 1024 / 4)
|
||||
|
|
@ -103,14 +104,24 @@ struct r600_bo *r600_bo_handle(struct radeon *radeon,
|
|||
unsigned handle, unsigned *array_mode);
|
||||
void *r600_bo_map(struct radeon *radeon, struct r600_bo *bo, unsigned usage, void *ctx);
|
||||
void r600_bo_unmap(struct radeon *radeon, struct r600_bo *bo);
|
||||
void r600_bo_reference(struct radeon *radeon, struct r600_bo **dst,
|
||||
struct r600_bo *src);
|
||||
boolean r600_bo_get_winsys_handle(struct radeon *radeon, struct r600_bo *pb_bo,
|
||||
unsigned stride, struct winsys_handle *whandle);
|
||||
static INLINE unsigned r600_bo_offset(struct r600_bo *bo)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
void r600_bo_destroy(struct radeon *radeon, struct r600_bo *bo);
|
||||
|
||||
/* this relies on the pipe_reference being the first member of r600_bo */
|
||||
static INLINE void r600_bo_reference(struct radeon *radeon, struct r600_bo **dst, struct r600_bo *src)
|
||||
{
|
||||
struct r600_bo *old = *dst;
|
||||
|
||||
if (pipe_reference((struct pipe_reference *)(*dst), (struct pipe_reference *)src)) {
|
||||
r600_bo_destroy(radeon, old);
|
||||
}
|
||||
*dst = src;
|
||||
}
|
||||
|
||||
|
||||
/* R600/R700 STATES */
|
||||
|
|
|
|||
|
|
@ -180,16 +180,6 @@ void r600_bo_destroy(struct radeon *radeon, struct r600_bo *bo)
|
|||
free(bo);
|
||||
}
|
||||
|
||||
void r600_bo_reference(struct radeon *radeon, struct r600_bo **dst, struct r600_bo *src)
|
||||
{
|
||||
struct r600_bo *old = *dst;
|
||||
|
||||
if (pipe_reference(&(*dst)->reference, &src->reference)) {
|
||||
r600_bo_destroy(radeon, old);
|
||||
}
|
||||
*dst = src;
|
||||
}
|
||||
|
||||
boolean r600_bo_get_winsys_handle(struct radeon *radeon, struct r600_bo *bo,
|
||||
unsigned stride, struct winsys_handle *whandle)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -95,7 +95,8 @@ struct radeon_bo {
|
|||
};
|
||||
|
||||
struct r600_bo {
|
||||
struct pipe_reference reference;
|
||||
struct pipe_reference reference; /* this must be the first member for the r600_bo_reference inline to work */
|
||||
/* DO NOT MOVE THIS ^ */
|
||||
unsigned size;
|
||||
unsigned tiling_flags;
|
||||
unsigned kernel_pitch;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue