• Home
  • Raw
  • Download

Lines Matching refs:surface

64 	return rtex->surface.level[level].offset +  in r600_texture_get_offset()
65 layer * rtex->surface.level[level].slice_size; in r600_texture_get_offset()
69 struct radeon_surface *surface, in r600_init_surface() argument
81 surface->npix_x = ptex->width0; in r600_init_surface()
82 surface->npix_y = ptex->height0; in r600_init_surface()
83 surface->npix_z = ptex->depth0; in r600_init_surface()
84 surface->blk_w = util_format_get_blockwidth(ptex->format); in r600_init_surface()
85 surface->blk_h = util_format_get_blockheight(ptex->format); in r600_init_surface()
86 surface->blk_d = 1; in r600_init_surface()
87 surface->array_size = 1; in r600_init_surface()
88 surface->last_level = ptex->last_level; in r600_init_surface()
93 surface->bpe = 4; /* stencil is allocated separately on evergreen */ in r600_init_surface()
95 surface->bpe = util_format_get_blocksize(ptex->format); in r600_init_surface()
97 if (surface->bpe == 3) { in r600_init_surface()
98 surface->bpe = 4; in r600_init_surface()
102 surface->nsamples = ptex->nr_samples ? ptex->nr_samples : 1; in r600_init_surface()
103 surface->flags = 0; in r600_init_surface()
107 surface->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_1D, MODE); in r600_init_surface()
110 surface->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_2D, MODE); in r600_init_surface()
113 surface->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_LINEAR_ALIGNED, MODE); in r600_init_surface()
117 surface->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_LINEAR, MODE); in r600_init_surface()
122 surface->flags |= RADEON_SURF_SET(RADEON_SURF_TYPE_1D, TYPE); in r600_init_surface()
126 surface->flags |= RADEON_SURF_SET(RADEON_SURF_TYPE_2D, TYPE); in r600_init_surface()
129 surface->flags |= RADEON_SURF_SET(RADEON_SURF_TYPE_3D, TYPE); in r600_init_surface()
132 surface->flags |= RADEON_SURF_SET(RADEON_SURF_TYPE_1D_ARRAY, TYPE); in r600_init_surface()
133 surface->array_size = ptex->array_size; in r600_init_surface()
136 surface->flags |= RADEON_SURF_SET(RADEON_SURF_TYPE_2D_ARRAY, TYPE); in r600_init_surface()
137 surface->array_size = ptex->array_size; in r600_init_surface()
140 surface->flags |= RADEON_SURF_SET(RADEON_SURF_TYPE_CUBEMAP, TYPE); in r600_init_surface()
147 surface->flags |= RADEON_SURF_SCANOUT; in r600_init_surface()
151 surface->flags |= RADEON_SURF_ZBUFFER; in r600_init_surface()
154 surface->flags |= RADEON_SURF_SBUFFER; in r600_init_surface()
169 r = rscreen->ws->surface_init(rscreen->ws, &rtex->surface); in r600_setup_surface()
173 rtex->size = rtex->surface.bo_size; in r600_setup_surface()
174 if (pitch_in_bytes_override && pitch_in_bytes_override != rtex->surface.level[0].pitch_bytes) { in r600_setup_surface()
178 rtex->surface.level[0].nblk_x = pitch_in_bytes_override / rtex->surface.bpe; in r600_setup_surface()
179 rtex->surface.level[0].pitch_bytes = pitch_in_bytes_override; in r600_setup_surface()
180 rtex->surface.level[0].slice_size = pitch_in_bytes_override * rtex->surface.level[0].nblk_y; in r600_setup_surface()
181 if (rtex->surface.flags & RADEON_SURF_SBUFFER) { in r600_setup_surface()
182 rtex->surface.stencil_offset = rtex->surface.level[0].slice_size; in r600_setup_surface()
186 switch (rtex->surface.level[i].mode) { in r600_setup_surface()
211 struct radeon_surface *surface = &rtex->surface; in r600_texture_get_handle() local
216 surface->level[0].mode >= RADEON_SURF_MODE_1D ? in r600_texture_get_handle()
218 surface->level[0].mode >= RADEON_SURF_MODE_2D ? in r600_texture_get_handle()
220 surface->bankw, surface->bankh, in r600_texture_get_handle()
221 surface->tile_split, in r600_texture_get_handle()
222 surface->stencil_tile_split, in r600_texture_get_handle()
223 surface->mtilea, in r600_texture_get_handle()
224 rtex->surface.level[0].pitch_bytes); in r600_texture_get_handle()
227 rtex->surface.level[0].pitch_bytes, whandle); in r600_texture_get_handle()
263 struct radeon_surface fmask = rtex->surface; in r600_texture_get_fmask_info()
344 unsigned pitch_elements = align(rtex->surface.npix_x, macro_tile_width); in r600_texture_get_cmask_info()
345 unsigned height = align(rtex->surface.npix_y, macro_tile_height); in r600_texture_get_cmask_info()
356 out->size = rtex->surface.array_size * align(slice_bytes, base_align); in r600_texture_get_cmask_info()
384 struct radeon_surface *surface) in r600_texture_create_object() argument
405 rtex->surface = *surface; in r600_texture_create_object()
426 unsigned base_align = rtex->surface.bo_alignment; in r600_texture_create_object()
452 struct radeon_surface surface; in r600_texture_create() local
472 r = r600_init_surface(rscreen, &surface, templ, array_mode, in r600_texture_create()
478 r = rscreen->ws->surface_best(rscreen->ws, &surface); in r600_texture_create()
483 0, NULL, TRUE, &surface); in r600_texture_create()
491 struct r600_surface *surface = CALLOC_STRUCT(r600_surface); in r600_create_surface() local
495 if (surface == NULL) in r600_create_surface()
497 pipe_reference_init(&surface->base.reference, 1); in r600_create_surface()
498 pipe_resource_reference(&surface->base.texture, texture); in r600_create_surface()
499 surface->base.context = pipe; in r600_create_surface()
500 surface->base.format = templ->format; in r600_create_surface()
501 surface->base.width = rtex->surface.level[level].npix_x; in r600_create_surface()
502 surface->base.height = rtex->surface.level[level].npix_y; in r600_create_surface()
503 surface->base.usage = templ->usage; in r600_create_surface()
504 surface->base.u = templ->u; in r600_create_surface()
505 return &surface->base; in r600_create_surface()
509 struct pipe_surface *surface) in r600_surface_destroy() argument
511 struct r600_surface *surf = (struct r600_surface*)surface; in r600_surface_destroy()
514 pipe_resource_reference(&surface->texture, NULL); in r600_surface_destroy()
515 FREE(surface); in r600_surface_destroy()
527 struct radeon_surface surface; in r600_texture_from_handle() local
540 &surface.bankw, &surface.bankh, in r600_texture_from_handle()
541 &surface.tile_split, in r600_texture_from_handle()
542 &surface.stencil_tile_split, in r600_texture_from_handle()
543 &surface.mtilea); in r600_texture_from_handle()
552 r = r600_init_surface(rscreen, &surface, templ, array_mode, false, false); in r600_texture_from_handle()
557 stride, buf, FALSE, &surface); in r600_texture_from_handle()
661 trans->transfer.stride = staging_depth->surface.level[level].pitch_bytes; in r600_texture_get_transfer()
697 ((struct r600_texture *)trans->staging)->surface.level[0].pitch_bytes; in r600_texture_get_transfer()
705 trans->transfer.stride = rtex->surface.level[level].pitch_bytes; in r600_texture_get_transfer()
706 trans->transfer.layer_stride = rtex->surface.level[level].slice_size; in r600_texture_get_transfer()