mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 19:30:11 +01:00
ilo: remove unnecessary tex_set_bo/buf_set_bo
Merge the bodies to tex_create_bo/buf_create_bo respectively.
This commit is contained in:
parent
b00d61151d
commit
3f79188854
1 changed files with 18 additions and 42 deletions
|
|
@ -861,8 +861,8 @@ tex_alloc_slices(struct ilo_texture *tex)
|
|||
return true;
|
||||
}
|
||||
|
||||
static struct intel_bo *
|
||||
tex_create_bo(const struct ilo_texture *tex,
|
||||
static bool
|
||||
tex_create_bo(struct ilo_texture *tex,
|
||||
const struct winsys_handle *handle)
|
||||
{
|
||||
struct ilo_screen *is = ilo_screen(tex->base.screen);
|
||||
|
|
@ -909,12 +909,9 @@ tex_create_bo(const struct ilo_texture *tex,
|
|||
tex->tiling, tex->bo_flags);
|
||||
}
|
||||
|
||||
return bo;
|
||||
}
|
||||
if (!bo)
|
||||
return false;
|
||||
|
||||
static void
|
||||
tex_set_bo(struct ilo_texture *tex, struct intel_bo *bo)
|
||||
{
|
||||
if (tex->bo)
|
||||
tex->bo->unreference(tex->bo);
|
||||
|
||||
|
|
@ -923,6 +920,8 @@ tex_set_bo(struct ilo_texture *tex, struct intel_bo *bo)
|
|||
/* winsys may decide to use a different tiling */
|
||||
tex->tiling = tex->bo->get_tiling(tex->bo);
|
||||
tex->bo_stride = tex->bo->get_pitch(tex->bo);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -943,7 +942,6 @@ tex_create(struct pipe_screen *screen,
|
|||
{
|
||||
struct tex_layout layout;
|
||||
struct ilo_texture *tex;
|
||||
struct intel_bo *bo;
|
||||
|
||||
tex = CALLOC_STRUCT(ilo_texture);
|
||||
if (!tex)
|
||||
|
|
@ -1003,15 +1001,12 @@ tex_create(struct pipe_screen *screen,
|
|||
|
||||
tex_layout_apply(&layout, tex);
|
||||
|
||||
bo = tex_create_bo(tex, handle);
|
||||
if (!bo) {
|
||||
if (!tex_create_bo(tex, handle)) {
|
||||
tex_free_slices(tex);
|
||||
FREE(tex);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
tex_set_bo(tex, bo);
|
||||
|
||||
/* allocate separate stencil resource */
|
||||
if (layout.separate_stencil) {
|
||||
struct pipe_resource s8_templ = *layout.templ;
|
||||
|
|
@ -1074,11 +1069,12 @@ tex_estimate_size(struct pipe_screen *screen,
|
|||
return tex_layout_estimate_size(&layout);
|
||||
}
|
||||
|
||||
static struct intel_bo *
|
||||
buf_create_bo(const struct ilo_buffer *buf)
|
||||
static bool
|
||||
buf_create_bo(struct ilo_buffer *buf)
|
||||
{
|
||||
struct ilo_screen *is = ilo_screen(buf->base.screen);
|
||||
const char *name;
|
||||
struct intel_bo *bo;
|
||||
|
||||
switch (buf->base.bind) {
|
||||
case PIPE_BIND_VERTEX_BUFFER:
|
||||
|
|
@ -1098,17 +1094,17 @@ buf_create_bo(const struct ilo_buffer *buf)
|
|||
break;
|
||||
}
|
||||
|
||||
return is->winsys->alloc_buffer(is->winsys,
|
||||
bo = is->winsys->alloc_buffer(is->winsys,
|
||||
name, buf->bo_size, buf->bo_flags);
|
||||
}
|
||||
if (!bo)
|
||||
return false;
|
||||
|
||||
static void
|
||||
buf_set_bo(struct ilo_buffer *buf, struct intel_bo *bo)
|
||||
{
|
||||
if (buf->bo)
|
||||
buf->bo->unreference(buf->bo);
|
||||
|
||||
buf->bo = bo;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -1122,7 +1118,6 @@ static struct pipe_resource *
|
|||
buf_create(struct pipe_screen *screen, const struct pipe_resource *templ)
|
||||
{
|
||||
struct ilo_buffer *buf;
|
||||
struct intel_bo *bo;
|
||||
|
||||
buf = CALLOC_STRUCT(ilo_buffer);
|
||||
if (!buf)
|
||||
|
|
@ -1135,14 +1130,11 @@ buf_create(struct pipe_screen *screen, const struct pipe_resource *templ)
|
|||
buf->bo_size = templ->width0;
|
||||
buf->bo_flags = 0;
|
||||
|
||||
bo = buf_create_bo(buf);
|
||||
if (!bo) {
|
||||
if (!buf_create_bo(buf)) {
|
||||
FREE(buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
buf_set_bo(buf, bo);
|
||||
|
||||
return &buf->base;
|
||||
}
|
||||
|
||||
|
|
@ -1224,33 +1216,17 @@ ilo_init_resource_functions(struct ilo_screen *is)
|
|||
bool
|
||||
ilo_buffer_alloc_bo(struct ilo_buffer *buf)
|
||||
{
|
||||
struct intel_bo *bo;
|
||||
|
||||
bo = buf_create_bo(buf);
|
||||
if (!bo)
|
||||
return false;
|
||||
|
||||
buf_set_bo(buf, bo);
|
||||
|
||||
return true;
|
||||
return buf_create_bo(buf);
|
||||
}
|
||||
|
||||
bool
|
||||
ilo_texture_alloc_bo(struct ilo_texture *tex)
|
||||
{
|
||||
struct intel_bo *bo;
|
||||
|
||||
/* a shared bo cannot be reallocated */
|
||||
if (tex->imported)
|
||||
return false;
|
||||
|
||||
bo = tex_create_bo(tex, NULL);
|
||||
if (!bo)
|
||||
return false;
|
||||
|
||||
tex_set_bo(tex, bo);
|
||||
|
||||
return true;
|
||||
return tex_create_bo(tex, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue