Lines Matching refs:cfg

190    agx_pack(out, RASTERIZER_FACE, cfg) {
191 cfg.depth_function = z_func;
192 cfg.disable_depth_write = disable_z_write;
195 cfg.stencil_write_mask = st.writemask;
196 cfg.stencil_read_mask = st.valuemask;
198 cfg.depth_pass = agx_stencil_ops[st.zpass_op];
199 cfg.depth_fail = agx_stencil_ops[st.zfail_op];
200 cfg.stencil_fail = agx_stencil_ops[st.fail_op];
202 cfg.stencil_compare = (enum agx_zs_func) st.func;
204 cfg.stencil_write_mask = 0xFF;
205 cfg.stencil_read_mask = 0xFF;
207 cfg.depth_pass = AGX_STENCIL_OP_KEEP;
208 cfg.depth_fail = AGX_STENCIL_OP_KEEP;
209 cfg.stencil_fail = AGX_STENCIL_OP_KEEP;
211 cfg.stencil_compare = AGX_ZS_FUNC_ALWAYS;
274 agx_pack(so->cull, CULL, cfg) {
275 cfg.cull_front = cso->cull_face & PIPE_FACE_FRONT;
276 cfg.cull_back = cso->cull_face & PIPE_FACE_BACK;
277 cfg.front_face_ccw = cso->front_ccw;
278 cfg.depth_clip = cso->depth_clip_near;
279 cfg.depth_clamp = !cso->depth_clip_near;
349 agx_pack(bo->ptr.cpu, SAMPLER, cfg) {
350 cfg.minimum_lod = state->min_lod;
351 cfg.maximum_lod = state->max_lod;
352 cfg.magnify_linear = (state->mag_img_filter == PIPE_TEX_FILTER_LINEAR);
353 cfg.minify_linear = (state->min_img_filter == PIPE_TEX_FILTER_LINEAR);
354 cfg.mip_filter = agx_mip_filter_from_pipe(state->min_mip_filter);
355 cfg.wrap_s = agx_wrap_from_pipe(state->wrap_s);
356 cfg.wrap_t = agx_wrap_from_pipe(state->wrap_t);
357 cfg.wrap_r = agx_wrap_from_pipe(state->wrap_r);
358 cfg.pixel_coordinates = !state->normalized_coords;
359 cfg.compare_func = agx_compare_funcs[state->compare_func];
474 agx_pack(so->desc->ptr.cpu, TEXTURE, cfg) {
475 cfg.dimension = agx_translate_texture_dimension(state->target);
476 cfg.layout = agx_translate_layout(rsrc->modifier);
477 cfg.format = agx_pixel_format[state->format].hw;
478 cfg.swizzle_r = agx_channel_from_pipe(out_swizzle[0]);
479 cfg.swizzle_g = agx_channel_from_pipe(out_swizzle[1]);
480 cfg.swizzle_b = agx_channel_from_pipe(out_swizzle[2]);
481 cfg.swizzle_a = agx_channel_from_pipe(out_swizzle[3]);
482 cfg.width = u_minify(texture->width0, level);
483 cfg.height = u_minify(texture->height0, level);
484 cfg.levels = state->u.tex.last_level - level + 1;
485 cfg.srgb = (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB);
486 cfg.address = agx_map_texture_gpu(rsrc, level, state->u.tex.first_layer);
487 cfg.unk_mipmapped = rsrc->mipmapped;
488 cfg.unk_2 = false;
491 cfg.depth = u_minify(texture->depth0, level);
493 cfg.depth = state->u.tex.last_layer - state->u.tex.first_layer + 1;
495 cfg.stride = (rsrc->modifier == DRM_FORMAT_MOD_LINEAR) ?
674 agx_pack(T.cpu, VIEWPORT, cfg) {
675 cfg.min_tile_x = minx / 32;
676 cfg.min_tile_y = miny / 32;
677 cfg.max_tile_x = DIV_ROUND_UP(maxx, 32);
678 cfg.max_tile_y = DIV_ROUND_UP(maxy, 32);
679 cfg.clip_tile = true;
681 cfg.translate_x = vp->translate[0];
682 cfg.translate_y = vp->translate[1];
683 cfg.scale_x = vp->scale[0];
684 cfg.scale_y = vp->scale[1];
688 cfg.translate_z = minz;
689 cfg.scale_z = maxz - minz;
696 agx_pack(ptr + index, SCISSOR, cfg) {
697 cfg.min_x = minx;
698 cfg.min_y = miny;
699 cfg.min_z = minz;
700 cfg.max_x = maxx;
701 cfg.max_y = maxy;
702 cfg.max_z = maxz;
718 agx_pack(ptr + index, DEPTH_BIAS, cfg) {
719 cfg.depth_bias = rast->offset_units;
720 cfg.slope_scale = rast->offset_scale;
721 cfg.clamp = rast->offset_clamp;
761 agx_pack(ctx->render_target[i], RENDER_TARGET, cfg) {
762 cfg.layout = agx_translate_layout(tex->modifier);
763 cfg.format = agx_pixel_format[surf->format].hw;
764 cfg.swizzle_r = agx_channel_from_pipe(desc->swizzle[0]);
765 cfg.swizzle_g = agx_channel_from_pipe(desc->swizzle[1]);
766 cfg.swizzle_b = agx_channel_from_pipe(desc->swizzle[2]);
767 cfg.swizzle_a = agx_channel_from_pipe(desc->swizzle[3]);
768 cfg.width = state->width;
769 cfg.height = state->height;
770 cfg.level = surf->u.tex.level;
771 cfg.buffer = agx_map_texture_gpu(tex, 0, layer);
774 cfg.unk_55 = 0x8;
776 cfg.stride = (tex->modifier == DRM_FORMAT_MOD_LINEAR) ?
954 agx_pack(packed_varyings, VARYING_HEADER, cfg) {
955 cfg.triangle_slots = cfg.point_slots = varyings->nr_slots;
1099 agx_pack(record, BIND_UNIFORM, cfg) {
1100 cfg.start_halfs = push.base + (j * halfs_per_record);
1101 cfg.size_halfs = MIN2(push.length - (j * halfs_per_record), halfs_per_record);
1102 cfg.buffer = buffer + (j * halfs_per_record * 2);
1115 agx_pack(record, BIND_TEXTURE, cfg) {
1116 cfg.start = i;
1117 cfg.count = 1;
1118 cfg.buffer = tex->desc->ptr.gpu;
1133 agx_pack(record, BIND_SAMPLER, cfg) {
1134 cfg.start = i;
1135 cfg.count = 1;
1136 cfg.buffer = bo->ptr.gpu;
1146 agx_pack(record, SET_SHADER_EXTENDED, cfg) {
1147 cfg.code = cs->bo->ptr.gpu;
1148 cfg.register_quadwords = 0;
1149 cfg.unk_3 = 0x8d;
1150 cfg.unk_1 = 0x2010bd;
1151 cfg.unk_2 = 0x0d;
1152 cfg.unk_2b = writes_sample_mask ? 5 : 1;
1153 cfg.fragment_parameters.early_z_testing = !writes_sample_mask;
1154 cfg.unk_3b = 0x1;
1155 cfg.unk_4 = 0x800;
1156 cfg.preshader_unk = 0xc080;
1157 cfg.spill_size = 0x2;
1162 agx_pack(record, SET_SHADER, cfg) {
1163 cfg.code = cs->bo->ptr.gpu;
1164 cfg.register_quadwords = 0;
1165 cfg.unk_2b = cs->info.varyings.nr_slots;
1166 cfg.unk_2 = 0x0d;
1189 agx_pack(record, BIND_UNIFORM, cfg) {
1190 cfg.start_halfs = (6 * 2);
1191 cfg.size_halfs = 4;
1192 cfg.buffer = clear_buf;
1198 agx_pack(record, SET_SHADER_EXTENDED, cfg) {
1199 cfg.code = code;
1200 cfg.register_quadwords = 1;
1201 cfg.unk_3 = 0x8d;
1202 cfg.unk_2 = 0x0d;
1203 cfg.unk_2b = 4;
1204 cfg.fragment_parameters.unk_1 = 0x880100;
1205 cfg.fragment_parameters.early_z_testing = false;
1206 cfg.fragment_parameters.unk_2 = false;
1207 cfg.fragment_parameters.unk_3 = 0;
1208 cfg.preshader_mode = 0; // XXX
1231 agx_pack(sampler.cpu, SAMPLER, cfg) {
1232 cfg.magnify_linear = true;
1233 cfg.minify_linear = false;
1234 cfg.mip_filter = AGX_MIP_FILTER_NONE;
1235 cfg.wrap_s = AGX_WRAP_CLAMP_TO_EDGE;
1236 cfg.wrap_t = AGX_WRAP_CLAMP_TO_EDGE;
1237 cfg.wrap_r = AGX_WRAP_CLAMP_TO_EDGE;
1238 cfg.pixel_coordinates = true;
1239 cfg.compare_func = AGX_COMPARE_FUNC_ALWAYS;
1240 cfg.unk_3 = 0;
1243 agx_pack(texture.cpu, TEXTURE, cfg) {
1255 cfg.dimension = AGX_TEXTURE_DIMENSION_2D;
1257 cfg.layout = agx_translate_layout(rsrc->modifier);
1258 cfg.format = agx_pixel_format[surf->format].hw;
1259 cfg.swizzle_r = agx_channel_from_pipe(desc->swizzle[0]);
1260 cfg.swizzle_g = agx_channel_from_pipe(desc->swizzle[1]);
1261 cfg.swizzle_b = agx_channel_from_pipe(desc->swizzle[2]);
1262 cfg.swizzle_a = agx_channel_from_pipe(desc->swizzle[3]);
1263 cfg.width = u_minify(surf->width, level);
1264 cfg.height = u_minify(surf->height, level);
1265 cfg.levels = 1;
1266 cfg.srgb = (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB);
1267 cfg.address = agx_map_texture_gpu(rsrc, level, layer);
1269 cfg.stride = (rsrc->modifier == DRM_FORMAT_MOD_LINEAR) ?
1274 agx_pack(record, BIND_TEXTURE, cfg) {
1275 cfg.start = 0;
1276 cfg.count = 1;
1277 cfg.buffer = texture.gpu;
1282 agx_pack(record, BIND_SAMPLER, cfg) {
1283 cfg.start = 0;
1284 cfg.count = 1;
1285 cfg.buffer = sampler.gpu;
1291 agx_pack(record, SET_SHADER_EXTENDED, cfg) {
1292 cfg.code = code;
1293 cfg.register_quadwords = 0;
1294 cfg.unk_3 = 0x8d;
1295 cfg.unk_2 = 0x0d;
1296 cfg.unk_2b = 4;
1297 cfg.unk_4 = 0;
1298 cfg.fragment_parameters.unk_1 = 0x880100;
1299 cfg.fragment_parameters.early_z_testing = false;
1300 cfg.fragment_parameters.unk_2 = false;
1301 cfg.fragment_parameters.unk_3 = 0;
1302 cfg.preshader_mode = 0; // XXX
1324 agx_pack(record, BIND_TEXTURE, cfg) {
1325 cfg.start = 0;
1326 cfg.count = 1;
1327 cfg.buffer = render_target;
1334 agx_pack(record, BIND_UNIFORM, cfg) {
1335 cfg.start_halfs = 4;
1336 cfg.size_halfs = 4;
1337 cfg.buffer = agx_pool_upload_aligned(&ctx->batch->pool, unk, sizeof(unk), 16);
1343 agx_pack(record, SET_SHADER_EXTENDED, cfg) {
1344 cfg.code = code;
1345 cfg.register_quadwords = 1;
1346 cfg.unk_2 = 0xd;
1347 cfg.unk_3 = 0x8d;
1348 cfg.fragment_parameters.unk_1 = 0x880100;
1349 cfg.fragment_parameters.early_z_testing = false;
1350 cfg.fragment_parameters.unk_2 = false;
1351 cfg.fragment_parameters.unk_3 = 0;
1352 cfg.preshader_mode = 0; // XXX
1367 agx_pack(t.cpu, BIND_PIPELINE, cfg) {
1368 cfg.tag = AGX_BIND_PIPELINE_FRAGMENT;
1369 cfg.sampler_count = ctx->stage[PIPE_SHADER_FRAGMENT].texture_count;
1370 cfg.texture_count = ctx->stage[PIPE_SHADER_FRAGMENT].texture_count;
1371 cfg.input_count = input_count;
1372 cfg.pipeline = pipeline;
1373 cfg.fs_varyings = varyings;
1384 agx_pack(t.cpu, INTERPOLATION, cfg) {
1385 cfg.varying_count = fs->info.varyings.nr_slots;
1396 agx_pack(t.cpu, LINKAGE, cfg) {
1397 cfg.varying_count = vs->info.varyings.nr_slots;
1400 cfg.unk_1 = 0x210000 | (vs->info.writes_psiz ? 0x40000 : 0);
1412 agx_pack(&out, RASTERIZER, cfg) {
1414 cfg.front.stencil_reference = ctx->stencil_ref.ref_value[0];
1415 cfg.back.stencil_reference = back_stencil ?
1417 cfg.front.stencil_reference;
1419 cfg.front.line_width = cfg.back.line_width = rast->line_width;
1420 cfg.front.polygon_mode = cfg.back.polygon_mode = AGX_POLYGON_MODE_FILL;
1422 cfg.unk_fill_lines = is_points; /* XXX: what is this? */
1427 cfg.scissor_enable = true;
1429 cfg.depth_bias_enable = rast->base.offset_tri;
1448 agx_pack(T.cpu, UNKNOWN_4A, cfg) {
1449 cfg.lines_or_points = (prim_lines || prim_points);
1450 cfg.reads_tilebuffer = reads_tib;
1451 cfg.sample_mask_from_shader = sample_mask_from_shader;
1453 cfg.front.lines = cfg.back.lines = prim_lines;
1454 cfg.front.points = cfg.back.points = prim_points;
1477 agx_pack(T.cpu, SET_INDEX, cfg) {
1478 cfg.scissor = scissor;
1479 cfg.depth_bias = zbias;
1491 agx_pack(*out, RECORD, cfg) {
1492 cfg.pointer_hi = (ptr >> 32);
1493 cfg.pointer_lo = (uint32_t) ptr;
1494 cfg.size_words = size_words;
1505 agx_pack(out, BIND_PIPELINE, cfg) {
1506 cfg.tag = AGX_BIND_PIPELINE_VERTEX;
1507 cfg.pipeline = pipeline_vertex;
1508 cfg.vs_output_count_1 = ctx->vs->info.varyings.nr_slots;
1509 cfg.vs_output_count_2 = ctx->vs->info.varyings.nr_slots;
1510 cfg.sampler_count = ctx->stage[PIPE_SHADER_VERTEX].texture_count;
1511 cfg.texture_count = ctx->stage[PIPE_SHADER_VERTEX].texture_count;
1649 agx_pack(out, INDEXED_DRAW, cfg) {
1650 cfg.restart_index = info->restart_index;
1651 cfg.unk_2a = (ib >> 32);
1652 cfg.primitive = prim;
1653 cfg.restart_enable = info->primitive_restart;
1654 cfg.index_size = __builtin_ctz(idx_size);
1655 cfg.index_buffer_offset = (ib & BITFIELD_MASK(32));
1656 cfg.index_buffer_size = ALIGN_POT(draws->count * idx_size, 4);
1657 cfg.index_count = draws->count;
1658 cfg.instance_count = info->instance_count;
1659 cfg.base_vertex = draws->index_bias;
1664 agx_pack(out, DRAW, cfg) {
1665 cfg.primitive = prim;
1666 cfg.vertex_start = draws->start;
1667 cfg.vertex_count = draws->count;
1668 cfg.instance_count = info->instance_count;