• Home
  • Raw
  • Download

Lines Matching +full:use +full:- +full:kernel

7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
49 static struct kernel *
53 struct ir3_kernel *ir3_kernel = ir3_asm_assemble(a4xx_backend->compiler, in); in a4xx_assemble()
54 ir3_kernel->backend = b; in a4xx_assemble()
55 return &ir3_kernel->base; in a4xx_assemble()
59 a4xx_disassemble(struct kernel *kernel, FILE *out) in a4xx_disassemble() argument
61 ir3_asm_disassemble(to_ir3_kernel(kernel), out); in a4xx_disassemble()
65 cs_program_emit(struct fd_ringbuffer *ring, struct kernel *kernel) in cs_program_emit() argument
67 struct ir3_kernel *ir3_kernel = to_ir3_kernel(kernel); in cs_program_emit()
68 struct ir3_shader_variant *v = ir3_kernel->v; in cs_program_emit()
69 const struct ir3_info *i = &v->info; in cs_program_emit()
70 enum a3xx_threadsize thrsz = i->double_threadsize ? FOUR_QUADS : TWO_QUADS; in cs_program_emit()
113 A4XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT(i->max_half_reg + 1) | in cs_program_emit()
114 A4XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT(i->max_reg + 1)); in cs_program_emit()
121 COND(v->has_ssbo, A4XX_HLSQ_CS_CONTROL_REG_SSBO_ENABLE) | in cs_program_emit()
122 A4XX_HLSQ_CS_CONTROL_REG_CONSTLENGTH(v->constlen / 4)); in cs_program_emit()
125 OUT_RELOC(ring, v->bo, 0, 0, 0); /* SP_CS_OBJ_START */ in cs_program_emit()
128 OUT_RING(ring, v->instrlen); in cs_program_emit()
133 work_group_id = ir3_kernel->info.wgid; in cs_program_emit()
134 num_wg_id = ir3_kernel->info.numwg; in cs_program_emit()
154 CP_LOAD_STATE4_0_NUM_UNIT(v->instrlen)); in cs_program_emit()
155 OUT_RELOC(ring, v->bo, 0, CP_LOAD_STATE4_1_STATE_TYPE(ST4_SHADER), 0); in cs_program_emit()
159 emit_const(struct fd_ringbuffer *ring, struct kernel *kernel, uint32_t constid, uint32_t sizedwords, in emit_const() argument
169 if (kernel->buf_addr_regs[i] != INVALID_REG) { in emit_const()
170 int idx = kernel->buf_addr_regs[i]; in emit_const()
173 replacements[idx] = kernel->bufs[i]; in emit_const()
193 /* Zero-pad to multiple of 4 dwords */ in emit_const()
202 cs_const_emit(struct fd_ringbuffer *ring, struct kernel *kernel, in cs_const_emit() argument
205 struct ir3_kernel *ir3_kernel = to_ir3_kernel(kernel); in cs_const_emit()
206 struct ir3_shader_variant *v = ir3_kernel->v; in cs_const_emit()
209 uint32_t base = const_state->offsets.immediate; in cs_const_emit()
210 int size = DIV_ROUND_UP(const_state->immediates_count, 4); in cs_const_emit()
213 * does not use: in cs_const_emit()
215 size = MIN2(size + base, v->constlen) - base; in cs_const_emit()
222 emit_const(ring, kernel, base, size, const_state->immediates); in cs_const_emit()
228 struct kernel *kernel) in cs_ibo_emit() argument
230 OUT_PKT3(ring, CP_LOAD_STATE4, 2 + (4 * kernel->num_bufs)); in cs_ibo_emit()
234 CP_LOAD_STATE4_0_NUM_UNIT(kernel->num_bufs)); in cs_ibo_emit()
237 for (unsigned i = 0; i < kernel->num_bufs; i++) { in cs_ibo_emit()
238 OUT_RELOC(ring, kernel->bufs[i], 0, 0, 0); in cs_ibo_emit()
244 OUT_RING(ring, kernel->buf_sizes[i]); in cs_ibo_emit()
245 OUT_RING(ring, kernel->buf_sizes[i]); in cs_ibo_emit()
250 OUT_PKT3(ring, CP_LOAD_STATE4, 2 + (2 * kernel->num_bufs)); in cs_ibo_emit()
254 CP_LOAD_STATE4_0_NUM_UNIT(kernel->num_bufs)); in cs_ibo_emit()
257 for (unsigned i = 0; i < kernel->num_bufs; i++) { in cs_ibo_emit()
258 unsigned sz = kernel->buf_sizes[i]; in cs_ibo_emit()
277 a4xx_emit_grid(struct kernel *kernel, uint32_t grid[3], in a4xx_emit_grid() argument
283 cs_program_emit(ring, kernel); in a4xx_emit_grid()
284 cs_const_emit(ring, kernel, grid); in a4xx_emit_grid()
285 cs_ibo_emit(ring, submit, kernel); in a4xx_emit_grid()
287 const unsigned *local_size = kernel->local_size; in a4xx_emit_grid()
299 A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEX(local_size[0] - 1) | in a4xx_emit_grid()
300 A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEY(local_size[1] - 1) | in a4xx_emit_grid()
301 A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEZ(local_size[2] - 1)); in a4xx_emit_grid()
338 a4xx_backend->base = (struct backend){ in a4xx_init()
344 a4xx_backend->compiler = ir3_compiler_create(dev, dev_id, in a4xx_init()
346 a4xx_backend->dev = dev; in a4xx_init()
348 return &a4xx_backend->base; in a4xx_init()