Home
last modified time | relevance | path

Searched refs:nvc0 (Results 1 – 25 of 30) sorted by relevance

12

/external/mesa3d/src/gallium/drivers/nouveau/nvc0/
Dnvc0_context.c36 struct nvc0_context *nvc0 = nvc0_context(pipe); in nvc0_flush() local
37 struct nouveau_screen *screen = &nvc0->screen->base; in nvc0_flush()
42 PUSH_KICK(nvc0->base.pushbuf); /* fencing handled in kick_notify */ in nvc0_flush()
44 nouveau_context_update_frame_stats(&nvc0->base); in nvc0_flush()
59 struct nvc0_context *nvc0 = nvc0_context(pipe); in nvc0_memory_barrier() local
60 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nvc0_memory_barrier()
64 for (i = 0; i < nvc0->num_vtxbufs; ++i) { in nvc0_memory_barrier()
65 if (!nvc0->vtxbuf[i].buffer.resource && !nvc0->vtxbuf[i].is_user_buffer) in nvc0_memory_barrier()
67 if (nvc0->vtxbuf[i].buffer.resource->flags & PIPE_RESOURCE_FLAG_MAP_PERSISTENT) in nvc0_memory_barrier()
68 nvc0->base.vbo_dirty = true; in nvc0_memory_barrier()
[all …]
Dnvc0_state_validate.c10 nvc0_validate_zcull(struct nvc0_context *nvc0)
12 struct nouveau_pushbuf *push = nvc0->base.pushbuf;
13 struct pipe_framebuffer_state *fb = &nvc0->framebuffer;
75 nvc0_validate_fb(struct nvc0_context *nvc0) in nvc0_validate_fb() argument
77 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nvc0_validate_fb()
78 struct pipe_framebuffer_state *fb = &nvc0->framebuffer; in nvc0_validate_fb()
79 struct nvc0_screen *screen = nvc0->screen; in nvc0_validate_fb()
85 nouveau_bufctx_reset(nvc0->bufctx_3d, NVC0_BIND_3D_FB); in nvc0_validate_fb()
148 BCTX_REFN(nvc0->bufctx_3d, 3D_FB, res, WR); in nvc0_validate_fb()
179 BCTX_REFN(nvc0->bufctx_3d, 3D_FB, &mt->base, WR); in nvc0_validate_fb()
[all …]
Dnvc0_shader_state.c34 nvc0_program_update_context_state(struct nvc0_context *nvc0, in nvc0_program_update_context_state() argument
38 const uint32_t flags = NV_VRAM_DOMAIN(&nvc0->screen->base) | NOUVEAU_BO_RDWR; in nvc0_program_update_context_state()
39 if (!nvc0->state.tls_required) in nvc0_program_update_context_state()
40 BCTX_REFN_bo(nvc0->bufctx_3d, 3D_TLS, flags, nvc0->screen->tls); in nvc0_program_update_context_state()
41 nvc0->state.tls_required |= 1 << stage; in nvc0_program_update_context_state()
43 if (nvc0->state.tls_required == (1 << stage)) in nvc0_program_update_context_state()
44 nouveau_bufctx_reset(nvc0->bufctx_3d, NVC0_BIND_3D_TLS); in nvc0_program_update_context_state()
45 nvc0->state.tls_required &= ~(1 << stage); in nvc0_program_update_context_state()
50 nvc0_program_validate(struct nvc0_context *nvc0, struct nvc0_program *prog) in nvc0_program_validate() argument
57 prog, nvc0->screen->base.device->chipset, &nvc0->base.debug); in nvc0_program_validate()
[all …]
Dnvc0_vbo.c171 nvc0_set_constant_vertex_attrib(struct nvc0_context *nvc0, const unsigned a) in nvc0_set_constant_vertex_attrib() argument
173 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nvc0_set_constant_vertex_attrib()
174 struct pipe_vertex_element *ve = &nvc0->vertex->element[a].pipe; in nvc0_set_constant_vertex_attrib()
175 struct pipe_vertex_buffer *vb = &nvc0->vtxbuf[ve->vertex_buffer_index]; in nvc0_set_constant_vertex_attrib()
204 nvc0_user_vbuf_range(struct nvc0_context *nvc0, int vbi, in nvc0_user_vbuf_range() argument
207 if (unlikely(nvc0->vertex->instance_bufs & (1 << vbi))) { in nvc0_user_vbuf_range()
208 const uint32_t div = nvc0->vertex->min_instance_div[vbi]; in nvc0_user_vbuf_range()
209 *base = nvc0->instance_off * nvc0->vtxbuf[vbi].stride; in nvc0_user_vbuf_range()
210 *size = (nvc0->instance_max / div) * nvc0->vtxbuf[vbi].stride + in nvc0_user_vbuf_range()
211 nvc0->vertex->vb_access_size[vbi]; in nvc0_user_vbuf_range()
[all …]
Dnvc0_state.c196 struct nvc0_context *nvc0 = nvc0_context(pipe); in nvc0_blend_state_bind() local
198 nvc0->blend = hwcso; in nvc0_blend_state_bind()
199 nvc0->dirty_3d |= NVC0_NEW_3D_BLEND; in nvc0_blend_state_bind()
334 struct nvc0_context *nvc0 = nvc0_context(pipe); in nvc0_rasterizer_state_bind() local
336 nvc0->rast = hwcso; in nvc0_rasterizer_state_bind()
337 nvc0->dirty_3d |= NVC0_NEW_3D_RASTERIZER; in nvc0_rasterizer_state_bind()
412 struct nvc0_context *nvc0 = nvc0_context(pipe); in nvc0_zsa_state_bind() local
414 nvc0->zsa = hwcso; in nvc0_zsa_state_bind()
415 nvc0->dirty_3d |= NVC0_NEW_3D_ZSA; in nvc0_zsa_state_bind()
446 nvc0_stage_sampler_states_bind(struct nvc0_context *nvc0, in nvc0_stage_sampler_states_bind() argument
[all …]
Dnvc0_compute.c144 nvc0_compute_validate_samplers(struct nvc0_context *nvc0) in nvc0_compute_validate_samplers() argument
146 bool need_flush = nvc0_validate_tsc(nvc0, 5); in nvc0_compute_validate_samplers()
148 BEGIN_NVC0(nvc0->base.pushbuf, NVC0_CP(TSC_FLUSH), 1); in nvc0_compute_validate_samplers()
149 PUSH_DATA (nvc0->base.pushbuf, 0); in nvc0_compute_validate_samplers()
154 nvc0->samplers_dirty[s] = ~0; in nvc0_compute_validate_samplers()
155 nvc0->dirty_3d |= NVC0_NEW_3D_SAMPLERS; in nvc0_compute_validate_samplers()
159 nvc0_compute_validate_textures(struct nvc0_context *nvc0) in nvc0_compute_validate_textures() argument
161 bool need_flush = nvc0_validate_tic(nvc0, 5); in nvc0_compute_validate_textures()
163 BEGIN_NVC0(nvc0->base.pushbuf, NVC0_CP(TIC_FLUSH), 1); in nvc0_compute_validate_textures()
164 PUSH_DATA (nvc0->base.pushbuf, 0); in nvc0_compute_validate_textures()
[all …]
Dnve4_compute.c195 gm107_compute_validate_surfaces(struct nvc0_context *nvc0, in gm107_compute_validate_surfaces() argument
199 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in gm107_compute_validate_surfaces()
200 struct nvc0_screen *screen = nvc0->screen; in gm107_compute_validate_surfaces()
201 struct nouveau_bo *txc = nvc0->screen->txc; in gm107_compute_validate_surfaces()
206 tic = nv50_tic_entry(nvc0->images_tic[s][slot]); in gm107_compute_validate_surfaces()
209 nvc0_update_tic(nvc0, tic, res); in gm107_compute_validate_surfaces()
212 tic->id = nvc0_screen_tic_alloc(nvc0->screen, tic); in gm107_compute_validate_surfaces()
233 nvc0->screen->tic.lock[tic->id / 32] |= 1 << (tic->id % 32); in gm107_compute_validate_surfaces()
238 BCTX_REFN(nvc0->bufctx_cp, CP_SUF, res, RD); in gm107_compute_validate_surfaces()
258 nve4_compute_validate_surfaces(struct nvc0_context *nvc0) in nve4_compute_validate_surfaces() argument
[all …]
Dnvc0_tex.c455 nvc0_update_tic(struct nvc0_context *nvc0, struct nv50_tic_entry *tic, in nvc0_update_tic() argument
471 nvc0->base.push_data(&nvc0->base, nvc0->screen->txc, tic->id * 32, in nvc0_update_tic()
472 NV_VRAM_DOMAIN(&nvc0->screen->base), 32, in nvc0_update_tic()
481 nvc0_validate_tic(struct nvc0_context *nvc0, int s) in nvc0_validate_tic() argument
484 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nvc0_validate_tic()
489 for (i = 0; i < nvc0->num_textures[s]; ++i) { in nvc0_validate_tic()
490 struct nv50_tic_entry *tic = nv50_tic_entry(nvc0->textures[s][i]); in nvc0_validate_tic()
492 const bool dirty = !!(nvc0->textures_dirty[s] & (1 << i)); in nvc0_validate_tic()
500 need_flush |= nvc0_update_tic(nvc0, tic, res); in nvc0_validate_tic()
503 tic->id = nvc0_screen_tic_alloc(nvc0->screen, tic); in nvc0_validate_tic()
[all …]
Dnvc0_surface.c204 struct nvc0_context *nvc0 = nvc0_context(pipe); in nvc0_resource_copy_region() local
210 nouveau_copy_buffer(&nvc0->base, in nvc0_resource_copy_region()
213 NOUVEAU_DRV_STAT(&nvc0->screen->base, buf_copy_bytes, src_box->width); in nvc0_resource_copy_region()
216 NOUVEAU_DRV_STAT(&nvc0->screen->base, tex_copy_count, 1); in nvc0_resource_copy_region()
242 nvc0->m2mf_copy_rect(nvc0, &drect, &srect, nx, ny); in nvc0_resource_copy_region()
260 BCTX_REFN(nvc0->bufctx, 2D, nv04_resource(src), RD); in nvc0_resource_copy_region()
261 BCTX_REFN(nvc0->bufctx, 2D, nv04_resource(dst), WR); in nvc0_resource_copy_region()
262 nouveau_pushbuf_bufctx(nvc0->base.pushbuf, nvc0->bufctx); in nvc0_resource_copy_region()
263 nouveau_pushbuf_validate(nvc0->base.pushbuf); in nvc0_resource_copy_region()
266 ret = nvc0_2d_texture_do_copy(nvc0->base.pushbuf, in nvc0_resource_copy_region()
[all …]
Dnvc0_query_hw.c39 nvc0_hw_query_allocate(struct nvc0_context *nvc0, struct nvc0_query *q, in nvc0_hw_query_allocate() argument
43 struct nvc0_screen *screen = nvc0->screen; in nvc0_hw_query_allocate()
65 nvc0_hw_query_allocate(nvc0, q, 0); in nvc0_hw_query_allocate()
91 nvc0_hw_query_rotate(struct nvc0_context *nvc0, struct nvc0_query *q) in nvc0_hw_query_rotate() argument
98 nvc0_hw_query_allocate(nvc0, q, NVC0_HW_QUERY_ALLOC_SPACE); in nvc0_hw_query_rotate()
116 nvc0_hw_destroy_query(struct nvc0_context *nvc0, struct nvc0_query *q) in nvc0_hw_destroy_query() argument
121 hq->funcs->destroy_query(nvc0, hq); in nvc0_hw_destroy_query()
125 nvc0_hw_query_allocate(nvc0, q, 0); in nvc0_hw_destroy_query()
131 nvc0_hw_begin_query(struct nvc0_context *nvc0, struct nvc0_query *q) in nvc0_hw_begin_query() argument
133 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nvc0_hw_begin_query()
[all …]
Dnvc0_vbo_translate.c42 nvc0_push_context_init(struct nvc0_context *nvc0, struct push_context *ctx) in nvc0_push_context_init() argument
44 ctx->push = nvc0->base.pushbuf; in nvc0_push_context_init()
46 ctx->translate = nvc0->vertex->translate; in nvc0_push_context_init()
47 ctx->vertex_size = nvc0->vertex->size; in nvc0_push_context_init()
51 nvc0->vertprog->vp.need_vertex_id && (nvc0->vertex->num_elements < 32); in nvc0_push_context_init()
54 ctx->edgeflag.enabled = nvc0->vertprog->vp.edgeflag < PIPE_MAX_ATTRIBS; in nvc0_push_context_init()
63 nvc0_vertex_configure_translate(struct nvc0_context *nvc0, int32_t index_bias) in nvc0_vertex_configure_translate() argument
65 struct translate *translate = nvc0->vertex->translate; in nvc0_vertex_configure_translate()
68 for (i = 0; i < nvc0->num_vtxbufs; ++i) { in nvc0_vertex_configure_translate()
70 const struct pipe_vertex_buffer *vb = &nvc0->vtxbuf[i]; in nvc0_vertex_configure_translate()
[all …]
Dnvc0_transfer.c15 nvc0_m2mf_transfer_rect(struct nvc0_context *nvc0, in nvc0_m2mf_transfer_rect() argument
20 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nvc0_m2mf_transfer_rect()
21 struct nouveau_bufctx *bctx = nvc0->bufctx; in nvc0_m2mf_transfer_rect()
110 nve4_m2mf_transfer_rect(struct nvc0_context *nvc0, in nve4_m2mf_transfer_rect() argument
129 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nve4_m2mf_transfer_rect()
130 struct nouveau_bufctx *bctx = nvc0->bufctx; in nve4_m2mf_transfer_rect()
203 struct nvc0_context *nvc0 = nvc0_context(&nv->pipe); in nvc0_m2mf_push_linear() local
208 nouveau_bufctx_refn(nvc0->bufctx, 0, dst, domain | NOUVEAU_BO_WR); in nvc0_m2mf_push_linear()
209 nouveau_pushbuf_bufctx(push, nvc0->bufctx); in nvc0_m2mf_push_linear()
237 nouveau_bufctx_reset(nvc0->bufctx, 0); in nvc0_m2mf_push_linear()
[all …]
Dnvc0_query.c37 struct nvc0_context *nvc0 = nvc0_context(pipe); in nvc0_create_query() local
40 q = nvc0_sw_create_query(nvc0, type, index); in nvc0_create_query()
42 q = nvc0_hw_create_query(nvc0, type, index); in nvc0_create_query()
100 struct nvc0_context *nvc0 = nvc0_context(pipe); in nvc0_render_condition() local
101 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nvc0_render_condition()
140 nvc0->cond_query = pq; in nvc0_render_condition()
141 nvc0->cond_cond = condition; in nvc0_render_condition()
142 nvc0->cond_condmode = cond; in nvc0_render_condition()
143 nvc0->cond_mode = mode; in nvc0_render_condition()
148 if (nvc0->screen->compute) in nvc0_render_condition()
[all …]
Dnvc0_program.c705 nvc0_program_alloc_code(struct nvc0_context *nvc0, struct nvc0_program *prog) in nvc0_program_alloc_code() argument
707 struct nvc0_screen *screen = nvc0->screen; in nvc0_program_alloc_code()
749 nvc0_program_upload_code(struct nvc0_context *nvc0, struct nvc0_program *prog) in nvc0_program_upload_code() argument
751 struct nvc0_screen *screen = nvc0->screen; in nvc0_program_upload_code()
778 nvc0->base.push_data(&nvc0->base, screen->text, prog->code_base, in nvc0_program_upload_code()
782 nvc0->base.push_data(&nvc0->base, screen->text, code_pos, in nvc0_program_upload_code()
788 nvc0_program_upload(struct nvc0_context *nvc0, struct nvc0_program *prog) in nvc0_program_upload() argument
790 struct nvc0_screen *screen = nvc0->screen; in nvc0_program_upload()
795 ret = nvc0_program_alloc_code(nvc0, prog); in nvc0_program_upload()
799 nvc0->compprog, nvc0->vertprog, nvc0->tctlprog, in nvc0_program_upload()
[all …]
Dnvc0_query_sw.c68 nvc0_sw_destroy_query(struct nvc0_context *nvc0, struct nvc0_query *q) in nvc0_sw_destroy_query() argument
75 nvc0_sw_begin_query(struct nvc0_context *nvc0, struct nvc0_query *q) in nvc0_sw_begin_query() argument
81 sq->value = nvc0->screen->base.stats.v[q->index]; in nvc0_sw_begin_query()
90 nvc0_sw_end_query(struct nvc0_context *nvc0, struct nvc0_query *q) in nvc0_sw_end_query() argument
94 sq->value = nvc0->screen->base.stats.v[q->index] - sq->value; in nvc0_sw_end_query()
99 nvc0_sw_get_query_result(struct nvc0_context *nvc0, struct nvc0_query *q, in nvc0_sw_get_query_result() argument
Dnvc0_query_hw_sm.c2278 nvc0_hw_sm_query_get_cfg(struct nvc0_context *nvc0, struct nvc0_hw_query *hq) in nvc0_hw_sm_query_get_cfg() argument
2281 struct nvc0_screen *screen = nvc0->screen; in nvc0_hw_sm_query_get_cfg()
2298 nvc0_hw_sm_destroy_query(struct nvc0_context *nvc0, struct nvc0_hw_query *hq) in nvc0_hw_sm_destroy_query() argument
2301 nvc0_hw_query_allocate(nvc0, q, 0); in nvc0_hw_sm_destroy_query()
2307 nve4_hw_sm_begin_query(struct nvc0_context *nvc0, struct nvc0_hw_query *hq) in nve4_hw_sm_begin_query() argument
2309 struct nvc0_screen *screen = nvc0->screen; in nve4_hw_sm_begin_query()
2310 struct nouveau_pushbuf *push = nvc0->base.pushbuf; in nve4_hw_sm_begin_query()
2316 cfg = nvc0_hw_sm_query_get_cfg(nvc0, hq); in nve4_hw_sm_begin_query()
2392 nvc0_hw_sm_begin_query(struct nvc0_context *nvc0, struct nvc0_hw_query *hq) in nvc0_hw_sm_begin_query() argument
2394 struct nvc0_screen *screen = nvc0->screen; in nvc0_hw_sm_begin_query()
[all …]
Dnvc0_query_hw_metric.c441 nvc0_hw_metric_query_get_cfg(struct nvc0_context *nvc0, struct nvc0_hw_query *hq) in nvc0_hw_metric_query_get_cfg() argument
444 struct nvc0_screen *screen = nvc0->screen; in nvc0_hw_metric_query_get_cfg()
461 nvc0_hw_metric_destroy_query(struct nvc0_context *nvc0, in nvc0_hw_metric_destroy_query() argument
469 hmq->queries[i]->funcs->destroy_query(nvc0, hmq->queries[i]); in nvc0_hw_metric_destroy_query()
474 nvc0_hw_metric_begin_query(struct nvc0_context *nvc0, struct nvc0_hw_query *hq) in nvc0_hw_metric_begin_query() argument
481 ret = hmq->queries[i]->funcs->begin_query(nvc0, hmq->queries[i]); in nvc0_hw_metric_begin_query()
489 nvc0_hw_metric_end_query(struct nvc0_context *nvc0, struct nvc0_hw_query *hq) in nvc0_hw_metric_end_query() argument
495 hmq->queries[i]->funcs->end_query(nvc0, hmq->queries[i]); in nvc0_hw_metric_end_query()
663 nvc0_hw_metric_get_query_result(struct nvc0_context *nvc0, in nvc0_hw_metric_get_query_result() argument
668 struct nvc0_screen *screen = nvc0->screen; in nvc0_hw_metric_get_query_result()
[all …]
Dnvc0_video_bsp.c71 cfg.nvc0.tile_mode = 0x10; in nvc0_decoder_bsp_next()
72 cfg.nvc0.memtype = 0xfe; in nvc0_decoder_bsp_next()
107 cfg.nvc0.tile_mode = 0x10; in nvc0_decoder_bsp_next()
108 cfg.nvc0.memtype = 0xfe; in nvc0_decoder_bsp_next()
Dnvc0_context.h353 bool nvc0_validate_tic(struct nvc0_context *nvc0, int s);
354 bool nvc0_validate_tsc(struct nvc0_context *nvc0, int s);
355 bool nve4_validate_tsc(struct nvc0_context *nvc0, int s);
356 void nvc0_validate_suf(struct nvc0_context *nvc0, int s);
Dnvc0_miptree.c283 bo_config.nvc0.memtype = nvc0_mt_choose_storage_type(mt, compressed); in nvc0_miptree_create()
293 if (likely(bo_config.nvc0.memtype)) { in nvc0_miptree_create()
300 bo_config.nvc0.tile_mode = mt->level[0].tile_mode; in nvc0_miptree_create()
302 if (!bo_config.nvc0.memtype && (pt->usage == PIPE_USAGE_STAGING || pt->bind & PIPE_BIND_SHARED)) in nvc0_miptree_create()
/external/mesa3d/src/gallium/drivers/nouveau/
DMakefile.sources150 nvc0/gm107_texture.xml.h \
151 nvc0/nvc0_3d.xml.h \
152 nvc0/nvc0_compute.c \
153 nvc0/nvc0_compute.xml.h \
154 nvc0/nvc0_context.c \
155 nvc0/nvc0_context.h \
156 nvc0/nvc0_formats.c \
157 nvc0/nvc0_m2mf.xml.h \
158 nvc0/nvc0_macros.h \
159 nvc0/nvc0_miptree.c \
[all …]
Dmeson.build160 'nvc0/gm107_texture.xml.h',
161 'nvc0/nvc0_3d.xml.h',
162 'nvc0/nvc0_compute.c',
163 'nvc0/nvc0_compute.xml.h',
164 'nvc0/nvc0_context.c',
165 'nvc0/nvc0_context.h',
166 'nvc0/nvc0_formats.c',
167 'nvc0/nvc0_m2mf.xml.h',
168 'nvc0/nvc0_macros.h',
169 'nvc0/nvc0_miptree.c',
[all …]
DMakefile.am53 EXTRA_DIST = codegen/lib nvc0/mme meson.build
/external/mesa3d/docs/
Dfeatures.txt36 GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
68 GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
81 GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
96 GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
110 GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi
139 GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi
149 GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi
165 GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
191 GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, radeonsi
209 GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
[all …]
/external/libdrm/nouveau/
Dabi16.c63 struct nvc0_fifo *nvc0 = obj->data; in abi16_chan_nvc0() local
71 nvc0->base.channel = req.channel; in abi16_chan_nvc0()
72 nvc0->base.pushbuf = req.pushbuf_domains; in abi16_chan_nvc0()
73 nvc0->notify = req.notifier_handle; in abi16_chan_nvc0()
74 nvc0->base.object->handle = req.channel; in abi16_chan_nvc0()
75 nvc0->base.object->length = sizeof(*nvc0); in abi16_chan_nvc0()
293 bo->config.nvc0.memtype = (info->tile_flags & 0xff00) >> 8; in abi16_bo_info()
294 bo->config.nvc0.tile_mode = info->tile_mode; in abi16_bo_info()
338 info->tile_flags = (config->nvc0.memtype & 0xff) << 8; in abi16_bo_init()
339 info->tile_mode = config->nvc0.tile_mode; in abi16_bo_init()

12