/third_party/mesa3d/src/intel/compiler/ |
H A D | brw_fs_combine_constants.cpp | 49 could_coissue(const struct intel_device_info *devinfo, const fs_inst *inst) in could_coissue() argument 76 must_promote_imm(const struct intel_device_info *devinfo, const fs_inst *inst) in must_promote_imm() argument 215 get_constant_value(const struct intel_device_info *devinfo, in get_constant_value() argument 363 supports_src_as_imm(const struct intel_device_info *devinfo, enum opcode op) in supports_src_as_imm() argument 376 can_promote_src_as_imm(const struct intel_device_info *devinfo, fs_inst *inst, unsigned src_idx) can_promote_src_as_imm() argument [all...] |
H A D | brw_fs_scoreboard.cpp | 74 inferred_sync_pipe(const struct intel_device_info *devinfo, const fs_inst *inst) in inferred_sync_pipe() argument 106 inferred_exec_pipe(const struct intel_device_info *devinfo, const fs_inst *inst) in inferred_exec_pipe() argument 152 ordered_unit(const struct intel_device_info *devinfo, const fs_inst *inst, in ordered_unit() argument 390 assert(from < n); if (is[from] != from) assign(is[from], to); is[from] = to; } } unsigned *is; unsigned n; }; struct dependency { dependency() : ordered(TGL_REGDIST_NULL), jp(), unordered(TGL_SBID_NULL), id(0), exec_all(false) {} dependency(tgl_regdist_mode mode, const ordered_address &jp, bool exec_all) : ordered(mode), jp(jp), unordered(TGL_SBID_NULL), id(0), exec_all(exec_all) {} dependency(tgl_sbid_mode mode, unsigned id, bool exec_all) : ordered(TGL_REGDIST_NULL), jp(), unordered(mode), id(id), exec_all(exec_all) {} tgl_regdist_mode ordered; ordered_address jp; tgl_sbid_mode unordered; unsigned id; bool exec_all; static const dependency done; friend bool operator==(const dependency &dep0, const dependency &dep1) { return dep0.ordered == dep1.ordered && dep0.jp == dep1.jp && dep0.unordered == dep1.unordered && dep0.id == dep1.id && dep0.exec_all == dep1.exec_all; } friend bool operator!=(const dependency &dep0, const dependency &dep1) { return !(dep0 == dep1); } }; const dependency dependency::done = dependency(TGL_REGDIST_DST, ordered_address(), false); bool is_valid(const dependency &dep) { return dep.ordered || dep.unordered; } dependency merge(equivalence_relation &eq, const dependency &dep0, const dependency &dep1) { dependency dep; if (dep0.ordered || dep1.ordered) { dep.ordered = dep0.ordered | dep1.ordered; for (unsigned p = 0; p < IDX(TGL_PIPE_ALL); p++) dep.jp.jp[p] = MAX2(dep0.jp.jp[p], dep1.jp.jp[p]); } if (dep0.unordered || dep1.unordered) { dep.unordered = dep0.unordered | dep1.unordered; dep.id = eq.link(dep0.unordered ? dep0.id : dep1.id, dep1.unordered ? dep1.id : dep0.id); } dep.exec_all = dep0.exec_all || dep1.exec_all; return dep; } dependency shadow(const dependency &dep0, const dependency &dep1) { if (dep0.ordered == TGL_REGDIST_SRC && is_valid(dep1) && !(dep1.unordered & TGL_SBID_DST) && !(dep1.ordered & TGL_REGDIST_DST)) { dependency dep = dep1; dep.ordered |= dep0.ordered; for (unsigned p = 0; p < IDX(TGL_PIPE_ALL); p++) dep.jp.jp[p] = MAX2(dep.jp.jp[p], dep0.jp.jp[p]); return dep; } else { return is_valid(dep1) ? dep1 : dep0; } } dependency transport(dependency dep, int delta[IDX(TGL_PIPE_ALL)]) { if (dep.ordered) { for (unsigned p = 0; p < IDX(TGL_PIPE_ALL); p++) { if (dep.jp.jp[p] > INT_MIN) dep.jp.jp[p] += delta[p]; } } return dep; } dependency dependency_for_read(dependency dep) { dep.ordered &= TGL_REGDIST_DST; return dep; } dependency dependency_for_write(const struct intel_device_info *devinfo, const fs_inst *inst, dependency dep) { if (!is_unordered(inst) && is_single_pipe(dep.jp, inferred_exec_pipe(devinfo, inst))) dep.ordered &= TGL_REGDIST_DST; return dep; } class scoreboard { public: dependency get(const fs_reg &r) const { if (const dependency *p = const_cast<scoreboard *>(this)->dep(r)) return *p; else return dependency(); } void set(const fs_reg &r, const dependency &d) { if (dependency *p = dep(r)) *p = d; } friend scoreboard merge(equivalence_relation &eq, const scoreboard &sb0, const scoreboard &sb1) { scoreboard sb; for (unsigned i = 0; i < ARRAY_SIZE(sb.grf_deps); i++) sb.grf_deps[i] = merge(eq, sb0.grf_deps[i], sb1.grf_deps[i]); sb.addr_dep = merge(eq, sb0.addr_dep, sb1.addr_dep); sb.accum_dep = merge(eq, sb0.accum_dep, sb1.accum_dep); return sb; } friend scoreboard shadow(const scoreboard &sb0, const scoreboard &sb1) { scoreboard sb; for (unsigned i = 0; i < ARRAY_SIZE(sb.grf_deps); i++) sb.grf_deps[i] = shadow(sb0.grf_deps[i], sb1.grf_deps[i]); sb.addr_dep = shadow(sb0.addr_dep, sb1.addr_dep); sb.accum_dep = shadow(sb0.accum_dep, sb1.accum_dep); return sb; } friend scoreboard transport(const scoreboard &sb0, int delta[IDX(TGL_PIPE_ALL)]) { scoreboard sb; for (unsigned i = 0; i < ARRAY_SIZE(sb.grf_deps); i++) sb.grf_deps[i] = transport(sb0.grf_deps[i], delta); sb.addr_dep = transport(sb0.addr_dep, delta); sb.accum_dep = transport(sb0.accum_dep, delta); return sb; } friend bool operator==(const scoreboard &sb0, const scoreboard &sb1) { for (unsigned i = 0; i < ARRAY_SIZE(sb0.grf_deps); i++) { if (sb0.grf_deps[i] != sb1.grf_deps[i]) return false; } if (sb0.addr_dep != sb1.addr_dep) return false; if (sb0.accum_dep != sb1.accum_dep) return false; return true; } friend bool operator!=(const scoreboard &sb0, const scoreboard &sb1) { return !(sb0 == sb1); } private: dependency grf_deps[BRW_MAX_GRF]; dependency addr_dep; dependency accum_dep; dependency * dep(const fs_reg &r) { const unsigned reg = (r.file == VGRF ? r.nr + r.offset / REG_SIZE : reg_offset(r) / REG_SIZE); return (r.file == VGRF || r.file == FIXED_GRF ? &grf_deps[reg] : r.file == MRF ? &grf_deps[GFX7_MRF_HACK_START + reg] : r.file == ARF && reg >= BRW_ARF_ADDRESS && reg < BRW_ARF_ACCUMULATOR ? &addr_dep : r.file == ARF && reg >= BRW_ARF_ACCUMULATOR && reg < BRW_ARF_FLAG ? &accum_dep : NULL); } }; struct dependency_list { dependency_list() : deps(NULL), n(0) {} ~dependency_list() { free(deps); } void push_back(const dependency &dep) { deps = (dependency *)realloc(deps, (n + 1) * sizeof(*deps)); deps[n++] = dep; } unsigned size() const { return n; } const dependency & operator[](unsigned i) const { assert(i < n); return deps[i]; } dependency & operator[](unsigned i) { assert(i < n); return deps[i]; } private: dependency_list(const dependency_list &); dependency_list & operator=(const dependency_list &); dependency *deps; unsigned n; }; void add_dependency(const unsigned *ids, dependency_list &deps, dependency dep) { if (is_valid(dep)) { if (dep.unordered) dep.id = ids[dep.id]; for (unsigned i = 0; i < deps.size(); i++) { if (deps[i].exec_all != dep.exec_all && (!deps[i].exec_all || (dep.unordered & TGL_SBID_SET)) && (!dep.exec_all || (deps[i].unordered & TGL_SBID_SET))) continue; if (dep.ordered && deps[i].ordered) { for (unsigned p = 0; p < IDX(TGL_PIPE_ALL); p++) deps[i].jp.jp[p] = MAX2(deps[i].jp.jp[p], dep.jp.jp[p]); deps[i].ordered |= dep.ordered; deps[i].exec_all |= dep.exec_all; dep.ordered = TGL_REGDIST_NULL; } if (dep.unordered && deps[i].unordered && deps[i].id == dep.id) { deps[i].unordered |= dep.unordered; deps[i].exec_all |= dep.exec_all; dep.unordered = TGL_SBID_NULL; } } if (is_valid(dep)) deps.push_back(dep); } } tgl_swsb ordered_dependency_swsb(const dependency_list &deps, const ordered_address &jp, bool exec_all) { tgl_pipe p = TGL_PIPE_NONE; unsigned min_dist = ~0u; for (unsigned i = 0; i < deps.size(); i++) { if (deps[i].ordered && exec_all >= deps[i].exec_all) { for (unsigned q = 0; q < IDX(TGL_PIPE_ALL); q++) { const unsigned dist = jp.jp[q] - int64_t(deps[i].jp.jp[q]); const unsigned max_dist = (q == IDX(TGL_PIPE_LONG) ? 14 : 10); assert(jp.jp[q] > deps[i].jp.jp[q]); if (dist <= max_dist) { p = (p && IDX(p) != q ? TGL_PIPE_ALL : tgl_pipe(TGL_PIPE_FLOAT + q)); min_dist = MIN3(min_dist, dist, 7); } } } } return { p ? min_dist : 0, p }; } bool find_ordered_dependency(const dependency_list &deps, const ordered_address &jp, bool exec_all) { return ordered_dependency_swsb(deps, jp, exec_all).regdist; } tgl_sbid_mode find_unordered_dependency(const dependency_list &deps, tgl_sbid_mode unordered, bool exec_all) { if (unordered) { for (unsigned i = 0; i < deps.size(); i++) { if ((unordered & deps[i].unordered) && exec_all >= deps[i].exec_all) return deps[i].unordered; } } return TGL_SBID_NULL; } tgl_sbid_mode baked_unordered_dependency_mode(const struct intel_device_info *devinfo, const fs_inst *inst, const dependency_list &deps, const ordered_address &jp) { const bool exec_all = inst->force_writemask_all; const bool has_ordered = find_ordered_dependency(deps, jp, exec_all); const tgl_pipe ordered_pipe = ordered_dependency_swsb(deps, jp, exec_all).pipe; if (find_unordered_dependency(deps, TGL_SBID_SET, exec_all)) return find_unordered_dependency(deps, TGL_SBID_SET, exec_all); else if (has_ordered && is_unordered(inst)) return TGL_SBID_NULL; else if (find_unordered_dependency(deps, TGL_SBID_DST, exec_all) && (!has_ordered || ordered_pipe == inferred_sync_pipe(devinfo, inst))) return find_unordered_dependency(deps, TGL_SBID_DST, exec_all); else if (!has_ordered) return find_unordered_dependency(deps, TGL_SBID_SRC, exec_all); else return TGL_SBID_NULL; } bool baked_ordered_dependency_mode(const struct intel_device_info *devinfo, const fs_inst *inst, const dependency_list &deps, const ordered_address &jp) { const bool exec_all = inst->force_writemask_all; const bool has_ordered = find_ordered_dependency(deps, jp, exec_all); const tgl_pipe ordered_pipe = ordered_dependency_swsb(deps, jp, exec_all).pipe; const tgl_sbid_mode unordered_mode = baked_unordered_dependency_mode(devinfo, inst, deps, jp); if (!has_ordered) return false; else if (!unordered_mode) return true; else return ordered_pipe == inferred_sync_pipe(devinfo, inst) && unordered_mode == (is_unordered(inst) ? TGL_SBID_SET : TGL_SBID_DST); } void update_inst_scoreboard(const fs_visitor *shader, const ordered_address *jps, const fs_inst *inst, unsigned ip, scoreboard &sb) { const bool exec_all = inst->force_writemask_all; const struct intel_device_info *devinfo = shader->devinfo; const tgl_pipe p = inferred_exec_pipe(devinfo, inst); const ordered_address jp = p ? ordered_address(p, jps[ip].jp[IDX(p)]) : ordered_address(); const bool is_ordered = ordered_unit(devinfo, inst, IDX(TGL_PIPE_ALL)); for (unsigned i = 0; i < inst->sources; i++) { const dependency rd_dep = (inst->is_payload(i) || inst->is_math()) ? dependency(TGL_SBID_SRC, ip, exec_all) : is_ordered ? dependency(TGL_REGDIST_SRC, jp, exec_all) : dependency::done; for (unsigned j = 0; j < regs_read(inst, i); j++) { const fs_reg r = byte_offset(inst->src[i], REG_SIZE * j); sb.set(r, shadow(sb.get(r), rd_dep)); } } if (inst->reads_accumulator_implicitly()) sb.set(brw_acc_reg(8), dependency(TGL_REGDIST_SRC, jp, exec_all)); if (is_send(inst) && inst->base_mrf != -1) { const dependency rd_dep = dependency(TGL_SBID_SRC, ip, exec_all); for (unsigned j = 0; j < inst->mlen; j++) sb.set(brw_uvec_mrf(8, inst->base_mrf + j, 0), rd_dep); } const dependency wr_dep = is_unordered(inst) ? dependency(TGL_SBID_DST, ip, exec_all) : is_ordered ? dependency(TGL_REGDIST_DST, jp, exec_all) : dependency(); if (inst->writes_accumulator_implicitly(devinfo)) sb.set(brw_acc_reg(8), wr_dep); if (is_valid(wr_dep) && inst->dst.file != BAD_FILE && !inst->dst.is_null()) assign() argument 1122 const struct intel_device_info *devinfo = shader->devinfo; gather_inst_dependencies() local 1253 const struct intel_device_info *devinfo = shader->devinfo; emit_inst_dependencies() local [all...] |
H A D | test_eu_validate.cpp | 62 struct intel_device_info devinfo; member in validation_test [all...] |
H A D | intel_clc.c | 378 struct intel_device_info _devinfo, *devinfo = &_devinfo; in main() local
|
H A D | brw_nir_lower_storage_image.c | 92 image_address(nir_builder *b, const struct intel_device_info *devinfo, in image_address() argument 262 convert_color_for_load(nir_builder *b, const struct intel_device_info *devinfo, in convert_color_for_load() argument 364 lower_image_load_instr(nir_builder *b, const struct intel_device_info *devinfo, nir_intrinsic_instr *intrin) lower_image_load_instr() argument 453 convert_color_for_store(nir_builder *b, const struct intel_device_info *devinfo, nir_ssa_def *color, enum isl_format image_fmt, enum isl_format lower_fmt) convert_color_for_store() argument 520 lower_image_store_instr(nir_builder *b, const struct intel_device_info *devinfo, nir_intrinsic_instr *intrin) lower_image_store_instr() argument 601 lower_image_atomic_instr(nir_builder *b, const struct intel_device_info *devinfo, nir_intrinsic_instr *intrin) lower_image_atomic_instr() argument 636 lower_image_size_instr(nir_builder *b, const struct intel_device_info *devinfo, nir_intrinsic_instr *intrin) lower_image_size_instr() argument 689 const struct intel_device_info *devinfo = cb_data; brw_nir_lower_storage_image_instr() local 721 brw_nir_lower_storage_image(nir_shader *shader, const struct intel_device_info *devinfo) brw_nir_lower_storage_image() argument [all...] |
H A D | brw_nir_lower_ray_queries.c | 32 const struct intel_device_info *devinfo; member 524 brw_nir_lower_ray_queries(nir_shader *shader, const struct intel_device_info *devinfo) brw_nir_lower_ray_queries() argument
|
H A D | brw_schedule_instructions.cpp | 962 const struct intel_device_info *devinfo = sched->bs->devinfo; in schedule_node() local [all...] |
H A D | brw_fs_reg_allocate.cpp | 88 const struct intel_device_info *devinfo = compiler->devinfo; in brw_alloc_reg_set() local 364 const intel_device_info *devinfo; global() member in fs_reg_alloc 751 const intel_device_info *devinfo = bld.shader->devinfo; emit_unspill() local 820 const intel_device_info *devinfo = bld.shader->devinfo; emit_spill() local [all...] |
/third_party/mesa3d/src/intel/common/ |
H A D | intel_aux_map.c | 201 intel_aux_map_init(void *driver_ctx, struct intel_mapped_pinned_buffer_alloc *buffer_alloc, const struct intel_device_info *devinfo) intel_aux_map_init() argument
|
H A D | intel_decoder.h | 242 struct intel_device_info devinfo; member
|
/third_party/mesa3d/src/intel/vulkan/ |
H A D | genX_state.c | 595 UNUSED const struct intel_device_info *devinfo = &device->info; in emit_l3_config() local
|
/third_party/mesa3d/src/intel/isl/ |
H A D | isl_format.c | 700 isl_format_supports_rendering(const struct intel_device_info *devinfo, in isl_format_supports_rendering() argument 710 isl_format_supports_alpha_blending(const struct intel_device_info *devinfo, in isl_format_supports_alpha_blending() argument 720 isl_format_supports_sampling(const struct intel_device_info *devinfo, in isl_format_supports_sampling() argument 763 isl_format_supports_filtering(const struct intel_device_info *devinfo, enum isl_format format) isl_format_supports_filtering() argument 778 isl_format_supports_vertex_fetch(const struct intel_device_info *devinfo, enum isl_format format) isl_format_supports_vertex_fetch() argument 797 isl_format_supports_typed_writes(const struct intel_device_info *devinfo, enum isl_format format) isl_format_supports_typed_writes() argument 810 isl_format_supports_typed_atomics(const struct intel_device_info *devinfo, enum isl_format format) isl_format_supports_typed_atomics() argument 830 isl_format_supports_typed_reads(const struct intel_device_info *devinfo, enum isl_format format) isl_format_supports_typed_reads() argument 846 isl_format_supports_ccs_d(const struct intel_device_info *devinfo, enum isl_format format) isl_format_supports_ccs_d() argument 876 isl_format_supports_ccs_e(const struct intel_device_info *devinfo, enum isl_format format) isl_format_supports_ccs_e() argument 899 isl_format_supports_multisampling(const struct intel_device_info *devinfo, enum isl_format format) isl_format_supports_multisampling() argument 982 isl_formats_are_ccs_e_compatible(const struct intel_device_info *devinfo, enum isl_format format1, enum isl_format format2) isl_formats_are_ccs_e_compatible() argument [all...] |
/third_party/mesa3d/src/intel/tools/ |
H A D | aubinator.c | 62 struct intel_device_info devinfo; variable
|
/third_party/mesa3d/src/gallium/drivers/iris/ |
H A D | iris_batch.h | 361 const struct intel_device_info *devinfo = &batch->screen->devinfo; in iris_batch_mark_flush_sync() local 378 const struct intel_device_info *devinfo = &batch->screen->devinfo; in iris_batch_mark_invalidate_sync() local
|
H A D | iris_screen.c | 108 const struct intel_device_info *devinfo = &screen->devinfo; in iris_get_driver_uuid() local 139 const struct intel_device_info *devinfo = &screen->devinfo; in iris_get_name() local 162 const struct intel_device_info *devinfo in iris_get_video_memory() local 190 const struct intel_device_info *devinfo = &screen->devinfo; iris_get_param() local 539 const struct intel_device_info *devinfo = &screen->devinfo; iris_get_compute_param() local 696 iris_get_default_l3_config(const struct intel_device_info *devinfo, bool compute) iris_get_default_l3_config() argument [all...] |
H A D | iris_screen.h | 201 struct intel_device_info devinfo; member
|
/third_party/mesa3d/src/gallium/drivers/crocus/ |
H A D | crocus_resource.h | 323 crocus_get_depth_stencil_resources(const struct intel_device_info *devinfo, in crocus_get_depth_stencil_resources() argument
|
H A D | crocus_screen.h | 208 struct intel_device_info devinfo; member
|
H A D | crocus_clear.c | 338 const struct intel_device_info *devinfo = &batch->screen->devinfo; in clear_color() local 405 const struct intel_device_info *devinfo = &screen->devinfo; in can_fast_clear_depth() local 649 const struct intel_device_info *devinfo = &screen->devinfo; in crocus_clear() local 716 const struct intel_device_info *devinfo = &screen->devinfo; crocus_clear_texture() local [all...] |
/kernel/linux/linux-5.10/fs/nfs/flexfilelayout/ |
H A D | flexfilelayout.h | 115 struct nfs42_layoutstat_devinfo devinfo[FF_LAYOUTSTATS_MAXDEV]; member
|
/kernel/linux/linux-6.6/fs/nfs/flexfilelayout/ |
H A D | flexfilelayout.h | 115 struct nfs42_layoutstat_devinfo devinfo[FF_LAYOUTSTATS_MAXDEV]; member
|
/third_party/NuttX/drivers/usbdev/gadget/ |
H A D | f_hid.c | 426 struct usbdev_devinfo_s *devinfo; in usbclass_hid_bind() local 516 struct usbdev_devinfo_s *devinfo; in usbclass_hid_unbind() local 838 static int16_t hid_mkcfgdesc(uint8_t *buf, struct usbdev_devinfo_s *devinfo) in hid_mkcfgdesc() argument 927 hid_classobject(int minor, struct usbdev_devinfo_s *devinfo, struct usbdevclass_driver_s **classdev) hid_classobject() argument [all...] |
H A D | usbdev.h | 247 struct usbdev_devinfo_s devinfo; member
|
/third_party/NuttX/drivers/usbdev/gadget/fconfig/src/ |
H A D | f_generic.c | 783 generic_mkcfgdesc(uint8_t *buf, struct usbdev_devinfo_s *devinfo) generic_mkcfgdesc() argument 906 generic_classobject(int minor, struct usbdev_devinfo_s *devinfo, struct usbdevclass_driver_s **classdev) generic_classobject() argument [all...] |
/third_party/mesa3d/src/broadcom/cle/ |
H A D | v3d_decoder.c | 69 const struct v3d_device_info *devinfo; member 617 v3d_spec_load(const struct v3d_device_info *devinfo) in v3d_spec_load() argument
|